test: migrate console-lite to use vegawallet v2 (#2068)

This commit is contained in:
Radosław Szpiech 2022-11-14 22:18:17 +01:00 committed by GitHub
parent ffa33634a9
commit 9579be086e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 71 additions and 54 deletions

View File

@ -6,3 +6,4 @@ NX_ETHEREUM_PROVIDER_URL=https://sepolia.infura.io/v3/4f846e79e13f44d1b51bbd7ed9
NX_ETHERSCAN_URL=https://sepolia.etherscan.io NX_ETHERSCAN_URL=https://sepolia.etherscan.io
NX_VEGA_EXPLORER_URL=https://stagnet3.explorer.vega.xyz NX_VEGA_EXPLORER_URL=https://stagnet3.explorer.vega.xyz
NX_VEGA_WALLET_URL=http://localhost:1789 NX_VEGA_WALLET_URL=http://localhost:1789
CYPRESS_VEGA_ENV=STAGNET3

View File

@ -1,4 +1,3 @@
import { connectVegaWallet } from '../support/connect-wallet';
import { aliasQuery } from '@vegaprotocol/cypress'; import { aliasQuery } from '@vegaprotocol/cypress';
import { import {
generateMarketsCandles, generateMarketsCandles,
@ -46,7 +45,7 @@ describe('market selector', { tags: '@smoke' }, () => {
it('should be properly rendered', () => { it('should be properly rendered', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[0].id}`); cy.visit(`/trading/${markets[0].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('input[placeholder="Search"]').should( cy.get('input[placeholder="Search"]').should(
'have.value', 'have.value',
markets[0].tradableInstrument.instrument.name markets[0].tradableInstrument.instrument.name
@ -70,7 +69,7 @@ describe('market selector', { tags: '@smoke' }, () => {
it('typing should change list', () => { it('typing should change list', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[0].id}`); cy.visit(`/trading/${markets[0].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('input[placeholder="Search"]').type('{backspace}'); cy.get('input[placeholder="Search"]').type('{backspace}');
cy.getByTestId('market-pane') cy.getByTestId('market-pane')
.children() .children()
@ -106,7 +105,7 @@ describe('market selector', { tags: '@smoke' }, () => {
it.skip('keyboard navigation should work well', () => { it.skip('keyboard navigation should work well', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[0].id}`); cy.visit(`/trading/${markets[0].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('input[placeholder="Search"]').type('{backspace}'); cy.get('input[placeholder="Search"]').type('{backspace}');
cy.get('input[placeholder="Search"]').clear(); cy.get('input[placeholder="Search"]').clear();
cy.focused().realPress('ArrowDown'); cy.focused().realPress('ArrowDown');
@ -128,7 +127,7 @@ describe('market selector', { tags: '@smoke' }, () => {
if (markets?.length) { if (markets?.length) {
cy.viewport('iphone-xr'); cy.viewport('iphone-xr');
cy.visit(`/trading/${markets[0].id}`); cy.visit(`/trading/${markets[0].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('[role="dialog"]').should('not.exist'); cy.get('[role="dialog"]').should('not.exist');
cy.getByTestId('arrow-button').click(); cy.getByTestId('arrow-button').click();
cy.get('[role="dialog"]').should('be.visible'); cy.get('[role="dialog"]').should('be.visible');

View File

@ -13,7 +13,6 @@ import { generatePartyBalance } from '../support/mocks/generate-party-balance';
import { generatePartyMarketData } from '../support/mocks/generate-party-market-data'; import { generatePartyMarketData } from '../support/mocks/generate-party-market-data';
import { generateMarketMarkPrice } from '../support/mocks/generate-market-mark-price'; import { generateMarketMarkPrice } from '../support/mocks/generate-market-mark-price';
import { generateMarketDepth } from '../support/mocks/generate-market-depth'; import { generateMarketDepth } from '../support/mocks/generate-market-depth';
import { connectVegaWallet } from '../support/connect-wallet';
import type { MarketsQuery, Market } from '@vegaprotocol/market-list'; import type { MarketsQuery, Market } from '@vegaprotocol/market-list';
describe('Market trade', { tags: '@smoke' }, () => { describe('Market trade', { tags: '@smoke' }, () => {
@ -59,7 +58,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('side selector should work well', () => { it('side selector should work well', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[0].id}`); cy.visit(`/trading/${markets[0].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-1-control [aria-label^="Selected value"]').should( cy.get('#step-1-control [aria-label^="Selected value"]').should(
'have.text', 'have.text',
'Long' 'Long'
@ -78,7 +77,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
if (markets?.length) { if (markets?.length) {
cy.viewport('iphone-xr'); cy.viewport('iphone-xr');
cy.visit(`/trading/${markets[0].id}`); cy.visit(`/trading/${markets[0].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.getByTestId('next-button').scrollIntoView().click(); cy.getByTestId('next-button').scrollIntoView().click();
cy.get('button[aria-label="Open long position"]').should( cy.get('button[aria-label="Open long position"]').should(
@ -110,7 +109,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('size slider should work well', () => { it('size slider should work well', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[1].id}`); cy.visit(`/trading/${markets[1].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-1-control [aria-label^="Selected value"]').click(); cy.get('#step-1-control [aria-label^="Selected value"]').click();
cy.get('button[aria-label="Open short position"]').click(); cy.get('button[aria-label="Open short position"]').click();
cy.get('#step-2-control').click(); cy.get('#step-2-control').click();
@ -132,7 +131,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('percentage selection should work well', () => { it('percentage selection should work well', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[1].id}`); cy.visit(`/trading/${markets[1].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-1-control [aria-label^="Selected value"]').click(); cy.get('#step-1-control [aria-label^="Selected value"]').click();
cy.get('button[aria-label="Open short position"]').click(); cy.get('button[aria-label="Open short position"]').click();
cy.get('#step-2-control').click(); cy.get('#step-2-control').click();
@ -159,7 +158,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('size input should work well', () => { it('size input should work well', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[1].id}`); cy.visit(`/trading/${markets[1].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-1-control [aria-label^="Selected value"]').click(); cy.get('#step-1-control [aria-label^="Selected value"]').click();
cy.get('button[aria-label="Open short position"]').click(); cy.get('button[aria-label="Open short position"]').click();
cy.get('#step-2-control').click(); cy.get('#step-2-control').click();
@ -187,7 +186,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('slippage value should be displayed', () => { it('slippage value should be displayed', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[1].id}`); cy.visit(`/trading/${markets[1].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-1-control [aria-label^="Selected value"]').click(); cy.get('#step-1-control [aria-label^="Selected value"]').click();
cy.get('button[aria-label="Open short position"]').click(); cy.get('button[aria-label="Open short position"]').click();
cy.get('#step-2-control').click(); cy.get('#step-2-control').click();
@ -203,7 +202,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('allow slippage value to be adjusted', () => { it('allow slippage value to be adjusted', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[1].id}`); cy.visit(`/trading/${markets[1].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-1-control [aria-label^="Selected value"]').click(); cy.get('#step-1-control [aria-label^="Selected value"]').click();
cy.get('button[aria-label="Open short position"]').click(); cy.get('button[aria-label="Open short position"]').click();
cy.get('#step-2-control').click(); cy.get('#step-2-control').click();
@ -231,7 +230,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('notional position size should be present', () => { it('notional position size should be present', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[1].id}`); cy.visit(`/trading/${markets[1].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-1-control [aria-label^="Selected value"]').click(); cy.get('#step-1-control [aria-label^="Selected value"]').click();
cy.get('button[aria-label="Open short position"]').click(); cy.get('button[aria-label="Open short position"]').click();
cy.get('#step-2-control').click(); cy.get('#step-2-control').click();
@ -258,7 +257,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('total fees should be displayed', () => { it('total fees should be displayed', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[1].id}`); cy.visit(`/trading/${markets[1].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-1-control [aria-label^="Selected value"]').click(); cy.get('#step-1-control [aria-label^="Selected value"]').click();
cy.get('button[aria-label="Open short position"]').click(); cy.get('button[aria-label="Open short position"]').click();
cy.get('#step-2-control').click(); cy.get('#step-2-control').click();
@ -273,7 +272,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
it('order review should display proper calculations', () => { it('order review should display proper calculations', () => {
if (markets?.length) { if (markets?.length) {
cy.visit(`/trading/${markets[0].id}`); cy.visit(`/trading/${markets[0].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-3-control').click(); cy.get('#step-3-control').click();
cy.getByTestId('review-trade') cy.getByTestId('review-trade')
@ -300,7 +299,7 @@ describe('Market trade', { tags: '@smoke' }, () => {
if (markets?.length) { if (markets?.length) {
cy.viewport('iphone-xr'); cy.viewport('iphone-xr');
cy.visit(`/trading/${markets[0].id}`); cy.visit(`/trading/${markets[0].id}`);
connectVegaWallet(); cy.connectVegaWallet();
cy.get('#step-3-control').click(); cy.get('#step-3-control').click();
// Start from the bottom tooltip to ensure the tooltip above // Start from the bottom tooltip to ensure the tooltip above

View File

@ -1,7 +1,3 @@
import {
connectVegaWallet,
disconnectVegaWallet,
} from '../support/connect-wallet';
import { aliasQuery } from '@vegaprotocol/cypress'; import { aliasQuery } from '@vegaprotocol/cypress';
import { import {
generatePositions, generatePositions,
@ -18,22 +14,31 @@ import {
generatePositionsMarkets, generatePositionsMarkets,
} from '../support/mocks/generate-markets'; } from '../support/mocks/generate-markets';
describe('Portfolio page', { tags: '@smoke' }, () => { describe('Portfolio page - wallet', { tags: '@smoke' }, () => {
afterEach(() => {
disconnectVegaWallet();
});
it('button for wallet connect should work', () => { it('button for wallet connect should work', () => {
cy.visit('/'); cy.visit('/');
cy.get('[href="/portfolio"]').eq(0).click(); cy.get('[href="/portfolio"]').eq(0).click();
cy.getByTestId('trading-connect-wallet').should('be.visible'); cy.getByTestId('trading-connect-wallet').should('be.visible');
connectVegaWallet(); cy.connectVegaWallet();
cy.getByTestId('trading-connect-wallet').should('not.exist'); cy.getByTestId('trading-connect-wallet').should('not.exist');
}); });
});
describe('Portfolio page tabs', { tags: '@smoke' }, () => {
before(() => {
cy.mockGQL((req) => {
aliasQuery(req, 'Positions', generatePositions());
aliasQuery(req, 'Margins', generateMargins());
aliasQuery(req, 'Markets', generatePositionsMarkets());
aliasQuery(req, 'MarketsData', generateMarketsData());
aliasQuery(req, 'Accounts', generateAccounts());
aliasQuery(req, 'Assets', generateAssets());
});
});
it('certain tabs should exist', () => { it('certain tabs should exist', () => {
cy.visit('/portfolio'); cy.visit('/portfolio');
connectVegaWallet(); cy.connectVegaWallet();
cy.getByTestId('assets').click(); cy.getByTestId('assets').click();
cy.location('pathname').should('eq', '/portfolio/assets'); cy.location('pathname').should('eq', '/portfolio/assets');
@ -52,7 +57,7 @@ describe('Portfolio page', { tags: '@smoke' }, () => {
}); });
describe('Assets view', () => { describe('Assets view', () => {
beforeEach(() => { before(() => {
cy.mockGQL((req) => { cy.mockGQL((req) => {
aliasQuery(req, 'Positions', generatePositions()); aliasQuery(req, 'Positions', generatePositions());
aliasQuery(req, 'Margins', generateMargins()); aliasQuery(req, 'Margins', generateMargins());
@ -62,7 +67,7 @@ describe('Portfolio page', { tags: '@smoke' }, () => {
aliasQuery(req, 'Assets', generateAssets()); aliasQuery(req, 'Assets', generateAssets());
}); });
cy.visit('/portfolio/assets'); cy.visit('/portfolio/assets');
connectVegaWallet(); cy.connectVegaWallet();
}); });
it('data should be properly rendered', () => { it('data should be properly rendered', () => {
@ -91,7 +96,7 @@ describe('Portfolio page', { tags: '@smoke' }, () => {
aliasQuery(req, 'Assets', generateAssets()); aliasQuery(req, 'Assets', generateAssets());
}); });
cy.visit('/portfolio/positions'); cy.visit('/portfolio/positions');
connectVegaWallet(); cy.connectVegaWallet();
}); });
it('data should be properly rendered', () => { it('data should be properly rendered', () => {
@ -106,7 +111,7 @@ describe('Portfolio page', { tags: '@smoke' }, () => {
aliasQuery(req, 'Markets', generateFillsMarkets()); aliasQuery(req, 'Markets', generateFillsMarkets());
}); });
cy.visit('/portfolio/orders'); cy.visit('/portfolio/orders');
connectVegaWallet(); cy.connectVegaWallet();
}); });
it('data should be properly rendered', () => { it('data should be properly rendered', () => {
@ -121,7 +126,7 @@ describe('Portfolio page', { tags: '@smoke' }, () => {
aliasQuery(req, 'Markets', generateFillsMarkets()); aliasQuery(req, 'Markets', generateFillsMarkets());
}); });
cy.visit('/portfolio/fills'); cy.visit('/portfolio/fills');
connectVegaWallet(); cy.connectVegaWallet();
}); });
it('data should be properly rendered', () => { it('data should be properly rendered', () => {
@ -144,7 +149,7 @@ describe('Portfolio page', { tags: '@smoke' }, () => {
}); });
}); });
cy.visit('/portfolio'); cy.visit('/portfolio');
connectVegaWallet(); cy.connectVegaWallet();
}); });
it('"No data to display" should be always displayed', () => { it('"No data to display" should be always displayed', () => {

View File

@ -1,18 +0,0 @@
export const connectVegaWallet = () => {
const form = 'rest-connector-form';
const walletName = Cypress.env('TRADING_TEST_VEGA_WALLET_NAME');
const walletPassphrase = Cypress.env('TRADING_TEST_VEGA_WALLET_PASSPHRASE');
cy.getByTestId('connect-vega-wallet').click();
cy.getByTestId('connectors-list')
.find('[data-testid="connector-gui"]')
.click();
cy.getByTestId(form).find('#wallet').click().type(walletName);
cy.getByTestId(form).find('#passphrase').click().type(walletPassphrase);
cy.getByTestId('rest-connector-form').find('button[type=submit]').click();
};
export const disconnectVegaWallet = () => {
cy.getByTestId('connect-vega-wallet').click();
cy.getByTestId('disconnect').click();
};

View File

@ -27,7 +27,9 @@ before(() => {
aliasQuery(req, 'ChainId', { aliasQuery(req, 'ChainId', {
statistics: { statistics: {
__typename: 'Statistics', __typename: 'Statistics',
chainId: 'vega-fairground-202210041151', chainId:
Cypress.env('VEGA_ENV').toLowerCase() ||
'vega-fairground-202210041151',
}, },
}); });
}); });

View File

@ -1,7 +1,9 @@
import { RestConnector } from '@vegaprotocol/wallet'; import { RestConnector, JsonRpcConnector } from '@vegaprotocol/wallet';
export const rest = new RestConnector(); export const rest = new RestConnector();
export const jsonRpc = new JsonRpcConnector();
export const Connectors = { export const Connectors = {
rest, rest,
jsonRpc,
}; };

View File

@ -14,6 +14,7 @@ import { addContainsExactly } from './lib/commands/contains-exactly';
import { addRestartVegacapsuleNetwork } from './lib/commands/restart-vegacapsule-network'; import { addRestartVegacapsuleNetwork } from './lib/commands/restart-vegacapsule-network';
import { addGetNetworkParameters } from './lib/commands/get-network-parameters'; import { addGetNetworkParameters } from './lib/commands/get-network-parameters';
import { addUpdateCapsuleMultiSig } from './lib/commands/add-validators-to-multisig'; import { addUpdateCapsuleMultiSig } from './lib/commands/add-validators-to-multisig';
import { addVegaWalletConnect } from './lib/commands/vega-wallet-connect';
addGetTestIdcommand(); addGetTestIdcommand();
addSlackCommand(); addSlackCommand();
@ -29,6 +30,7 @@ addContainsExactly();
addRestartVegacapsuleNetwork(); addRestartVegacapsuleNetwork();
addGetNetworkParameters(); addGetNetworkParameters();
addUpdateCapsuleMultiSig(); addUpdateCapsuleMultiSig();
addVegaWalletConnect();
export * from './lib/graphql-test-utils'; export * from './lib/graphql-test-utils';
export type { onMessage } from './lib/commands/mock-gql'; export type { onMessage } from './lib/commands/mock-gql';

View File

@ -0,0 +1,25 @@
declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace Cypress {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
interface Chainable<Subject> {
connectVegaWallet(): void;
}
}
}
export function addVegaWalletConnect() {
// @ts-ignore - ignoring Cypress type error which gets resolved when Cypress uses the command
Cypress.Commands.add('connectVegaWallet', () => {
cy.highlight(`Connecting Vega Wallet`);
cy.get('[data-testid=connect-vega-wallet]').click();
cy.get('[data-testid=connectors-list]')
.find('[data-testid="connector-cli"]')
.click();
cy.get('[data-testid=dialog-content]').should(
'contain.text',
'Successfully connected'
);
cy.get('[data-testid=dialog-content]').should('not.exist');
});
}