diff --git a/apps/token-e2e/cypress.config.js b/apps/token-e2e/cypress.config.js index b46af7681..c90a799f0 100644 --- a/apps/token-e2e/cypress.config.js +++ b/apps/token-e2e/cypress.config.js @@ -15,16 +15,19 @@ module.exports = defineConfig({ chromeWebSecurity: false, }, env: { - ethProviderUrl: 'http://localhost:8545/', - ethWalletPublicKey: '0xEe7D375bcB50C26d52E1A4a472D8822A2A22d94F', - ethStakingBridgeContractAddress: '0x9135f5afd6F055e731bca2348429482eE614CFfA', - vegaWalletName: 'capsule_wallet', - vegaWalletLocation: '~/.vegacapsule/testnet/wallet', - vegaWalletPassphrase: '123', - vegaWalletMnemonic: 'ozone access unlock valid olympic save include omit supply green clown session', - vegaWalletPublicKey: '02eceaba4df2bef76ea10caf728d8a099a2aa846cced25737cccaa9812342f65', - vegaWalletPublicKeyShort: '02ecea…2f65', - vegaTokenContractAddress: '0xF41bD86d462D36b997C0bbb4D97a0a3382f205B7', - vegaTokenAddress: '0x67175Da1D5e966e40D11c4B2519392B2058373de' - } + ethProviderUrl: 'http://localhost:8545/', + ethWalletPublicKey: '0xEe7D375bcB50C26d52E1A4a472D8822A2A22d94F', + ethStakingBridgeContractAddress: + '0x9135f5afd6F055e731bca2348429482eE614CFfA', + vegaWalletName: 'capsule_wallet', + vegaWalletLocation: '~/.vegacapsule/testnet/wallet', + vegaWalletPassphrase: '123', + vegaWalletMnemonic: + 'ozone access unlock valid olympic save include omit supply green clown session', + vegaWalletPublicKey: + '02eceaba4df2bef76ea10caf728d8a099a2aa846cced25737cccaa9812342f65', + vegaWalletPublicKeyShort: '02ecea…2f65', + vegaTokenContractAddress: '0xF41bD86d462D36b997C0bbb4D97a0a3382f205B7', + vegaTokenAddress: '0x67175Da1D5e966e40D11c4B2519392B2058373de', + }, }); diff --git a/apps/token-e2e/src/integration/flow/staking-flow.cy.js b/apps/token-e2e/src/integration/flow/staking-flow.cy.js index cd7d99ec4..8a491bbb0 100644 --- a/apps/token-e2e/src/integration/flow/staking-flow.cy.js +++ b/apps/token-e2e/src/integration/flow/staking-flow.cy.js @@ -7,7 +7,7 @@ import '../../support/vega-wallet.functions'; import '../../support/eth-wallet.functions'; import '../../support/wallet-teardown.functions'; -const vegaWalletPublicKeyShort = Cypress.env("vegaWalletPublicKeyShort"); +const vegaWalletPublicKeyShort = Cypress.env('vegaWalletPublicKeyShort'); context('Staking Tab - with eth and vega wallets connected', function () { before('visit staking tab and connect vega wallet', function () { @@ -22,7 +22,10 @@ context('Staking Tab - with eth and vega wallets connected', function () { cy.get(navigation.staking).first().click(); cy.get(navigation.spinner, { timeout: 20000 }).should('not.exist'); cy.get(staking.validatorNames).first().invoke('text').as('validatorName'); - cy.get(staking.validatorNames).last().invoke('text').as('otherValidatorName'); + cy.get(staking.validatorNames) + .last() + .invoke('text') + .as('otherValidatorName'); }); describe('Eth wallet - contains VEGA tokens', function () { @@ -37,8 +40,11 @@ context('Staking Tab - with eth and vega wallets connected', function () { it('Able to stake against a validator', function () { cy.staking_page_associate_tokens('3'); cy.vega_wallet_check_unstaked_value_is('3.000000000000000000'); - cy.ethereum_wallet_check_associated_value_is('3.0') - cy.ethereum_wallet_check_associated_vega_key_value_is(vegaWalletPublicKeyShort,'3.000000000000000000'); + cy.ethereum_wallet_check_associated_value_is('3.0'); + cy.ethereum_wallet_check_associated_vega_key_value_is( + vegaWalletPublicKeyShort, + '3.000000000000000000' + ); cy.get('button').contains('Select a validator to nominate').click(); cy.get(staking.validatorNames).contains(this.validatorName).click(); @@ -64,13 +70,15 @@ context('Staking Tab - with eth and vega wallets connected', function () { cy.get(staking.validatorNames).contains(this.validatorName).click(); cy.staking_validator_page_add_stake('2'); - cy.vega_wallet_check_validator_staked_value_is(this.validatorName, + cy.vega_wallet_check_validator_staked_value_is( + this.validatorName, '2.000000000000000000' ); cy.get(navigation.staking).first().click(); cy.get(staking.validatorNames).contains(this.otherValidatorName).click(); cy.staking_validator_page_add_stake('1'); - cy.vega_wallet_check_validator_staked_value_is(this.otherValidatorName, + cy.vega_wallet_check_validator_staked_value_is( + this.otherValidatorName, '1.000000000000000000' ); cy.vega_wallet_check_unstaked_value_is('2.000000000000000000'); @@ -202,7 +210,7 @@ context('Staking Tab - with eth and vega wallets connected', function () { }); it('Disassociating all tokens - removes all staked tokens', function () { - cy.staking_page_associate_tokens('3') + cy.staking_page_associate_tokens('3'); cy.vega_wallet_check_unstaked_value_is('3.000000000000000000'); cy.get('button').contains('Select a validator to nominate').click(); @@ -210,17 +218,22 @@ context('Staking Tab - with eth and vega wallets connected', function () { cy.staking_validator_page_add_stake('2'); cy.vega_wallet_check_unstaked_value_is('1.000000000000000000'); - cy.vega_wallet_check_validator_staked_value_is(this.validatorName, '2.000000000000000000'); + cy.vega_wallet_check_validator_staked_value_is( + this.validatorName, + '2.000000000000000000' + ); cy.get(navigation.staking).first().click(); cy.staking_page_disassociate_all_tokens(); - cy.ethereum_wallet_check_associated_vega_key_is_no_longer_showing(vegaWalletPublicKeyShort); + cy.ethereum_wallet_check_associated_vega_key_is_no_longer_showing( + vegaWalletPublicKeyShort + ); cy.ethereum_wallet_check_associated_value_is('0.0'); - cy.vega_wallet_check_associated_value_is('0.000000000000000000'); + cy.vega_wallet_check_associated_value_is('0.000000000000000000'); cy.vega_wallet_check_validator_no_longer_showing(this.validatorName); }); it('Disassociating some tokens - prioritizes unstaked tokens', function () { - cy.staking_page_associate_tokens('3') + cy.staking_page_associate_tokens('3'); cy.vega_wallet_check_unstaked_value_is('3.000000000000000000'); cy.get('button').contains('Select a validator to nominate').click(); @@ -228,33 +241,46 @@ context('Staking Tab - with eth and vega wallets connected', function () { cy.staking_validator_page_add_stake('2'); cy.vega_wallet_check_unstaked_value_is('1.000000000000000000'); - cy.vega_wallet_check_validator_staked_value_is(this.validatorName, '2.000000000000000000'); + cy.vega_wallet_check_validator_staked_value_is( + this.validatorName, + '2.000000000000000000' + ); cy.get(navigation.staking).first().click(); cy.staking_page_disassociate_tokens('1'); cy.ethereum_wallet_check_associated_value_is('2.0'); - cy.vega_wallet_check_associated_value_is('2.000000000000000000'); - cy.vega_wallet_check_validator_staked_value_is(this.validatorName, + cy.vega_wallet_check_associated_value_is('2.000000000000000000'); + cy.vega_wallet_check_validator_staked_value_is( + this.validatorName, '2.000000000000000000' ); }); }); cy.staking_validator_page_check_stake_next_epoch_value = (expectedVal) => { - cy.highlight(`Checking Staking Page - Validator Stake Next Epoch Value is ${expectedVal}`); + cy.highlight( + `Checking Staking Page - Validator Stake Next Epoch Value is ${expectedVal}` + ); cy.get(staking.stakeNextEpochValue, { timeout: 10000 }) .contains(expectedVal, { timeout: 10000 }) .should('be.visible'); }; - + cy.staking_validator_page_check_stake_this_epoch_value = (expectedVal) => { - cy.highlight(`Checking Staking Page - Validator Stake This Epoch Value is ${expectedVal}`); + cy.highlight( + `Checking Staking Page - Validator Stake This Epoch Value is ${expectedVal}` + ); cy.get(staking.stakeThisEpochValue, { timeout: 10000 }) .contains(expectedVal, { timeout: 10000 }) .should('be.visible'); }; - cy.vega_wallet_check_validator_stake_next_epoch_value_is = (validatorName, expectedVal) => { - cy.highlight(`Checking vega wallet - Stake Next Epoch Value for ${validatorName} is ${expectedVal}`); + cy.vega_wallet_check_validator_stake_next_epoch_value_is = ( + validatorName, + expectedVal + ) => { + cy.highlight( + `Checking vega wallet - Stake Next Epoch Value for ${validatorName} is ${expectedVal}` + ); cy.get(wallet.vegawallet).within(() => { cy.contains(`${validatorName} (Next epoch)`, { timeout: 40000 }) .siblings() @@ -262,9 +288,14 @@ context('Staking Tab - with eth and vega wallets connected', function () { .should('be.visible'); }); }; - - cy.vega_wallet_check_validator_stake_this_epoch_value_is = (validatorName, expectedVal) => { - cy.highlight(`Checking vega wallet - Stake This Epoch Value for ${validatorName} is ${expectedVal}`); + + cy.vega_wallet_check_validator_stake_this_epoch_value_is = ( + validatorName, + expectedVal + ) => { + cy.highlight( + `Checking vega wallet - Stake This Epoch Value for ${validatorName} is ${expectedVal}` + ); cy.get(wallet.vegawallet).within(() => { cy.contains(`${validatorName} (This Epoch)`, { timeout: 40000 }) .siblings() @@ -274,15 +305,23 @@ context('Staking Tab - with eth and vega wallets connected', function () { }; cy.vega_wallet_check_validator_no_longer_showing = (validatorName) => { - cy.highlight(`Checking Validator and therefore stake removed for ${validatorName}`); + cy.highlight( + `Checking Validator and therefore stake removed for ${validatorName}` + ); cy.get(wallet.vegawallet).within(() => { - cy.contains(`${validatorName}`, { timeout: 40000 }) - .should('not.exist', { timeout: 40000 }); + cy.contains(`${validatorName}`, { timeout: 40000 }).should('not.exist', { + timeout: 40000, + }); }); }; - cy.vega_wallet_check_validator_staked_value_is = (validatorName, expectedVal) => { - cy.highlight(`Checking Validator Stake Value for ${validatorName} is ${expectedVal}`); + cy.vega_wallet_check_validator_staked_value_is = ( + validatorName, + expectedVal + ) => { + cy.highlight( + `Checking Validator Stake Value for ${validatorName} is ${expectedVal}` + ); cy.get(wallet.vegawallet).within(() => { cy.contains(`${validatorName}`, { timeout: 40000 }) .siblings() diff --git a/apps/token-e2e/src/integration/flow/token-association-flow.cy.js b/apps/token-e2e/src/integration/flow/token-association-flow.cy.js index d74b2cf8c..ece1e8aa7 100644 --- a/apps/token-e2e/src/integration/flow/token-association-flow.cy.js +++ b/apps/token-e2e/src/integration/flow/token-association-flow.cy.js @@ -7,7 +7,7 @@ import '../../support/vega-wallet.functions'; import '../../support/eth-wallet.functions'; import '../../support/wallet-teardown.functions'; -const vegaWalletPublicKeyShort = Cypress.env("vegaWalletPublicKeyShort"); +const vegaWalletPublicKeyShort = Cypress.env('vegaWalletPublicKeyShort'); context('Staking Tab - with eth and vega wallets connected', function () { before('visit staking tab and connect vega wallet', function () { @@ -36,7 +36,10 @@ context('Staking Tab - with eth and vega wallets connected', function () { it('Able to associate tokens - from staking page', function () { cy.staking_page_associate_tokens('2'); - cy.ethereum_wallet_check_associated_vega_key_value_is(vegaWalletPublicKeyShort,'2.000000000000000000'); + cy.ethereum_wallet_check_associated_vega_key_value_is( + vegaWalletPublicKeyShort, + '2.000000000000000000' + ); cy.ethereum_wallet_check_associated_value_is('2.0'); cy.vega_wallet_check_associated_value_is('2.000000000000000000'); cy.vega_wallet_check_unstaked_value_is('2.000000000000000000'); @@ -44,28 +47,45 @@ context('Staking Tab - with eth and vega wallets connected', function () { it('Able to disassociate tokens - from staking page', function () { cy.staking_page_associate_tokens('2'); - cy.ethereum_wallet_check_associated_vega_key_value_is(vegaWalletPublicKeyShort,'2.000000000000000000'); + cy.ethereum_wallet_check_associated_vega_key_value_is( + vegaWalletPublicKeyShort, + '2.000000000000000000' + ); cy.vega_wallet_check_associated_value_is('2.000000000000000000'); cy.get('button').contains('Select a validator to nominate').click(); cy.staking_page_disassociate_tokens('1'); - cy.ethereum_wallet_check_associated_vega_key_value_is(vegaWalletPublicKeyShort,'1.000000000000000000'); + cy.ethereum_wallet_check_associated_vega_key_value_is( + vegaWalletPublicKeyShort, + '1.000000000000000000' + ); cy.ethereum_wallet_check_associated_value_is('1.0'); cy.vega_wallet_check_associated_value_is('1.000000000000000000'); }); it('Able to access associate token form - from eth wallet', function () { - cy.get(wallet.ethWallet).within(() => cy.get(wallet.ethWalletAssociate).click()); - cy.get(staking.stakeAssociateWalletRadio, { timeout: 30000 }).should('be.enabled') + cy.get(wallet.ethWallet).within(() => + cy.get(wallet.ethWalletAssociate).click() + ); + cy.get(staking.stakeAssociateWalletRadio, { timeout: 30000 }).should( + 'be.enabled' + ); }); it('Able to access disassociate token form - from eth wallet', function () { - cy.get(wallet.ethWallet).within(() => cy.get(wallet.ethWalletDisassociate).click()); - cy.get(staking.stakeAssociateWalletRadio, { timeout: 30000 }).should('be.enabled') + cy.get(wallet.ethWallet).within(() => + cy.get(wallet.ethWalletDisassociate).click() + ); + cy.get(staking.stakeAssociateWalletRadio, { timeout: 30000 }).should( + 'be.enabled' + ); }); it('Able to associate more tokens than the approved amount of 1000 - requires re-approval', function () { cy.staking_page_associate_tokens('1001', true); - cy.ethereum_wallet_check_associated_vega_key_value_is(vegaWalletPublicKeyShort,'1,001.000000000000000000'); + cy.ethereum_wallet_check_associated_vega_key_value_is( + vegaWalletPublicKeyShort, + '1,001.000000000000000000' + ); cy.ethereum_wallet_check_associated_value_is('1,001.00'); cy.vega_wallet_check_associated_value_is('1,001.000000000000000000'); }); @@ -75,7 +95,10 @@ context('Staking Tab - with eth and vega wallets connected', function () { cy.vega_wallet_check_associated_value_is('2.000000000000000000'); cy.get('button').contains('Select a validator to nominate').click(); cy.staking_page_disassociate_tokens('1'); - cy.ethereum_wallet_check_associated_vega_key_value_is(vegaWalletPublicKeyShort,'1.000000000000000000'); + cy.ethereum_wallet_check_associated_vega_key_value_is( + vegaWalletPublicKeyShort, + '1.000000000000000000' + ); cy.ethereum_wallet_check_associated_value_is('1.0'); cy.vega_wallet_check_associated_value_is('1.000000000000000000'); }); @@ -85,7 +108,9 @@ context('Staking Tab - with eth and vega wallets connected', function () { cy.vega_wallet_check_associated_value_is('2.000000000000000000'); cy.get('button').contains('Select a validator to nominate').click(); cy.staking_page_disassociate_all_tokens(); - cy.ethereum_wallet_check_associated_vega_key_is_no_longer_showing(vegaWalletPublicKeyShort); + cy.ethereum_wallet_check_associated_vega_key_is_no_longer_showing( + vegaWalletPublicKeyShort + ); cy.ethereum_wallet_check_associated_value_is('0.0'); cy.vega_wallet_check_associated_value_is('0.000000000000000000'); }); diff --git a/apps/token-e2e/src/integration/home.cy.js b/apps/token-e2e/src/integration/home.cy.js index 5d1a95533..eae3261a5 100644 --- a/apps/token-e2e/src/integration/home.cy.js +++ b/apps/token-e2e/src/integration/home.cy.js @@ -1,8 +1,8 @@ import navigation from '../locators/navigation.locators'; import home from '../locators/home.locators'; -const vegaTokenAddress = Cypress.env("vegaTokenAddress");; -const vegaTokenContractAddress = Cypress.env("vegaTokenContractAddress"); +const vegaTokenAddress = Cypress.env('vegaTokenAddress'); +const vegaTokenContractAddress = Cypress.env('vegaTokenContractAddress'); context('Home Page - verify elements on page', function () { before('visit token home page', function () { diff --git a/apps/token-e2e/src/locators/staking.locators.js b/apps/token-e2e/src/locators/staking.locators.js index 3a293b542..cfbbb3424 100644 --- a/apps/token-e2e/src/locators/staking.locators.js +++ b/apps/token-e2e/src/locators/staking.locators.js @@ -22,5 +22,5 @@ export default { stakeAssociateWalletRadio: '[data-testid="associate-radio-wallet"]', disassociateButton: '[data-testid="disassociate-tokens-btn"]', associateMoreTokensButton: '[data-testid="associate-more-tokens-btn"]', - associateButton: '[data-testid="associate-tokens-btn"]' + associateButton: '[data-testid="associate-tokens-btn"]', }; diff --git a/apps/token-e2e/src/locators/wallet.locators.js b/apps/token-e2e/src/locators/wallet.locators.js index 2a7a2eb54..94371a8aa 100644 --- a/apps/token-e2e/src/locators/wallet.locators.js +++ b/apps/token-e2e/src/locators/wallet.locators.js @@ -11,4 +11,4 @@ export default { ethWalletConnect: '[data-testid="web3-connector-Unknown"]', ethWalletAssociate: '[href="/staking/associate"]', ethWalletDisassociate: '[href="/staking/disassociate"]', -}; \ No newline at end of file +}; diff --git a/apps/token-e2e/src/support/eth-wallet.functions.js b/apps/token-e2e/src/support/eth-wallet.functions.js index 8707b329f..451c39b1e 100644 --- a/apps/token-e2e/src/support/eth-wallet.functions.js +++ b/apps/token-e2e/src/support/eth-wallet.functions.js @@ -14,19 +14,25 @@ cy.ethereum_wallet_connect = () => { cy.contains('Locked', { timeout: 15000 }).should('be.visible'); }); }; - + cy.ethereum_wallet_check_associated_value_is = (expectedVal) => { cy.highlight(`Checking Eth Wallet - Associated Value is ${expectedVal}`); cy.get(wallet.ethWallet).within(() => { cy.contains('Associated', { timeout: 20000 }) - .parent().siblings() + .parent() + .siblings() .contains(expectedVal, { timeout: 40000 }) .should('be.visible'); }); }; - -cy.ethereum_wallet_check_associated_vega_key_value_is = (vegaShortPublicKey, expectedVal) => { - cy.highlight(`Checking Eth Wallet - Vega Key Associated Value is ${expectedVal} for key ${vegaShortPublicKey}`); + +cy.ethereum_wallet_check_associated_vega_key_value_is = ( + vegaShortPublicKey, + expectedVal +) => { + cy.highlight( + `Checking Eth Wallet - Vega Key Associated Value is ${expectedVal} for key ${vegaShortPublicKey}` + ); cy.get(wallet.ethWallet).within(() => { cy.contains(vegaShortPublicKey, { timeout: 20000 }) .parent() @@ -35,9 +41,11 @@ cy.ethereum_wallet_check_associated_vega_key_value_is = (vegaShortPublicKey, exp }); }; -cy.ethereum_wallet_check_associated_vega_key_is_no_longer_showing = (vegaShortPublicKey) => { +cy.ethereum_wallet_check_associated_vega_key_is_no_longer_showing = ( + vegaShortPublicKey +) => { cy.highlight('Checking Eth Wallet - Vega Key Associated is not showing'); cy.get(wallet.ethWallet).within(() => { cy.contains(vegaShortPublicKey, { timeout: 20000 }).should('not.exist'); }); -}; \ No newline at end of file +}; diff --git a/apps/token-e2e/src/support/staking.functions.js b/apps/token-e2e/src/support/staking.functions.js index 4d27697b4..57eb9e916 100644 --- a/apps/token-e2e/src/support/staking.functions.js +++ b/apps/token-e2e/src/support/staking.functions.js @@ -31,11 +31,11 @@ cy.staking_validator_page_removeStake = (stake) => { ); }; -cy.staking_page_associate_tokens = (amount, approve=false) => { +cy.staking_page_associate_tokens = (amount, approve = false) => { cy.highlight(`Associating ${amount} tokens`); cy.get(staking.associateButton).click(); cy.get(staking.stakeAssociateWalletRadio, { timeout: 30000 }).click(); - cy.get(staking.tokenAmountInput, { timeout: 10000 }).type(amount); + cy.get(staking.tokenAmountInput, { timeout: 10000 }).type(amount); if (approve) { cy.get(staking.tokenInputApprove, { timeout: 40000 }) .should('be.enabled') @@ -46,13 +46,14 @@ cy.staking_page_associate_tokens = (amount, approve=false) => { cy.contains('Approve $VEGA Tokens for staking on Vega', { timeout: 40000, }).should('not.exist'); - } + } cy.get(staking.tokenInputSubmit, { timeout: 40000 }) - .should('be.enabled').click(); + .should('be.enabled') + .click(); cy.contains('can now participate in governance and nominate a validator', { timeout: 60000, - }).should('be.visible'); -} + }).should('be.visible'); +}; cy.staking_page_disassociate_tokens = (amount) => { cy.highlight(`Disassociating ${amount} tokens via Staking Page`); @@ -77,4 +78,4 @@ cy.staking_page_disassociate_all_tokens = () => { cy.contains('$VEGA tokens have been returned to Ethereum wallet', { timeout: 60000, }).should('be.visible'); -}; \ No newline at end of file +}; diff --git a/apps/token-e2e/src/support/vega-wallet.functions.js b/apps/token-e2e/src/support/vega-wallet.functions.js index c51c89c19..ef350181e 100644 --- a/apps/token-e2e/src/support/vega-wallet.functions.js +++ b/apps/token-e2e/src/support/vega-wallet.functions.js @@ -1,8 +1,8 @@ import wallet from '../locators/wallet.locators'; -const vegaWalletName = Cypress.env("vegaWalletName"); -const vegaWalletLocation = Cypress.env("vegaWalletLocation"); -const vegaWalletPassphrase = Cypress.env("vegaWalletPassphrase"); +const vegaWalletName = Cypress.env('vegaWalletName'); +const vegaWalletLocation = Cypress.env('vegaWalletLocation'); +const vegaWalletPassphrase = Cypress.env('vegaWalletPassphrase'); cy.vega_wallet_import = () => { cy.highlight(`Importing Vega Wallet ${vegaWalletName}`); @@ -53,4 +53,4 @@ cy.vega_wallet_check_associated_value_is = (expectedVal) => { .contains(expectedVal, { timeout: 40000 }) .should('be.visible'); }); -}; \ No newline at end of file +}; diff --git a/apps/token-e2e/src/support/wallet-teardown.functions.js b/apps/token-e2e/src/support/wallet-teardown.functions.js index 81b35a2be..1b56013de 100644 --- a/apps/token-e2e/src/support/wallet-teardown.functions.js +++ b/apps/token-e2e/src/support/wallet-teardown.functions.js @@ -1,33 +1,42 @@ -import { StakingBridge, Token, TokenVesting } from '@vegaprotocol/smart-contracts'; +import { + StakingBridge, + Token, + TokenVesting, +} from '@vegaprotocol/smart-contracts'; import { ethers, Wallet } from 'ethers'; -const vegaWalletMnemonic = Cypress.env("vegaWalletMnemonic"); -const vegaWalletPubKey = Cypress.env("vegaWalletPublicKey"); -const vegaTokenContractAddress = Cypress.env("vegaTokenContractAddress"); -const vegaTokenAddress = Cypress.env("vegaTokenAddress"); -const ethWalletPubKey = Cypress.env("ethWalletPublicKey"); -const ethStakingBridgeContractAddress = Cypress.env("ethStakingBridgeContractAddress"); -const ethProviderUrl = Cypress.env("ethProviderUrl"); +const vegaWalletMnemonic = Cypress.env('vegaWalletMnemonic'); +const vegaWalletPubKey = Cypress.env('vegaWalletPublicKey'); +const vegaTokenContractAddress = Cypress.env('vegaTokenContractAddress'); +const vegaTokenAddress = Cypress.env('vegaTokenAddress'); +const ethWalletPubKey = Cypress.env('ethWalletPublicKey'); +const ethStakingBridgeContractAddress = Cypress.env( + 'ethStakingBridgeContractAddress' +); +const ethProviderUrl = Cypress.env('ethProviderUrl'); const getAccount = (number = 0) => `m/44'/60'/0'/0/${number}`; const transactionTimeout = '50000'; before('Vega wallet teardown prep', function () { cy.wrap(new ethers.providers.JsonRpcProvider({ url: ethProviderUrl }), { - log: false}).as('provider'); + log: false, + }).as('provider'); cy.wrap(Wallet.fromMnemonic(vegaWalletMnemonic, getAccount(0)).privateKey, { - log: false}).then((privateKey) => { - cy.wrap(new Wallet(privateKey, this.provider), { log: false }).as('signer'); - }) + log: false, + }).then((privateKey) => { + cy.wrap(new Wallet(privateKey, this.provider), { log: false }).as('signer'); + }); - cy.get("@signer", {log: false}).then((signer => { + cy.get('@signer', { log: false }).then((signer) => { cy.wrap(new StakingBridge(ethStakingBridgeContractAddress, signer), { - log: false}).as('stakingBridgeContract') + log: false, + }).as('stakingBridgeContract'); cy.wrap(new TokenVesting(vegaTokenContractAddress, signer), { - log: false}).as('vestingContract') - })) - -}) + log: false, + }).as('vestingContract'); + }); +}); Cypress.Commands.add('vega_wallet_teardown', function () { cy.vega_wallet_teardown_staking(this.stakingBridgeContract); @@ -35,45 +44,64 @@ Cypress.Commands.add('vega_wallet_teardown', function () { cy.vega_wallet_check_associated_value_is('0.000000000000000000'); }); -Cypress.Commands.add('vega_wallet_set_specified_approval_amount', function (resetAmount) { - cy.highlight(`Setting token approval amount to ${resetAmount}`); - cy.wrap(new Token(vegaTokenAddress, this.signer), { log: false }) - .then((token) => { - cy.wrap(token.approve(ethStakingBridgeContractAddress, - resetAmount.concat('000000000000000000') - ), - { timeout: transactionTimeout, log: false }) - .then((tx) => { cy.wait_for_transaction(tx) }); - }); - // ensure to cy.reload() after running this in order to take affect -}); +Cypress.Commands.add( + 'vega_wallet_set_specified_approval_amount', + function (resetAmount) { + cy.highlight(`Setting token approval amount to ${resetAmount}`); + cy.wrap(new Token(vegaTokenAddress, this.signer), { log: false }).then( + (token) => { + cy.wrap( + token.approve( + ethStakingBridgeContractAddress, + resetAmount.concat('000000000000000000') + ), + { timeout: transactionTimeout, log: false } + ).then((tx) => { + cy.wait_for_transaction(tx); + }); + } + ); + // ensure to cy.reload() after running this in order to take affect + } +); cy.vega_wallet_teardown_staking = (stakingBridgeContract) => { cy.highlight('Tearing down staking tokens from vega wallet if present'); - cy.wrap(stakingBridgeContract.stakeBalance(ethWalletPubKey, vegaWalletPubKey), { - timeout: transactionTimeout, log: false}) - .then((stake_amount) => { - if (String(stake_amount) != '0') { - cy.wrap(stakingBridgeContract.removeStake(stake_amount, vegaWalletPubKey), - { timeout: transactionTimeout, log: false }) - .then((tx) => { cy.wait_for_transaction(tx) }); - } - }) + cy.wrap( + stakingBridgeContract.stakeBalance(ethWalletPubKey, vegaWalletPubKey), + { + timeout: transactionTimeout, + log: false, + } + ).then((stake_amount) => { + if (String(stake_amount) != '0') { + cy.wrap( + stakingBridgeContract.removeStake(stake_amount, vegaWalletPubKey), + { timeout: transactionTimeout, log: false } + ).then((tx) => { + cy.wait_for_transaction(tx); + }); + } + }); }; cy.vega_wallet_teardown_vesting = (vestingContract) => { cy.highlight('Tearing down vesting tokens from vega wallet if present'); cy.wrap(vestingContract.stakeBalance(ethWalletPubKey, vegaWalletPubKey), { - timeout: transactionTimeout, log: false}) - .then((vesting_amount) => { - if (String(vesting_amount) != '0') { - cy.wrap(vestingContract.removeStake(vesting_amount, vegaWalletPubKey), - { timeout: transactionTimeout, log: false }) - .then((tx) => { cy.wait_for_transaction(tx) }); - } + timeout: transactionTimeout, + log: false, + }).then((vesting_amount) => { + if (String(vesting_amount) != '0') { + cy.wrap(vestingContract.removeStake(vesting_amount, vegaWalletPubKey), { + timeout: transactionTimeout, + log: false, + }).then((tx) => { + cy.wait_for_transaction(tx); + }); + } }); }; cy.wait_for_transaction = (tx) => { - cy.wrap(tx.wait(1).catch(cy.log), {timeout: transactionTimeout}) -}; \ No newline at end of file + cy.wrap(tx.wait(1).catch(cy.log), { timeout: transactionTimeout }); +}; diff --git a/libs/cypress/src/index.ts b/libs/cypress/src/index.ts index b3a239957..03349d1de 100644 --- a/libs/cypress/src/index.ts +++ b/libs/cypress/src/index.ts @@ -12,4 +12,4 @@ addMockVegaWalletCommands(); addMockWeb3ProviderCommand(); addHighlightLog(); -export * from './lib/graphql-test-utils'; \ No newline at end of file +export * from './lib/graphql-test-utils'; diff --git a/libs/cypress/src/lib/commands/highlight-log.ts b/libs/cypress/src/lib/commands/highlight-log.ts index ae7f0acb1..b4c2192d8 100644 --- a/libs/cypress/src/lib/commands/highlight-log.ts +++ b/libs/cypress/src/lib/commands/highlight-log.ts @@ -1,16 +1,16 @@ declare global { - // eslint-disable-next-line @typescript-eslint/no-namespace - namespace Cypress { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - interface Chainable { - highlight(message: string): void; - } + // eslint-disable-next-line @typescript-eslint/no-namespace + namespace Cypress { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + interface Chainable { + highlight(message: string): void; } } - - export function addHighlightLog() { - // @ts-ignore - ignoring Cypress type error which gets resolved when Cypress uses the command - Cypress.Commands.add('highlight', (message) => { - cy.log(`👉 **_${message}_**`); - }); - } \ No newline at end of file +} + +export function addHighlightLog() { + // @ts-ignore - ignoring Cypress type error which gets resolved when Cypress uses the command + Cypress.Commands.add('highlight', (message) => { + cy.log(`👉 **_${message}_**`); + }); +}