diff --git a/apps/trading-e2e/src/integration/markets-page.feature b/apps/trading-e2e/src/integration/markets-page.feature index ace6099a8..e81982a85 100644 --- a/apps/trading-e2e/src/integration/markets-page.feature +++ b/apps/trading-e2e/src/integration/markets-page.feature @@ -8,10 +8,10 @@ Feature: Markets page Scenario: Select active market Given I am on the markets page - When I click on an active market - Then I am on the trading page for an active market + When I click on "Active" market + Then trading page for "active" market is displayed Scenario: Select suspended market Given I am on the markets page - When I click on a suspended market - Then I am on the trading page for a suspended market + When I click on "Suspended" market + Then trading page for "suspended" market is displayed diff --git a/apps/trading-e2e/src/support/pages/trading-page.ts b/apps/trading-e2e/src/support/pages/trading-page.ts index c037ba91f..2788b4bc3 100644 --- a/apps/trading-e2e/src/support/pages/trading-page.ts +++ b/apps/trading-e2e/src/support/pages/trading-page.ts @@ -1,15 +1,15 @@ import BasePage from './base-page'; export default class TradingPage extends BasePage { - chartTab = 'chart'; - ticketTab = 'ticket'; - orderbookTab = 'orderbook'; - ordersTab = 'orders'; - positionsTab = 'positions'; - collateralTab = 'collateral'; - tradesTab = 'trades'; - completedTrades = 'market-trades'; - orderBookTab = 'orderbook'; + chartTab = 'Chart'; + ticketTab = 'Ticket'; + orderbookTab = 'Orderbook'; + ordersTab = 'Orders'; + positionsTab = 'Positions'; + collateralTab = 'Collateral'; + tradesTab = 'Trades'; + completedTrades = 'Market-trades'; + orderBookTab = 'Prderbook'; clickOnOrdersTab() { cy.getByTestId(this.ordersTab).click(); diff --git a/apps/trading-e2e/src/support/step_definitions/markets-page.step.ts b/apps/trading-e2e/src/support/step_definitions/markets-page.step.ts index cf8c205bf..9a837f2c4 100644 --- a/apps/trading-e2e/src/support/step_definitions/markets-page.step.ts +++ b/apps/trading-e2e/src/support/step_definitions/markets-page.step.ts @@ -38,10 +38,6 @@ And('the market table is displayed', () => { marketsPage.validateMarketTableDisplayed(); }); -When('I click on an active market', () => { - marketsPage.clickOnMarket('Active'); -}); - -When('I click on a suspended market', () => { - marketsPage.clickOnMarket('Suspended'); +When('I click on {string} market', (Expectedmarket) => { + marketsPage.clickOnMarket(Expectedmarket); }); diff --git a/apps/trading-e2e/src/support/step_definitions/trading-page.step.ts b/apps/trading-e2e/src/support/step_definitions/trading-page.step.ts index 8d17adc56..5faac309f 100644 --- a/apps/trading-e2e/src/support/step_definitions/trading-page.step.ts +++ b/apps/trading-e2e/src/support/step_definitions/trading-page.step.ts @@ -1,4 +1,4 @@ -import { Given } from 'cypress-cucumber-preprocessor/steps'; +import { Given, Then } from 'cypress-cucumber-preprocessor/steps'; import { hasOperationName } from '..'; import { MarketState } from '@vegaprotocol/types'; /* eslint-disable @nrwl/nx/enforce-module-boundaries */ @@ -9,6 +9,11 @@ import { } from '../../../../../libs/chart/src/__tests__'; import { generateDealTicketQuery } from '../../../../../libs/deal-ticket/src/__tests__'; import { generateMarket } from '../../../../trading/pages/markets/__tests__'; +import TradesList from '../trading-windows/trades-list'; +import TradingPage from '../pages/trading-page'; + +const tradesList = new TradesList(); +const tradingPage = new TradingPage(); /* eslint-enable @nrwl/nx/enforce-module-boundaries */ const mockMarket = (state: MarketState) => { @@ -66,3 +71,20 @@ Given('I am on the trading page for a suspended market', () => { cy.wait('@Market'); cy.contains('Market: SUSPENDED MARKET'); }); + +Then('trading page for {string} market is displayed', (marketType) => { + switch (marketType) { + case 'active': + mockMarket(MarketState.Active); + cy.wait('@Market'); + cy.contains('Market: ACTIVE MARKET'); + break; + case 'suspended': + mockMarket(MarketState.Suspended); + cy.wait('@Market'); + cy.contains('Market: SUSPENDED MARKET'); + break; + } + tradingPage.clickOnTradesTab(); + tradesList.verifyTradesListDisplayed(); +}); diff --git a/apps/trading-e2e/src/support/trading-windows/trades-list.ts b/apps/trading-e2e/src/support/trading-windows/trades-list.ts new file mode 100644 index 000000000..04a8a2fdd --- /dev/null +++ b/apps/trading-e2e/src/support/trading-windows/trades-list.ts @@ -0,0 +1,23 @@ +export default class TradesList { + colIdPrice = 'price'; + colIdSize = 'size'; + colIdCreatedAt = 'createdAt'; + + verifyTradesListDisplayed() { + cy.get(`[col-id=${this.colIdPrice}]`).each(($tradePrice) => { + cy.wrap($tradePrice).invoke('text').should('not.be.empty'); + }); + cy.get(`[col-id=${this.colIdSize}]`).each(($tradeSize) => { + cy.wrap($tradeSize).invoke('text').should('not.be.empty'); + }); + + const dateTimeRegex = + /(\d{1,2})\/(\d{1,2})\/(\d{4}), (\d{1,2}):(\d{1,2}):(\d{1,2})/gm; + cy.get(`[col-id=${this.colIdCreatedAt}]`).each(($tradeDateTime, index) => { + if (index != 0) { + //ignore header + cy.wrap($tradeDateTime).invoke('text').should('match', dateTimeRegex); + } + }); + } +}