From 31536d56b8ca58dcd6a2f54f8356dbdc02ae9117 Mon Sep 17 00:00:00 2001 From: bwallacee Date: Wed, 17 Jan 2024 16:36:35 +0000 Subject: [PATCH] chore(trading): delete and move some tests to jest --- .../grid-settings/grid-settings.spec.tsx | 25 ++++ .../e2e/tests/get_started/test_get_started.py | 31 ---- .../tests/settings/test_column_settings.py | 36 ----- apps/trading/e2e/tests/wallet/test_wallet.py | 133 ------------------ .../deal-ticket/deal-ticket.spec.tsx | 1 + .../connect-dialog/connect-dialog.spec.tsx | 9 ++ 6 files changed, 35 insertions(+), 200 deletions(-) create mode 100644 apps/trading/components/grid-settings/grid-settings.spec.tsx delete mode 100644 apps/trading/e2e/tests/settings/test_column_settings.py delete mode 100644 apps/trading/e2e/tests/wallet/test_wallet.py diff --git a/apps/trading/components/grid-settings/grid-settings.spec.tsx b/apps/trading/components/grid-settings/grid-settings.spec.tsx new file mode 100644 index 000000000..6dc4dff91 --- /dev/null +++ b/apps/trading/components/grid-settings/grid-settings.spec.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import { render } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { GridSettings } from './grid-settings'; +import '@testing-library/jest-dom'; + +jest.mock('../../lib/use-t', () => ({ + useT: () => jest.fn().mockReturnValue('Reset Columns'), +})); + +describe('GridSettings', () => { + it('calls updateGridStore with correct arguments on button click', async () => { + const mockUpdateGridStore = jest.fn(); + const { getByText } = render( + + ); + + await userEvent.click(getByText('Reset Columns')); + + expect(mockUpdateGridStore).toHaveBeenCalledWith({ + columnState: undefined, + filterModel: undefined, + }); + }); +}); diff --git a/apps/trading/e2e/tests/get_started/test_get_started.py b/apps/trading/e2e/tests/get_started/test_get_started.py index d6a09f640..a6944dfe0 100644 --- a/apps/trading/e2e/tests/get_started/test_get_started.py +++ b/apps/trading/e2e/tests/get_started/test_get_started.py @@ -146,29 +146,6 @@ class TestGetStarted: # 0007-FUGS-007 expect(page.get_by_test_id("dialog-content").nth(1)).to_be_visible() - def test_browser_wallet_installed(self, simple_market, page: Page): - page.add_init_script("window.vega = {}") - page.goto(f"/#/markets/{simple_market}") - locator = page.get_by_test_id("connect-vega-wallet") - page.wait_for_selector('[data-testid="connect-vega-wallet"]', state="attached") - expect(locator).to_be_enabled - expect(locator).to_be_visible - expect(locator).to_have_text("Connect") - - @pytest.mark.usefixtures("risk_accepted") - def test_get_started_deal_ticket(self,simple_market, page: Page): - page.goto(f"/#/markets/{simple_market}") - expect(page.get_by_test_id("order-connect-wallet")).to_have_text("Connect wallet") - - - @pytest.mark.usefixtures("risk_accepted") - def test_browser_wallet_installed_deal_ticket(simple_market, page: Page): - page.add_init_script("window.vega = {}") - page.goto(f"/#/markets/{simple_market}") - # 0007-FUGS-013 - page.wait_for_selector('[data-testid="sidebar-content"]', state="visible") - expect(page.get_by_test_id("get-started-banner")).not_to_be_visible() - @pytest.mark.skip("tbd-market-sim") def test_redirect_default_market(self, continuous_market, vega: VegaServiceNull, page: Page): page.goto("/") @@ -179,11 +156,3 @@ class TestGetStarted: page.get_by_test_id("icon-cross").click() # 0007-FUGS-018 expect(page.get_by_test_id("welcome-dialog")).not_to_be_visible() - -class TestBrowseAll: - def test_get_started_browse_all(self, simple_market, vega: VegaServiceNull, page: Page): - page.goto("/") - print(simple_market) - page.get_by_test_id("browse-markets-button").click() - # 0007-FUGS-005 - expect(page).to_have_url(f"http://localhost:{vega.console_port}/#/markets/{simple_market}") diff --git a/apps/trading/e2e/tests/settings/test_column_settings.py b/apps/trading/e2e/tests/settings/test_column_settings.py deleted file mode 100644 index 8afbf5966..000000000 --- a/apps/trading/e2e/tests/settings/test_column_settings.py +++ /dev/null @@ -1,36 +0,0 @@ -import pytest -from playwright.sync_api import expect, Page - -settings_icon = "icon-cog" -settings_column_btn = "popover-trigger" -settings_close_btn = "settings-close" -split_view_view = "split-view-view" - -@pytest.mark.usefixtures("page", "continuous_market", "auth", "risk_accepted") -def test_column_settings_is_visible(continuous_market, page: Page): - page.goto(f"/#/markets/{continuous_market}") - expect(page.get_by_test_id(split_view_view).get_by_test_id(settings_column_btn)).to_be_visible() - page.goto("/#/portfolio") - expect(page.get_by_test_id(split_view_view).get_by_test_id(settings_column_btn).nth(0)).to_be_visible() - expect(page.get_by_test_id(split_view_view).get_by_test_id(settings_column_btn).nth(1)).to_be_visible() - page.goto(f"/#/markets/all") - expect(page.get_by_test_id(settings_column_btn)).to_be_visible() - page.click('[data-testid="Proposed markets"]') - expect(page.get_by_test_id(settings_column_btn)).to_be_visible() - page.click('[data-testid="Closed markets"]') - expect(page.get_by_test_id(settings_column_btn)).to_be_visible() - -@pytest.mark.usefixtures("page", "continuous_market", "auth", "risk_accepted") -def test_can_reset_columns_state(continuous_market, page: Page): - page.goto(f"/#/markets/all") - col_market = page.locator('[col-id="tradableInstrument.instrument.code"]').first - col_settlement_asset = page.locator('[col-id="tradableInstrument.instrument.product.settlementAsset.symbol"]').first - col_market.drag_to(col_settlement_asset) - - # Check the attribute of the dragged element - attribute_value = col_market.get_attribute("aria-colindex") - assert attribute_value != "1" - page.get_by_test_id(settings_column_btn).click() - page.get_by_role("button", name="Reset Columns").click() - attribute_value_after_reset = col_market.get_attribute("aria-colindex") - assert attribute_value_after_reset == "1" \ No newline at end of file diff --git a/apps/trading/e2e/tests/wallet/test_wallet.py b/apps/trading/e2e/tests/wallet/test_wallet.py deleted file mode 100644 index 1f848cde0..000000000 --- a/apps/trading/e2e/tests/wallet/test_wallet.py +++ /dev/null @@ -1,133 +0,0 @@ -import pytest -import re -import json -from playwright.sync_api import Page, expect, Route -from conftest import init_vega -from fixtures.market import setup_continuous_market - -order_size = "order-size" -order_price = "order-price" -place_order = "place-order" -order_side_sell = "order-side-SIDE_SELL" -market_order = "order-type-Market" -tif = "order-tif" -expire = "expire" -api_request_match = r"http://localhost:\d+/api/v2/requests" - - -@pytest.fixture(scope="module") -def vega(request): - with init_vega(request) as vega: - yield vega - - -@pytest.fixture(scope="module") -def continuous_market(vega): - return setup_continuous_market(vega) - - -def handle_route_connection_lost(route: Route, request): - if request.method == "POST" and re.match(api_request_match, request.url): - route.fulfill( - status=200, - headers={"Content-Type": "application/json"}, - body='{"jsonrpc": "2.0", "id": "1"}', - ) - else: - route.continue_() - - -def handle_route_connection_rejected(route: Route, request): - if request.method == "POST" and re.match(api_request_match, request.url): - custom_response = { - "jsonrpc": "2.0", - "error": { - "code": 3001, - "data": "the user rejected the wallet connection", - "message": "User error", - }, - "id": "0", - } - route.fulfill( - status=400, - headers={"Content-Type": "application/json"}, - body=json.dumps(custom_response), - ) - else: - route.continue_() - - -def assert_connection_approve(route: Route, request, page: Page): - if request.method == "POST" and re.match(api_request_match, request.url): - expect(page.get_by_test_id("toast-content")).to_have_text( - "Please go to your Vega wallet application and approve or reject the transaction." - ) - else: - route.continue_() - - -@pytest.mark.usefixtures("auth", "risk_accepted") -def test_wallet_connection_error(continuous_market, page: Page): - page.goto(f"/#/markets/{continuous_market}") - page.route("**/*", handle_route_connection_lost) - page.get_by_test_id("connect-vega-wallet").click() - page.get_by_test_id("connector-jsonRpc").click() - expect(page.get_by_test_id("wallet-dialog-title")).to_have_text( - "Something went wrong" - ) - - -@pytest.mark.usefixtures("risk_accepted") -def test_wallet_connection_rejected(continuous_market, page: Page): - # 0002-WCON-002 - # 0002-WCON-005 - # 0002-WCON-007 - # 0002-WCON-015 - page.goto(f"/#/markets/{continuous_market}") - page.route("**/*", handle_route_connection_rejected) - page.get_by_test_id("connect-vega-wallet").click() - page.get_by_test_id("connector-jsonRpc").click() - expect(page.get_by_test_id("dialog-content").nth(1)).to_have_text( - "User errorthe user rejected the wallet connectionTry againAbout the Vega wallet | Supported browsers " - ) - - -@pytest.mark.usefixtures("auth", "risk_accepted") -def test_wallet_connection_error_transaction(continuous_market, page: Page): - # 0003-WTXN-009 - # 0003-WTXN-011 - # 0002-WCON-016 - # 0003-WTXN-008 - page.goto(f"/#/markets/{continuous_market}") - page.get_by_test_id(order_size).fill("10") - page.get_by_test_id(order_price).fill("120") - page.route("**/*", handle_route_connection_lost) - page.get_by_test_id(place_order).click() - expect(page.get_by_test_id("toast-content")).to_have_text( - "Wallet disconnectedThe connection to your Vega Wallet has been lost.Connect vega wallet" - ) - - -@pytest.mark.usefixtures("auth", "risk_accepted") -def test_wallet_transaction_rejected(continuous_market, page: Page): - # 0003-WTXN-007 - page.goto(f"/#/markets/{continuous_market}") - page.get_by_test_id(order_size).fill("10") - page.get_by_test_id(order_price).fill("120") - page.route("**/*", handle_route_connection_rejected) - page.get_by_test_id(place_order).click() - expect(page.get_by_test_id("toast-content").nth(0)).to_have_text( - "Error occurredthe user rejected the wallet connection" - ) - - -@pytest.mark.usefixtures("auth", "risk_accepted") -def test_wallet_connection_approve(continuous_market, page: Page): - # 0002-WCON-005 - # 0002-WCON-007 - # 0002-WCON-009 - page.goto(f"/#/markets/{continuous_market}") - page.get_by_test_id(order_size).fill("10") - page.get_by_test_id(order_price).fill("120") - page.route("**/*", assert_connection_approve) - page.get_by_test_id(place_order).click() diff --git a/libs/deal-ticket/src/components/deal-ticket/deal-ticket.spec.tsx b/libs/deal-ticket/src/components/deal-ticket/deal-ticket.spec.tsx index 8a3fb028c..929dbe366 100644 --- a/libs/deal-ticket/src/components/deal-ticket/deal-ticket.spec.tsx +++ b/libs/deal-ticket/src/components/deal-ticket/deal-ticket.spec.tsx @@ -161,6 +161,7 @@ describe('DealTicket', () => { expect(screen.getByTestId('order-price').nextSibling).toHaveTextContent( 'BTC' ); + expect(screen.getByTestId('order-connect-wallet')).toBeVisible(); }); it('market order should not display price', async () => { diff --git a/libs/wallet/src/connect-dialog/connect-dialog.spec.tsx b/libs/wallet/src/connect-dialog/connect-dialog.spec.tsx index c08ceb020..7e6a7a56b 100644 --- a/libs/wallet/src/connect-dialog/connect-dialog.spec.tsx +++ b/libs/wallet/src/connect-dialog/connect-dialog.spec.tsx @@ -205,6 +205,11 @@ describe('VegaConnectDialog', () => { }); it('handles user rejection', async () => { + // 0002-WCON-002 + // 0002-WCON-005 + // 0002-WCON-007 + // 0002-WCON-015 + // 0003-WTXN-007 spyOnConnectWallet .mockClear() .mockImplementation(() => @@ -238,6 +243,10 @@ describe('VegaConnectDialog', () => { }); it('handles an unknown error', async () => { + // 0003-WTXN-009 + // 0003-WTXN-011 + // 0002-WCON-016 + // 0003-WTXN-008 spyOnCheckCompat.mockClear().mockImplementation(() => { throw new Error('unknown error'); });