diff --git a/apps/trading-e2e/src/integration/trading-trades.cy.ts b/apps/trading-e2e/src/integration/trading-trades.cy.ts index 74c8a28c2..d89183f3e 100644 --- a/apps/trading-e2e/src/integration/trading-trades.cy.ts +++ b/apps/trading-e2e/src/integration/trading-trades.cy.ts @@ -1,32 +1,79 @@ -beforeEach(() => { - cy.mockTradingPage(); - cy.mockSubscription(); - cy.visit('/#/markets/market-0'); -}); +const colHeader = '.ag-header-cell-text'; +const colIdPrice = '[col-id=price]'; +const colIdSize = '[col-id=size]'; +const colIdCreatedAt = '[col-id=createdAt]'; +const tradesTab = 'Trades'; +const tradesTable = 'tab-trades'; describe('trades', { tags: '@smoke' }, () => { - const colIdPrice = 'price'; - const colIdSize = 'size'; - const colIdCreatedAt = 'createdAt'; + beforeEach(() => { + cy.mockTradingPage(); + cy.mockSubscription(); + }); + before(() => { + cy.mockTradingPage(); + cy.mockSubscription(); + cy.visit('/#/markets/market-0'); + cy.getByTestId(tradesTab).click(); + }); - it('renders trades', () => { - cy.getByTestId('Trades').click(); - cy.getByTestId('tab-trades').should('be.visible'); + it('show trades', () => { + // 6005-THIS-001 + // 6005-THIS-002 + cy.getByTestId(tradesTab).should('be.visible'); + cy.getByTestId(tradesTable).should('be.visible'); + cy.getByTestId(tradesTable).should('not.be.empty'); + }); - cy.get(`[col-id=${colIdPrice}]`).each(($tradePrice) => { + it('show trades prices', () => { + // 6005-THIS-003 + cy.get(`${colIdPrice} ${colHeader}`).first().should('have.text', 'Price'); + cy.get(colIdPrice).each(($tradePrice) => { cy.wrap($tradePrice).invoke('text').should('not.be.empty'); }); - cy.get(`[col-id=${colIdSize}]`).each(($tradeSize) => { + }); + + it('show trades sizes', () => { + // 6005-THIS-004 + cy.get(`${colIdSize} ${colHeader}`).first().should('have.text', 'Size'); + cy.get(colIdSize).each(($tradeSize) => { cy.wrap($tradeSize).invoke('text').should('not.be.empty'); }); + }); + it('show trades date and time', () => { + // 6005-THIS-005 + cy.get(`${colIdCreatedAt} ${colHeader}`).should('have.text', 'Created at'); const dateTimeRegex = /(\d{1,2})\/(\d{1,2})\/(\d{4}), (\d{1,2}):(\d{1,2}):(\d{1,2})/gm; - cy.get(`[col-id=${colIdCreatedAt}]`).each(($tradeDateTime, index) => { + cy.get(colIdCreatedAt).each(($tradeDateTime, index) => { if (index != 0) { //ignore header cy.wrap($tradeDateTime).invoke('text').should('match', dateTimeRegex); } }); }); + + it('trades are sorted descending by datetime', () => { + // 6005-THIS-006 + const dateTimes: Date[] = []; + cy.get(colIdCreatedAt) + .each(($tradeDateTime, index) => { + if (index != 0) { + //ignore header + dateTimes.push(new Date($tradeDateTime.text())); + } + }) + .then(() => { + expect(dateTimes).to.deep.equal( + dateTimes.sort((a, b) => b.getTime() - a.getTime()) + ); + }); + }); + + it('copy price to deal ticket form', () => { + // 6005-THIS-007 + cy.get(colIdPrice).last().click(); + cy.getByTestId('order-price').should('have.value', '171.16898'); + }); }); diff --git a/libs/trades/src/lib/trades.mock.ts b/libs/trades/src/lib/trades.mock.ts index 5201874c4..28ad45001 100644 --- a/libs/trades/src/lib/trades.mock.ts +++ b/libs/trades/src/lib/trades.mock.ts @@ -53,10 +53,10 @@ export const tradesUpdateSubscription = ( const trades: TradeFieldsFragment[] = [ { - id: 'FFFFBC80005C517A10ACF481F7E6893769471098E696D0CC407F18134044CB16', - price: '17116898', - size: '24', - createdAt: '2022-04-06T16:19:42.692598951Z', + id: 'FFFFAD1BF47AA2853E5C375B6B3A62375F62D5B10807583D32EF3119CC455CD1', + price: '17106734', + size: '18', + createdAt: '2022-04-07T17:56:47.997938583Z', aggressor: Side.SIDE_BUY, market: { id: 'market-0', @@ -77,10 +77,10 @@ const trades: TradeFieldsFragment[] = [ __typename: 'Trade', }, { - id: 'FFFFAD1BF47AA2853E5C375B6B3A62375F62D5B10807583D32EF3119CC455CD1', - price: '17106734', - size: '18', - createdAt: '2022-04-07T17:56:47.997938583Z', + id: 'FFFFBC80005C517A10ACF481F7E6893769471098E696D0CC407F18134044CB16', + price: '17116898', + size: '24', + createdAt: '2022-04-06T16:19:42.692598951Z', aggressor: Side.SIDE_BUY, market: { id: 'market-0',