From e3976ea7c78df01d48015f6e5a55c1a3e2d4b4d8 Mon Sep 17 00:00:00 2001 From: bwallacee Date: Fri, 19 Jan 2024 13:04:05 +0000 Subject: [PATCH] chore(trading): teams test for local dev --- apps/trading/e2e/tests/teams/test_teams.py | 80 +++++++++++++++++----- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/apps/trading/e2e/tests/teams/test_teams.py b/apps/trading/e2e/tests/teams/test_teams.py index 920153214..fa97c3a49 100644 --- a/apps/trading/e2e/tests/teams/test_teams.py +++ b/apps/trading/e2e/tests/teams/test_teams.py @@ -1,25 +1,37 @@ import pytest from playwright.sync_api import expect, Page +import vega_sim.proto.vega as vega_protos from vega_sim.null_service import VegaServiceNull +from conftest import init_vega from actions.utils import next_epoch -from wallet_config import PARTY_A, PARTY_B, PARTY_C, PARTY_D +from fixtures.market import setup_continuous_market +from wallet_config import PARTY_A, PARTY_B, PARTY_C, PARTY_D, MM_WALLET -@pytest.mark.usefixtures("auth", "risk_accepted") -def test_teams(vega: VegaServiceNull, page: Page): - # submit_transaction will fail with spam statistics error if block height is 0 - # so go forward at least one block - vega.wait_fn(1) +@pytest.fixture(scope="module") +def vega(request): + with init_vega(request) as vega: + yield vega - for key in [PARTY_A, PARTY_B, PARTY_C, PARTY_D]: - vega.wallet.create_key(key.name) +def setup_teams_and_games(vega: VegaServiceNull): + tDAI_market = setup_continuous_market(vega) + tDAI_asset_id = vega.find_asset_id(symbol="tDAI") + vega.mint(key_name=PARTY_B.name, asset=tDAI_asset_id, amount=100000) + vega.mint(key_name=PARTY_C.name, asset=tDAI_asset_id, amount=100000) + vega.mint(key_name=PARTY_A.name, asset=tDAI_asset_id, amount=100000) + vega.mint(key_name=PARTY_D.name, asset=tDAI_asset_id, amount=100000) + next_epoch(vega=vega) + + tDAI_asset_id = vega.find_asset_id(symbol="tDAI") + vega.update_network_parameter( + MM_WALLET.name, parameter="reward.asset", new_value=tDAI_asset_id + ) + + next_epoch(vega=vega) team_name = create_team(vega) next_epoch(vega) - - # would be better to derive the team id from the signature if possible but - # vega.submit_transaction does not return anything teams = vega.list_teams() # list_teams actually returns a dictionary {"team_id": Team} @@ -37,12 +49,48 @@ def test_teams(vega: VegaServiceNull, page: Page): vega.apply_referral_code(PARTY_D.name, team_id) vega.wait_fn(1) - vega.forward("10s") vega.wait_for_total_catchup() + vega.recurring_transfer( + from_key_name=PARTY_A.name, + from_account_type=vega_protos.vega.ACCOUNT_TYPE_GENERAL, + to_account_type=vega_protos.vega.ACCOUNT_TYPE_REWARD_MAKER_PAID_FEES, + asset=tDAI_asset_id, + reference="reward", + asset_for_metric=tDAI_asset_id, + metric=vega_protos.vega.DISPATCH_METRIC_MAKER_FEES_PAID, + entity_scope=vega_protos.vega.ENTITY_SCOPE_TEAMS, + n_top_performers=1, + amount=100, + factor=1.0, + ) + vega.submit_order( + trading_key=PARTY_B.name, + market_id=tDAI_market, + order_type="TYPE_MARKET", + time_in_force="TIME_IN_FORCE_IOC", + side="SIDE_BUY", + volume=1, + ) + vega.submit_order( + trading_key=PARTY_A.name, + market_id=tDAI_market, + order_type="TYPE_MARKET", + time_in_force="TIME_IN_FORCE_IOC", + side="SIDE_BUY", + volume=1, + ) + next_epoch(vega=vega) + return tDAI_market, tDAI_asset_id, team_id, team_name + + +@pytest.mark.usefixtures("auth", "risk_accepted") +def test_teams(vega: VegaServiceNull, page: Page): + market_id, asset_id, team_id, team_name = setup_teams_and_games(vega) + page.goto(f"/#/competitions/teams/{team_id}") + # page.pause() + expect(page.get_by_role("heading", level=1)).to_have_text(team_name) + expect(page.get_by_text("Members (3)")).to_be_visible() - page.goto(f"/#/competitions/team/{team_id}") - expect(page.get_by_role('heading', level=1)).to_have_text(team_name) - expect(page.get_by_text('Members (3)')).to_be_visible() def create_team(vega: VegaServiceNull): team_name = "Foobar" @@ -52,7 +100,7 @@ def create_team(vega: VegaServiceNull): name=team_name, team_url="https://vega.xyz", avatar_url="http://placekitten.com/200/200", - closed=False + closed=False, ) return team_name