Test/1221 revisit market tests (#1234)

* test: test for sorting market

* chore: add headers options to all cy.visit()

* chore: revert header changes
This commit is contained in:
Joe Tsang 2022-09-02 15:31:30 +01:00 committed by GitHub
parent dd8c237677
commit 75e3f327ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 161 additions and 23 deletions

View File

@ -29,7 +29,8 @@ module.exports = defineConfig({
defaultCommandTimeout: 10000,
viewportWidth: 1440,
viewportHeight: 900,
responseTimeout: 10000,
responseTimeout: 50000,
requestTimeout: 10000,
},
env: {
TRADING_TEST_VEGA_WALLET_NAME: 'UI_Trading_Test',

View File

@ -11,9 +11,7 @@ describe('deposit form validation', () => {
aliasQuery(req, 'NetworkParamsQuery', generateNetworkParameters());
aliasQuery(req, 'AssetsConnection', generateDepositPage());
});
cy.visit('/portfolio/deposit', {
headers: { 'Accept-Encoding': 'gzip, deflate' },
});
cy.visit('/portfolio/deposit');
cy.wait('@AssetsConnection');
// Deposit page requires connection Ethereum wallet first

View File

@ -9,7 +9,7 @@ describe('vega wallet', () => {
beforeEach(() => {
// Using portfolio page as it requires vega wallet connection
cy.visit('/portfolio', { headers: { 'Accept-Encoding': 'gzip, deflate' } });
cy.visit('/portfolio');
cy.get('main[data-testid="portfolio"]').should('exist');
});

View File

@ -1,29 +1,19 @@
import { aliasQuery } from '@vegaprotocol/cypress';
import { MarketState } from '@vegaprotocol/types';
import { generateMarkets } from '../support/mocks/generate-markets';
import { mockTradingPage } from '../support/trading';
describe('home', () => {
const selectMarketOverlay = 'select-market-list';
describe('default market found', () => {
beforeEach(() => {
// Mock markets query that is triggered by home page to find default market
it('redirects to a default market with the landing dialog open', () => {
cy.mockGQL((req) => {
aliasQuery(req, 'MarketList', generateMarkets());
// Mock all market page queries
mockTradingPage(req, MarketState.STATE_ACTIVE);
});
cy.visit('/');
cy.contains('Loading...').should('be.visible');
cy.contains('Loading...').should('not.exist');
cy.get('main[data-testid="market"]', { timeout: 20000 }).should('exist'); // Wait for page to be rendered to before checking url
});
it.skip('redirects to a default market with the landing dialog open', () => {
// Overlay should be shown
cy.getByTestId(selectMarketOverlay).should('exist');
cy.contains('Select a market to get started').should('be.visible');
@ -53,6 +43,7 @@ describe('home', () => {
// the choose market overlay is no longer showing
cy.contains('Select a market to get started').should('not.exist');
cy.contains('Loading...').should('not.exist');
cy.url().should('eq', Cypress.config().baseUrl + '/markets/market-0');
});
});
@ -61,9 +52,6 @@ describe('home', () => {
// Mock markets query that is triggered by home page to find default market
cy.mockGQL((req) => {
aliasQuery(req, 'MarketList', { markets: [] });
// Mock all market page queries
mockTradingPage(req, MarketState.STATE_ACTIVE);
});
cy.visit('/');

View File

@ -1,13 +1,10 @@
import { aliasQuery } from '@vegaprotocol/cypress';
import { MarketState } from '@vegaprotocol/types';
import { generateMarkets } from '../support/mocks/generate-markets';
import { mockTradingPage } from '../support/trading';
describe('markets table', () => {
beforeEach(() => {
cy.mockGQL((req) => {
mockTradingPage(req, MarketState.STATE_ACTIVE);
aliasQuery(req, 'MarketList', generateMarkets());
});
});
@ -47,6 +44,26 @@ describe('markets table', () => {
verifyMarketSummaryDisplayed();
});
it('Able to open and sort full market list - market page', () => {
const ExpectedSortedMarkets = [
'AAPL.MF21',
'BTCUSD.MF21',
'ETHBTC.QM21',
'SOLUSD',
];
cy.visit('/');
cy.wait('@MarketList');
cy.getByTestId('link').should('have.attr', 'href', '/markets').click();
cy.url().should('eq', Cypress.config('baseUrl') + '/markets');
cy.contains('AAPL.MF21').should('be.visible');
cy.contains('Market').click(); // sort by market name
for (let i = 0; i < ExpectedSortedMarkets.length; i++) {
cy.get(`[row-index=${i}]`)
.find('[col-id="tradableInstrument.instrument.code"]')
.should('have.text', ExpectedSortedMarkets[i]);
}
});
it('Settlement expiry is displayed', () => {
cy.visit('/markets/market-0');
cy.wait('@Market');

View File

@ -111,7 +111,7 @@ export const generateMarkets = (
market: {
id: '34d95e10faa00c21d19d382d6d7e6fc9722a96985369f0caec041b0f44b775ed',
state: MarketState.STATE_SUSPENDED,
tradingMode: MarketTradingMode.TRADING_MODE_CONTINUOUS,
tradingMode: MarketTradingMode.TRADING_MODE_NO_TRADING,
__typename: 'Market',
},
bestBidPrice: '0',
@ -143,6 +143,138 @@ export const generateMarkets = (
},
__typename: 'Market',
},
{
id: 'market-2',
name: 'Apple Monthly (30 Jun 2022)',
decimalPlaces: 5,
positionDecimalPlaces: 0,
tradingMode: MarketTradingMode.TRADING_MODE_MONITORING_AUCTION,
state: MarketState.STATE_SUSPENDED,
marketTimestamps: {
__typename: 'MarketTimestamps',
close: '2022-08-26T11:36:32.252490405Z',
open: null,
},
candles: [
{
__typename: 'Candle',
open: '100',
close: '100',
high: '110',
low: '90',
},
],
fees: {
__typename: 'Fees',
factors: {
__typename: 'FeeFactors',
makerFee: '0.0002',
infrastructureFee: '0.0005',
liquidityFee: '0.001',
},
},
data: {
market: {
id: 'a1c731af07570ca49b22a3cd253cc143dc14068edbec918e1087e69db934af5f',
state: MarketState.STATE_SUSPENDED,
tradingMode: MarketTradingMode.TRADING_MODE_MONITORING_AUCTION,
__typename: 'Market',
},
indicativeVolume: '0',
bestBidPrice: '0',
bestOfferPrice: '0',
markPrice: '4612690058',
trigger: AuctionTrigger.AUCTION_TRIGGER_LIQUIDITY,
__typename: 'MarketData',
},
tradableInstrument: {
instrument: {
id: '',
code: 'AAPL.MF21',
name: 'Apple Monthly (30 Jun 2022)',
metadata: {
__typename: 'InstrumentMetadata',
tags: [],
},
product: {
settlementAsset: {
symbol: 'tUSDC',
__typename: 'Asset',
},
__typename: 'Future',
},
__typename: 'Instrument',
},
__typename: 'TradableInstrument',
},
__typename: 'Market',
},
{
id: 'market-3',
name: 'ETHBTC Quarterly (30 Jun 2022)',
decimalPlaces: 5,
positionDecimalPlaces: 0,
tradingMode: MarketTradingMode.TRADING_MODE_CONTINUOUS,
state: MarketState.STATE_ACTIVE,
marketTimestamps: {
__typename: 'MarketTimestamps',
close: '2022-08-26T11:36:32.252490405Z',
open: null,
},
candles: [
{
__typename: 'Candle',
open: '100',
close: '100',
high: '110',
low: '90',
},
],
fees: {
__typename: 'Fees',
factors: {
__typename: 'FeeFactors',
makerFee: '0.0002',
infrastructureFee: '0.0005',
liquidityFee: '0.001',
},
},
data: {
market: {
id: 'bebea8ec669b913a7d6a704a6d8cede164bc1376229e0d472bc6fdaa976629b2',
state: MarketState.STATE_ACTIVE,
tradingMode: MarketTradingMode.TRADING_MODE_CONTINUOUS,
__typename: 'Market',
},
indicativeVolume: '0',
bestBidPrice: '0',
bestOfferPrice: '0',
markPrice: '4612690058',
trigger: AuctionTrigger.AUCTION_TRIGGER_LIQUIDITY,
__typename: 'MarketData',
},
tradableInstrument: {
instrument: {
id: '',
code: 'ETHBTC.QM21',
name: 'ETHBTC Quarterly (30 Jun 2022)',
metadata: {
__typename: 'InstrumentMetadata',
tags: [],
},
product: {
settlementAsset: {
symbol: 'tBTC',
__typename: 'Asset',
},
__typename: 'Future',
},
__typename: 'Instrument',
},
__typename: 'TradableInstrument',
},
__typename: 'Market',
},
];
const defaultResult = {
markets,

View File

@ -8,6 +8,7 @@ import { generateDealTicketQuery } from './mocks/generate-deal-ticket-query';
import { generateMarket } from './mocks/generate-market';
import { generateMarketDepth } from './mocks/generate-market-depth';
import { generateMarketInfoQuery } from './mocks/generate-market-info-query';
import { generateMarkets } from './mocks/generate-markets';
import { generateOrders } from './mocks/generate-orders';
import { generatePositions } from './mocks/generate-positions';
import { generateTrades } from './mocks/generate-trades';
@ -26,6 +27,7 @@ export const mockTradingPage = (
},
})
);
aliasQuery(req, 'MarketList', generateMarkets());
aliasQuery(req, 'MarketDepth', generateMarketDepth());
aliasQuery(req, 'Orders', generateOrders());
aliasQuery(req, 'Accounts', generateAccounts());