chore(token): get rid of locators files (#749)
* chore(token): get rid of locators files * chore(token): refactor some functions and locators Co-authored-by: Rado <rado@vegaprotocol.io>
This commit is contained in:
parent
07abc2b1eb
commit
359414f353
@ -1,4 +1,3 @@
|
||||
const stakingPageLink = '[href="/staking"]';
|
||||
const pageSpinner = 'splash-loader';
|
||||
const menuBar = 'nav';
|
||||
const validatorList = '[data-testid="node-list-item-name"]';
|
||||
@ -6,9 +5,10 @@ const removeStakeRadioButton = '[data-testid="remove-stake-radio"]';
|
||||
const tokenAmountInputBox = '[data-testid="token-amount-input"]';
|
||||
const tokenSubmitButton = '[data-testid="token-input-submit-button"]';
|
||||
const stakeNextEpochValue = '[data-testid="stake-next-epoch"]';
|
||||
const vegaWalletPublicKeyShort = Cypress.env('vegaWalletPublicKeyShort');
|
||||
const vegaWalletContainer = '[data-testid="vega-wallet"]';
|
||||
|
||||
const vegaWalletPublicKeyShort = Cypress.env('vegaWalletPublicKeyShort');
|
||||
|
||||
context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
before('visit staking tab and connect vega wallet', function () {
|
||||
cy.vega_wallet_import();
|
||||
@ -19,7 +19,7 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
cy.reload();
|
||||
cy.get(menuBar, { timeout: 20000 }).should('be.visible');
|
||||
cy.ethereum_wallet_connect();
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.get(pageSpinner, { timeout: 20000 }).should('not.exist');
|
||||
cy.get(validatorList).first().invoke('text').as('validatorName');
|
||||
cy.get(validatorList).last().invoke('text').as('otherValidatorName');
|
||||
@ -30,7 +30,7 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
'teardown wallet & drill into a specific validator',
|
||||
function () {
|
||||
cy.vega_wallet_teardown();
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
}
|
||||
);
|
||||
|
||||
@ -47,17 +47,17 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
|
||||
cy.staking_validator_page_add_stake('2');
|
||||
cy.vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_unstaked_value_is('1.000000000000000000');
|
||||
cy.vega_wallet_check_validator_staked_value_is(
|
||||
vega_wallet_check_validator_staked_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
cy.staking_validator_page_check_stake_this_epoch_value('2.0');
|
||||
staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
staking_validator_page_check_stake_this_epoch_value('2.0');
|
||||
});
|
||||
|
||||
it('Able to stake against mulitple validators', function () {
|
||||
@ -67,14 +67,14 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
|
||||
cy.staking_validator_page_add_stake('2');
|
||||
cy.vega_wallet_check_validator_staked_value_is(
|
||||
vega_wallet_check_validator_staked_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.get(validatorList).contains(this.otherValidatorName).click();
|
||||
cy.staking_validator_page_add_stake('1');
|
||||
cy.vega_wallet_check_validator_staked_value_is(
|
||||
vega_wallet_check_validator_staked_value_is(
|
||||
this.otherValidatorName,
|
||||
'1.000000000000000000'
|
||||
);
|
||||
@ -89,34 +89,34 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
|
||||
cy.staking_validator_page_add_stake('3');
|
||||
cy.staking_validator_page_check_stake_next_epoch_value('3.0');
|
||||
cy.vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
staking_validator_page_check_stake_next_epoch_value('3.0');
|
||||
vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
this.validatorName,
|
||||
'3.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_unstaked_value_is('1.000000000000000000');
|
||||
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
|
||||
cy.staking_validator_page_removeStake('1');
|
||||
cy.staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
cy.staking_validator_page_check_stake_this_epoch_value('3.0');
|
||||
cy.vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
staking_validator_page_check_stake_this_epoch_value('3.0');
|
||||
vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_validator_stake_this_epoch_value_is(
|
||||
vega_wallet_check_validator_stake_this_epoch_value_is(
|
||||
this.validatorName,
|
||||
'3.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_unstaked_value_is('2.000000000000000000');
|
||||
cy.vega_wallet_check_validator_staked_value_is(
|
||||
vega_wallet_check_validator_staked_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
cy.staking_validator_page_check_stake_this_epoch_value('2.0');
|
||||
staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
staking_validator_page_check_stake_this_epoch_value('2.0');
|
||||
});
|
||||
|
||||
it('Able to remove a full stake against a validator', function () {
|
||||
@ -127,30 +127,30 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
|
||||
cy.staking_validator_page_add_stake('1');
|
||||
cy.vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
this.validatorName,
|
||||
'1.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_unstaked_value_is('2.000000000000000000');
|
||||
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
|
||||
cy.staking_validator_page_removeStake('1');
|
||||
cy.staking_validator_page_check_stake_next_epoch_value('0.0');
|
||||
staking_validator_page_check_stake_next_epoch_value('0.0');
|
||||
|
||||
cy.vega_wallet_check_validator_stake_this_epoch_value_is(
|
||||
vega_wallet_check_validator_stake_this_epoch_value_is(
|
||||
this.validatorName,
|
||||
'1.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
this.validatorName,
|
||||
'0.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_unstaked_value_is('3.000000000000000000');
|
||||
cy.staking_validator_page_check_stake_next_epoch_value('0.0');
|
||||
cy.staking_validator_page_check_stake_this_epoch_value('0.0');
|
||||
cy.vega_wallet_check_validator_no_longer_showing(this.validatorName);
|
||||
staking_validator_page_check_stake_next_epoch_value('0.0');
|
||||
staking_validator_page_check_stake_this_epoch_value('0.0');
|
||||
vega_wallet_check_validator_no_longer_showing(this.validatorName);
|
||||
});
|
||||
|
||||
it.skip('Unable to remove a stake with a negative value for a validator', function () {
|
||||
@ -161,14 +161,14 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
|
||||
cy.staking_validator_page_add_stake('2');
|
||||
cy.staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
cy.vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_unstaked_value_is('1.000000000000000000');
|
||||
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
cy.get(removeStakeRadioButton).click({ force: true });
|
||||
cy.get(tokenAmountInputBox).type('-0.1');
|
||||
@ -187,14 +187,14 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
|
||||
cy.staking_validator_page_add_stake('2');
|
||||
cy.staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
cy.vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
staking_validator_page_check_stake_next_epoch_value('2.0');
|
||||
vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.vega_wallet_check_unstaked_value_is('1.000000000000000000');
|
||||
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.get(validatorList).contains(this.validatorName).click();
|
||||
cy.get(removeStakeRadioButton).click({ force: true });
|
||||
cy.get(tokenAmountInputBox).type(4);
|
||||
@ -214,18 +214,18 @@ context('Staking Flow - 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(
|
||||
vega_wallet_check_validator_staked_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.staking_page_disassociate_all_tokens();
|
||||
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_validator_no_longer_showing(this.validatorName);
|
||||
vega_wallet_check_validator_no_longer_showing(this.validatorName);
|
||||
});
|
||||
|
||||
it('Disassociating some tokens - prioritizes unstaked tokens', function () {
|
||||
@ -237,15 +237,15 @@ context('Staking Flow - 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(
|
||||
vega_wallet_check_validator_staked_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
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(
|
||||
vega_wallet_check_validator_staked_value_is(
|
||||
this.validatorName,
|
||||
'2.000000000000000000'
|
||||
);
|
||||
@ -258,34 +258,30 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Cypress.Commands.add(
|
||||
'staking_validator_page_check_stake_next_epoch_value',
|
||||
(expectedVal) => {
|
||||
function staking_validator_page_check_stake_next_epoch_value(expectedVal) {
|
||||
cy.highlight(
|
||||
`Checking Staking Page - Validator Stake Next Epoch Value is ${expectedVal}`
|
||||
);
|
||||
cy.get(stakeNextEpochValue, { timeout: 10000 })
|
||||
.contains(expectedVal, { timeout: 10000 })
|
||||
.should('be.visible');
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Cypress.Commands.add(
|
||||
'staking_validator_page_check_stake_this_epoch_value',
|
||||
(expectedVal) => {
|
||||
function staking_validator_page_check_stake_this_epoch_value(expectedVal) {
|
||||
cy.highlight(
|
||||
`Checking Staking Page - Validator Stake This Epoch Value is ${expectedVal}`
|
||||
);
|
||||
cy.get(stakeNextEpochValue, { timeout: 10000 })
|
||||
.contains(expectedVal, { timeout: 10000 })
|
||||
.should('be.visible');
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Cypress.Commands.add(
|
||||
'vega_wallet_check_validator_stake_next_epoch_value_is',
|
||||
(validatorName, expectedVal) => {
|
||||
function vega_wallet_check_validator_stake_next_epoch_value_is(
|
||||
validatorName,
|
||||
expectedVal
|
||||
) {
|
||||
cy.highlight(
|
||||
`Checking vega wallet - Stake Next Epoch Value for ${validatorName} is ${expectedVal}`
|
||||
);
|
||||
@ -295,12 +291,12 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
.contains(expectedVal, { timeout: 40000 })
|
||||
.should('be.visible');
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Cypress.Commands.add(
|
||||
'vega_wallet_check_validator_stake_this_epoch_value_is',
|
||||
(validatorName, expectedVal) => {
|
||||
function vega_wallet_check_validator_stake_this_epoch_value_is(
|
||||
validatorName,
|
||||
expectedVal
|
||||
) {
|
||||
cy.highlight(
|
||||
`Checking vega wallet - Stake This Epoch Value for ${validatorName} is ${expectedVal}`
|
||||
);
|
||||
@ -310,29 +306,23 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
.contains(expectedVal, { timeout: 40000 })
|
||||
.should('be.visible');
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Cypress.Commands.add(
|
||||
'vega_wallet_check_validator_no_longer_showing',
|
||||
(validatorName) => {
|
||||
function vega_wallet_check_validator_no_longer_showing(validatorName) {
|
||||
cy.highlight(
|
||||
`Checking Validator and therefore stake removed for ${validatorName}`
|
||||
);
|
||||
cy.get(vegaWalletContainer).within(() => {
|
||||
cy.contains(`${validatorName}`, { timeout: 40000 }).should(
|
||||
'not.exist',
|
||||
{
|
||||
cy.contains(`${validatorName}`, { timeout: 40000 }).should('not.exist', {
|
||||
timeout: 40000,
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Cypress.Commands.add(
|
||||
'vega_wallet_check_validator_staked_value_is',
|
||||
(validatorName, expectedVal) => {
|
||||
function vega_wallet_check_validator_staked_value_is(
|
||||
validatorName,
|
||||
expectedVal
|
||||
) {
|
||||
cy.highlight(
|
||||
`Checking Validator Stake Value for ${validatorName} is ${expectedVal}`
|
||||
);
|
||||
@ -342,6 +332,4 @@ context('Staking Flow - with eth and vega wallets connected', function () {
|
||||
.contains(expectedVal, { timeout: 40000 })
|
||||
.should('be.visible');
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
const stakingPageLink = '[href="/staking"]';
|
||||
const pageSpinner = 'splash-loader';
|
||||
const menuBar = 'nav';
|
||||
const validatorList = '[data-testid="node-list-item-name"]';
|
||||
|
||||
const vegaWalletPublicKeyShort = Cypress.env('vegaWalletPublicKeyShort');
|
||||
|
||||
context(
|
||||
@ -16,7 +16,7 @@ context(
|
||||
cy.reload();
|
||||
cy.get(menuBar, { timeout: 20000 }).should('be.visible');
|
||||
cy.ethereum_wallet_connect();
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.get(pageSpinner, { timeout: 20000 }).should('not.exist');
|
||||
cy.get(validatorList).first().invoke('text').as('validatorName');
|
||||
});
|
||||
@ -26,7 +26,7 @@ context(
|
||||
'teardown wallet & drill into a specific validator',
|
||||
function () {
|
||||
cy.vega_wallet_teardown();
|
||||
cy.get(stakingPageLink).first().click();
|
||||
cy.navigate_to('staking');
|
||||
cy.get(pageSpinner, { timeout: 20000 }).should('not.exist');
|
||||
}
|
||||
);
|
||||
|
@ -1,30 +1,21 @@
|
||||
import navigation from '../locators/navigation.locators';
|
||||
import governance from '../locators/governance.locators';
|
||||
const noProposals = '[data-testid="no-proposals"]';
|
||||
|
||||
context('Governance Page - verify elements on page', function () {
|
||||
before('navigate to governance page', function () {
|
||||
cy.visit('/')
|
||||
.get(navigation.section)
|
||||
.within(() => {
|
||||
cy.get(navigation.governance).click();
|
||||
});
|
||||
cy.visit('/').navigate_to('governance');
|
||||
});
|
||||
|
||||
describe('with no network change proposals', function () {
|
||||
it('should have governance tab highlighted', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.governance).should('have.attr', 'aria-current');
|
||||
});
|
||||
cy.verify_tab_highlighted('governance');
|
||||
});
|
||||
|
||||
it('should have GOVERNANCE header visible', function () {
|
||||
cy.get(governance.pageHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Governance');
|
||||
cy.verify_page_header('Governance');
|
||||
});
|
||||
|
||||
it('should have information box visible', function () {
|
||||
cy.get(governance.noProposals)
|
||||
cy.get(noProposals)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'There are no active network change proposals');
|
||||
});
|
||||
|
@ -1,5 +1,24 @@
|
||||
import navigation from '../locators/navigation.locators';
|
||||
import home from '../locators/home.locators';
|
||||
const navSection = 'nav';
|
||||
const navHome = '[href="/"]';
|
||||
const navVesting = '[href="/vesting"]';
|
||||
const navStaking = '[href="/staking"]';
|
||||
const navRewards = '[href="/rewards"]';
|
||||
const navWithdraw = '[href="/withdraw"]';
|
||||
const navGovernance = '[href="/governance"]';
|
||||
|
||||
const tokenDetailsTable = '.token-details';
|
||||
const address = '[data-testid="token-address"]';
|
||||
const contract = '[data-testid="token-contract"]';
|
||||
const totalSupply = '[data-testid="total-supply"]';
|
||||
const circulatingSupply = '[data-testid="circulating-supply"]';
|
||||
const staked = '[data-testid="staked"]';
|
||||
const tranchesLink = '[data-testid="tranches-link"]';
|
||||
const redeemBtn = '[data-testid="check-vesting-page-btn"]';
|
||||
const getVegaWalletLink = '[data-testid="get-vega-wallet-link"]';
|
||||
const associateVegaLink =
|
||||
'[data-testid="associate-vega-tokens-link-on-homepage"]';
|
||||
const stakingBtn = '[data-testid="staking-button-on-homepage"]';
|
||||
const governanceBtn = '[data-testid="governance-button-on-homepage"]';
|
||||
|
||||
const vegaTokenAddress = Cypress.env('vegaTokenAddress');
|
||||
const vegaTokenContractAddress = Cypress.env('vegaTokenContractAddress');
|
||||
@ -11,111 +30,111 @@ context('Home Page - verify elements on page', function () {
|
||||
|
||||
describe('with wallets disconnected', function () {
|
||||
before('wait for page to load', function () {
|
||||
cy.get(navigation.section, { timeout: 10000 }).should('be.visible');
|
||||
cy.get(navSection, { timeout: 10000 }).should('be.visible');
|
||||
});
|
||||
|
||||
describe('Navigation tabs', function () {
|
||||
it('should have HOME tab', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.home).should('be.visible');
|
||||
cy.get(navSection).within(() => {
|
||||
cy.get(navHome).should('be.visible');
|
||||
});
|
||||
});
|
||||
it('should have VESTING tab', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.vesting).should('be.visible');
|
||||
cy.get(navSection).within(() => {
|
||||
cy.get(navVesting).should('be.visible');
|
||||
});
|
||||
});
|
||||
it('should have STAKING tab', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.staking).should('be.visible');
|
||||
cy.get(navSection).within(() => {
|
||||
cy.get(navStaking).should('be.visible');
|
||||
});
|
||||
});
|
||||
it('should have REWARDS tab', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.rewards).should('be.visible');
|
||||
cy.get(navSection).within(() => {
|
||||
cy.get(navRewards).should('be.visible');
|
||||
});
|
||||
});
|
||||
it('should have WITHDRAW tab', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.withdraw).should('be.visible');
|
||||
cy.get(navSection).within(() => {
|
||||
cy.get(navWithdraw).should('be.visible');
|
||||
});
|
||||
});
|
||||
it('should have GOVERNANCE tab', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.governance).should('be.visible');
|
||||
cy.get(navSection).within(() => {
|
||||
cy.get(navGovernance).should('be.visible');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('THE $VEGA TOKEN table', function () {
|
||||
it('should have TOKEN ADDRESS', function () {
|
||||
cy.get(home.tokenDetailsTable).within(() => {
|
||||
cy.get(home.address)
|
||||
cy.get(tokenDetailsTable).within(() => {
|
||||
cy.get(address)
|
||||
.should('be.visible')
|
||||
.invoke('text')
|
||||
.should('be.equal', vegaTokenAddress);
|
||||
});
|
||||
});
|
||||
it('should have VESTING CONTRACT', function () {
|
||||
cy.get(home.tokenDetailsTable).within(() => {
|
||||
cy.get(home.contract)
|
||||
cy.get(tokenDetailsTable).within(() => {
|
||||
cy.get(contract)
|
||||
.should('be.visible')
|
||||
.invoke('text')
|
||||
.should('be.equal', vegaTokenContractAddress);
|
||||
});
|
||||
});
|
||||
it('should have TOTAL SUPPLY', function () {
|
||||
cy.get(home.tokenDetailsTable).within(() => {
|
||||
cy.get(home.totalSupply).should('be.visible');
|
||||
cy.get(tokenDetailsTable).within(() => {
|
||||
cy.get(totalSupply).should('be.visible');
|
||||
});
|
||||
});
|
||||
it('should have CIRCULATING SUPPLY', function () {
|
||||
cy.get(home.tokenDetailsTable).within(() => {
|
||||
cy.get(home.circulatingSupply).should('be.visible');
|
||||
cy.get(tokenDetailsTable).within(() => {
|
||||
cy.get(circulatingSupply).should('be.visible');
|
||||
});
|
||||
});
|
||||
it('should have STAKED $VEGA', function () {
|
||||
cy.get(home.tokenDetailsTable).within(() => {
|
||||
cy.get(home.staked).should('be.visible');
|
||||
cy.get(tokenDetailsTable).within(() => {
|
||||
cy.get(staked).should('be.visible');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('links and buttons', function () {
|
||||
it('should have TRANCHES link', function () {
|
||||
cy.get(home.tranchesLink)
|
||||
cy.get(tranchesLink)
|
||||
.should('be.visible')
|
||||
.and('have.attr', 'href')
|
||||
.and('equal', '/tranches');
|
||||
});
|
||||
it('should have REDEEM button', function () {
|
||||
cy.get(home.redeemBtn)
|
||||
cy.get(redeemBtn)
|
||||
.should('be.visible')
|
||||
.parent()
|
||||
.should('have.attr', 'href')
|
||||
.and('equal', '/vesting');
|
||||
});
|
||||
it('should have GET VEGA WALLET link', function () {
|
||||
cy.get(home.getVegaWalletLink)
|
||||
cy.get(getVegaWalletLink)
|
||||
.should('be.visible')
|
||||
.and('have.attr', 'href')
|
||||
.and('equal', 'https://vega.xyz/wallet');
|
||||
});
|
||||
it('should have ASSOCIATE VEGA TOKENS link', function () {
|
||||
cy.get(home.associateVegaLink)
|
||||
cy.get(associateVegaLink)
|
||||
.should('be.visible')
|
||||
.and('have.attr', 'href')
|
||||
.and('equal', '/staking/associate');
|
||||
});
|
||||
it('should have STAKING button', function () {
|
||||
cy.get(home.stakingBtn)
|
||||
cy.get(stakingBtn)
|
||||
.should('be.visible')
|
||||
.parent()
|
||||
.should('have.attr', 'href')
|
||||
.and('equal', '/staking');
|
||||
});
|
||||
it('should have GOVERNANCE button', function () {
|
||||
cy.get(home.governanceBtn)
|
||||
cy.get(governanceBtn)
|
||||
.should('be.visible')
|
||||
.parent()
|
||||
.should('have.attr', 'href')
|
||||
|
@ -1,30 +1,22 @@
|
||||
import navigation from '../locators/navigation.locators';
|
||||
import rewards from '../locators/rewards.locators';
|
||||
const connectToVegaBtn = '[data-testid="connect-to-vega-wallet-btn"]';
|
||||
const warning = '[data-testid="callout"]';
|
||||
|
||||
context('Rewards Page - verify elements on page', function () {
|
||||
before('navigate to rewards page', function () {
|
||||
cy.visit('/')
|
||||
.get(navigation.section)
|
||||
.within(() => {
|
||||
cy.get(navigation.rewards).click();
|
||||
});
|
||||
cy.visit('/').navigate_to('rewards');
|
||||
});
|
||||
|
||||
describe('with wallets disconnected', function () {
|
||||
it('should have REWARDS tab highlighted', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.rewards).should('have.attr', 'aria-current');
|
||||
});
|
||||
cy.verify_tab_highlighted('rewards');
|
||||
});
|
||||
|
||||
it('should have rewards header visible', function () {
|
||||
cy.get(rewards.pageHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Rewards');
|
||||
cy.verify_page_header('Rewards');
|
||||
});
|
||||
|
||||
it('should have epoch warning', function () {
|
||||
cy.get(rewards.warning)
|
||||
cy.get(warning)
|
||||
.should('be.visible')
|
||||
.and(
|
||||
'have.text',
|
||||
@ -33,7 +25,7 @@ context('Rewards Page - verify elements on page', function () {
|
||||
});
|
||||
|
||||
it('should have connect Vega wallet button', function () {
|
||||
cy.get(rewards.connectToVegaBtn)
|
||||
cy.get(connectToVegaBtn)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Connect Vega wallet');
|
||||
});
|
||||
|
@ -1,31 +1,30 @@
|
||||
import navigation from '../locators/navigation.locators';
|
||||
import staking from '../locators/staking.locators';
|
||||
const guideLink = '[data-testid="staking-guide-link"]';
|
||||
const step1 = '[data-testid="staking-step-1"]';
|
||||
const step2 = '[data-testid="staking-step-2"]';
|
||||
const step3 = '[data-testid="staking-step-3"]';
|
||||
const sectionHeader = 'h2';
|
||||
const connectToEthBtn = '[data-testid="connect-to-eth-btn"]';
|
||||
const connectToVegaBtn = '[data-testid="connect-to-vega-wallet-btn"]';
|
||||
const link = '[data-testid="link"]';
|
||||
const warning = '[data-testid="callout"]';
|
||||
|
||||
context('Staking Page - verify elements on page', function () {
|
||||
before('navigate to staking page', function () {
|
||||
cy.visit('/')
|
||||
.get(navigation.section)
|
||||
.within(() => {
|
||||
cy.get(navigation.staking).click();
|
||||
});
|
||||
cy.visit('/').navigate_to('staking');
|
||||
});
|
||||
|
||||
describe('with wallets disconnected', function () {
|
||||
describe('description section', function () {
|
||||
it('should have staking tab highlighted', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.staking).should('have.attr', 'aria-current');
|
||||
});
|
||||
cy.verify_tab_highlighted('staking');
|
||||
});
|
||||
|
||||
it('should have STAKING ON VEGA header visible', function () {
|
||||
cy.get(staking.pageHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Staking on Vega');
|
||||
cy.verify_page_header('Staking on Vega');
|
||||
});
|
||||
|
||||
it('should have Staking Guide link visible', function () {
|
||||
cy.get(staking.guideLink)
|
||||
cy.get(guideLink)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Read more about staking on Vega')
|
||||
.and(
|
||||
@ -38,16 +37,16 @@ context('Staking Page - verify elements on page', function () {
|
||||
|
||||
describe('step 1 section', function () {
|
||||
it('should have header visible', function () {
|
||||
cy.get(staking.step1).within(() => {
|
||||
cy.get(staking.sectionHeader)
|
||||
cy.get(step1).within(() => {
|
||||
cy.get(sectionHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Step 1. Connect to a Vega Wallet');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have text visible', function () {
|
||||
cy.get(staking.step1).within(() => {
|
||||
cy.get(staking.link)
|
||||
cy.get(step1).within(() => {
|
||||
cy.get(link)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Vega Wallet')
|
||||
.and('have.attr', 'href', 'https://vega.xyz/wallet');
|
||||
@ -55,16 +54,16 @@ context('Staking Page - verify elements on page', function () {
|
||||
});
|
||||
|
||||
it('should have connect to eth button visible', function () {
|
||||
cy.get(staking.step1).within(() => {
|
||||
cy.get(staking.connectToEthBtn)
|
||||
cy.get(step1).within(() => {
|
||||
cy.get(connectToEthBtn)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Connect Ethereum wallet');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have connect to vega button visible', function () {
|
||||
cy.get(staking.step1).within(() => {
|
||||
cy.get(staking.connectToVegaBtn)
|
||||
cy.get(step1).within(() => {
|
||||
cy.get(connectToVegaBtn)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Connect Vega wallet');
|
||||
});
|
||||
@ -73,16 +72,16 @@ context('Staking Page - verify elements on page', function () {
|
||||
|
||||
describe('step 2 section', function () {
|
||||
it('should have header visible', function () {
|
||||
cy.get(staking.step2).within(() => {
|
||||
cy.get(staking.sectionHeader)
|
||||
cy.get(step2).within(() => {
|
||||
cy.get(sectionHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Step 2. Associate tokens with a Vega Wallet');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have warning visible', function () {
|
||||
cy.get(staking.step2).within(() => {
|
||||
cy.get(staking.warning)
|
||||
cy.get(step2).within(() => {
|
||||
cy.get(warning)
|
||||
.should('be.visible')
|
||||
.and(
|
||||
'have.text',
|
||||
@ -94,8 +93,8 @@ context('Staking Page - verify elements on page', function () {
|
||||
|
||||
describe('step 3 section', function () {
|
||||
it('should have header visible', function () {
|
||||
cy.get(staking.step3).within(() => {
|
||||
cy.get(staking.sectionHeader)
|
||||
cy.get(step3).within(() => {
|
||||
cy.get(sectionHeader)
|
||||
.should('be.visible')
|
||||
.and(
|
||||
'have.text',
|
||||
|
@ -1,34 +1,26 @@
|
||||
import navigation from '../locators/navigation.locators';
|
||||
import vesting from '../locators/vesting.locators';
|
||||
const connectPrompt = '[data-testid="eth-connect-prompt"]';
|
||||
const connectButton = '[data-testid="connect-to-eth-btn"]';
|
||||
|
||||
context('Vesting Page - verify elements on page', function () {
|
||||
before('navigate to vesting page', function () {
|
||||
cy.visit('/')
|
||||
.get(navigation.section)
|
||||
.within(() => {
|
||||
cy.get(navigation.vesting).click();
|
||||
});
|
||||
cy.visit('/').navigate_to('vesting');
|
||||
});
|
||||
|
||||
describe('with wallets disconnected', function () {
|
||||
it('should have vesting tab highlighted', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.vesting).should('have.attr', 'aria-current');
|
||||
});
|
||||
cy.verify_tab_highlighted('vesting');
|
||||
});
|
||||
|
||||
it('should have VESTING header visible', function () {
|
||||
cy.get(vesting.pageHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Vesting');
|
||||
cy.verify_page_header('Vesting');
|
||||
});
|
||||
|
||||
it('should have connect Eth wallet info', function () {
|
||||
cy.get(vesting.connectPrompt).should('be.visible');
|
||||
cy.get(connectPrompt).should('be.visible');
|
||||
});
|
||||
|
||||
it('should have connect Eth wallet button', function () {
|
||||
cy.get(vesting.connectButton)
|
||||
cy.get(connectButton)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Connect Ethereum wallet');
|
||||
});
|
||||
|
@ -1,5 +1,21 @@
|
||||
import ethWallet from '../locators/wallet-eth.locators';
|
||||
import '../support/wallet-eth.functions';
|
||||
const walletContainer = '[data-testid="ethereum-wallet"]';
|
||||
const walletHeader = '[data-testid="wallet-header"] h1';
|
||||
const connectToEthButton = '[data-testid="connect-to-eth-wallet-button"]';
|
||||
const connectorList = '[data-testid="web3-connector-list"]';
|
||||
const associate = '[href="/staking/associate"]';
|
||||
const disassociate = '[href="/staking/disassociate"]';
|
||||
const disconnect = '[data-testid="disconnect-from-eth-wallet-button"]';
|
||||
const accountNo = '[data-testid="ethereum-account-truncated"]';
|
||||
const currencyTitle = '[data-testid="currency-title"]';
|
||||
const currencyValue = '[data-testid="currency-value"]';
|
||||
const vegaInVesting = '[data-testid="vega-in-vesting-contract"]';
|
||||
const vegaInWallet = '[data-testid="vega-in-wallet"]';
|
||||
const progressBar = '[data-testid="progress-bar"]';
|
||||
const currencyLocked = '[data-testid="currency-locked"]';
|
||||
const currencyUnlocked = '[data-testid="currency-unlocked"]';
|
||||
const dialog = '[role="dialog"]';
|
||||
const dialogHeader = '[data-testid="dialog-title"]';
|
||||
const dialogCloseBtn = '[data-testid="dialog-close"]';
|
||||
|
||||
context('Ethereum Wallet - verify elements on widget', function () {
|
||||
before('visit token home page', function () {
|
||||
@ -8,22 +24,20 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
|
||||
describe('with wallets disconnected', function () {
|
||||
before('wait for widget to load', function () {
|
||||
cy.get(ethWallet.walletContainer, { timeout: 10000 }).should(
|
||||
'be.visible'
|
||||
);
|
||||
cy.get(walletContainer, { timeout: 10000 }).should('be.visible');
|
||||
});
|
||||
|
||||
it('should have ETHEREUM KEY header visible', function () {
|
||||
cy.get(ethWallet.walletContainer).within(() => {
|
||||
cy.get(ethWallet.walletHeader)
|
||||
cy.get(walletContainer).within(() => {
|
||||
cy.get(walletHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Ethereum key');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have Connect Ethereum button visible', function () {
|
||||
cy.get(ethWallet.walletContainer).within(() => {
|
||||
cy.get(ethWallet.connectToEthButton)
|
||||
cy.get(walletContainer).within(() => {
|
||||
cy.get(connectToEthButton)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Connect Ethereum wallet to associate $VEGA');
|
||||
});
|
||||
@ -32,12 +46,12 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
|
||||
describe('when Connect Ethereum clicked', function () {
|
||||
before('', function () {
|
||||
cy.get(ethWallet.connectToEthButton).click();
|
||||
cy.get(connectToEthButton).click();
|
||||
});
|
||||
|
||||
it('should have Connect Ethereum header visible', function () {
|
||||
cy.get(ethWallet.dialog).within(() => {
|
||||
cy.get(ethWallet.dialogHeader)
|
||||
cy.get(dialog).within(() => {
|
||||
cy.get(dialogHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Connect to your Ethereum wallet');
|
||||
});
|
||||
@ -49,7 +63,7 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
'MetaMask, Brave or other injected web wallet',
|
||||
'WalletConnect',
|
||||
];
|
||||
cy.get(ethWallet.connectorList).within(() => {
|
||||
cy.get(connectorList).within(() => {
|
||||
cy.get('button').each(($btn, i) => {
|
||||
cy.wrap($btn).should('be.visible').and('have.text', connectList[i]);
|
||||
});
|
||||
@ -57,9 +71,9 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
});
|
||||
|
||||
after('close popup', function () {
|
||||
cy.get(ethWallet.dialog)
|
||||
cy.get(dialog)
|
||||
.within(() => {
|
||||
cy.get(ethWallet.dialogCloseBtn).click();
|
||||
cy.get(dialogCloseBtn).click();
|
||||
})
|
||||
.should('not.exist');
|
||||
});
|
||||
@ -71,57 +85,53 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
});
|
||||
|
||||
it('should have ETHEREUM KEY header visible', function () {
|
||||
cy.get(ethWallet.walletContainer).within(() => {
|
||||
cy.get(ethWallet.walletHeader)
|
||||
cy.get(walletContainer).within(() => {
|
||||
cy.get(walletHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Ethereum key');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have account number visible', function () {
|
||||
cy.get(ethWallet.walletContainer).within(() => {
|
||||
cy.get(ethWallet.accountNo)
|
||||
cy.get(walletContainer).within(() => {
|
||||
cy.get(accountNo)
|
||||
.should('be.visible')
|
||||
.and('have.text', Cypress.env('ethWalletPublicKeyTruncated'));
|
||||
});
|
||||
});
|
||||
|
||||
it('should have Associate button visible', function () {
|
||||
cy.get(ethWallet.walletContainer).within(() => {
|
||||
cy.get(ethWallet.associate)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Associate');
|
||||
cy.get(walletContainer).within(() => {
|
||||
cy.get(associate).should('be.visible').and('have.text', 'Associate');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have Disassociate button visible', function () {
|
||||
cy.get(ethWallet.walletContainer).within(() => {
|
||||
cy.get(ethWallet.disassociate)
|
||||
cy.get(walletContainer).within(() => {
|
||||
cy.get(disassociate)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Disassociate');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have Disconnect button visible', function () {
|
||||
cy.get(ethWallet.walletContainer).within(() => {
|
||||
cy.get(ethWallet.disconnect)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Disconnect');
|
||||
cy.get(walletContainer).within(() => {
|
||||
cy.get(disconnect).should('be.visible').and('have.text', 'Disconnect');
|
||||
});
|
||||
});
|
||||
|
||||
describe('VEGA IN VESTING CONTRACT', function () {
|
||||
it('should have currency title visible', function () {
|
||||
cy.get(ethWallet.vegaInVesting).within(() => {
|
||||
cy.get(ethWallet.currencyTitle)
|
||||
cy.get(vegaInVesting).within(() => {
|
||||
cy.get(currencyTitle)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'VEGAIn vesting contract');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have currency value visible', function () {
|
||||
cy.get(ethWallet.vegaInVesting).within(() => {
|
||||
cy.get(ethWallet.currencyValue)
|
||||
cy.get(vegaInVesting).within(() => {
|
||||
cy.get(currencyValue)
|
||||
.should('be.visible')
|
||||
.invoke('text')
|
||||
.should('match', /\d{0,3}(,\d{3})*\.\d{18}$/);
|
||||
@ -129,14 +139,14 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
});
|
||||
|
||||
it('should have progress bar visible', function () {
|
||||
cy.get(ethWallet.vegaInVesting).within(() => {
|
||||
cy.get(ethWallet.progressBar).should('be.visible');
|
||||
cy.get(vegaInVesting).within(() => {
|
||||
cy.get(progressBar).should('be.visible');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have locked currency visible', function () {
|
||||
cy.get(ethWallet.vegaInVesting).within(() => {
|
||||
cy.get(ethWallet.currencyLocked)
|
||||
cy.get(vegaInVesting).within(() => {
|
||||
cy.get(currencyLocked)
|
||||
.should('be.visible')
|
||||
.invoke('text')
|
||||
.should('match', /\d{0,3}(,\d{3})*\.\d{2}$/);
|
||||
@ -144,8 +154,8 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
});
|
||||
|
||||
it('should have unlocked currency visible', function () {
|
||||
cy.get(ethWallet.vegaInVesting).within(() => {
|
||||
cy.get(ethWallet.currencyUnlocked)
|
||||
cy.get(vegaInVesting).within(() => {
|
||||
cy.get(currencyUnlocked)
|
||||
.should('be.visible')
|
||||
.invoke('text')
|
||||
.should('match', /\d{0,3}(,\d{3})*\.\d{2}$/);
|
||||
@ -153,19 +163,19 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
});
|
||||
|
||||
it('should match total & locked/unlocked currency value', function () {
|
||||
cy.get(ethWallet.vegaInVesting)
|
||||
cy.get(vegaInVesting)
|
||||
.within(() => {
|
||||
cy.get(ethWallet.currencyValue)
|
||||
cy.get(currencyValue)
|
||||
.invoke('text')
|
||||
.convertTokenValueToNumber()
|
||||
.convert_token_value_to_number()
|
||||
.as('value');
|
||||
cy.get(ethWallet.currencyLocked)
|
||||
cy.get(currencyLocked)
|
||||
.invoke('text')
|
||||
.convertTokenValueToNumber()
|
||||
.convert_token_value_to_number()
|
||||
.as('locked');
|
||||
cy.get(ethWallet.currencyUnlocked)
|
||||
cy.get(currencyUnlocked)
|
||||
.invoke('text')
|
||||
.convertTokenValueToNumber()
|
||||
.convert_token_value_to_number()
|
||||
.as('unlocked');
|
||||
})
|
||||
.then(function () {
|
||||
@ -176,16 +186,16 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
|
||||
describe('VEGA IN WALLET', function () {
|
||||
it('should have currency title visible', function () {
|
||||
cy.get(ethWallet.vegaInWallet).within(() => {
|
||||
cy.get(ethWallet.currencyTitle)
|
||||
cy.get(vegaInWallet).within(() => {
|
||||
cy.get(currencyTitle)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'VEGAIn Wallet');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have currency value visible', function () {
|
||||
cy.get(ethWallet.vegaInWallet).within(() => {
|
||||
cy.get(ethWallet.currencyValue)
|
||||
cy.get(vegaInWallet).within(() => {
|
||||
cy.get(currencyValue)
|
||||
.should('be.visible')
|
||||
.invoke('text')
|
||||
.should('match', /\d{0,3}(,\d{3})*\.\d{18}$/);
|
||||
@ -193,14 +203,14 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
});
|
||||
|
||||
it('should have progress bar visible', function () {
|
||||
cy.get(ethWallet.vegaInWallet).within(() => {
|
||||
cy.get(ethWallet.progressBar).should('be.visible');
|
||||
cy.get(vegaInWallet).within(() => {
|
||||
cy.get(progressBar).should('be.visible');
|
||||
});
|
||||
});
|
||||
|
||||
it('should have locked currency visible', function () {
|
||||
cy.get(ethWallet.vegaInWallet).within(() => {
|
||||
cy.get(ethWallet.currencyLocked)
|
||||
cy.get(vegaInWallet).within(() => {
|
||||
cy.get(currencyLocked)
|
||||
.should('be.visible')
|
||||
.invoke('text')
|
||||
.should('match', /\d{0,3}(,\d{3})*\.\d{2}$/);
|
||||
@ -208,8 +218,8 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
});
|
||||
|
||||
it('should have unlocked currency visible', function () {
|
||||
cy.get(ethWallet.vegaInWallet).within(() => {
|
||||
cy.get(ethWallet.currencyUnlocked)
|
||||
cy.get(vegaInWallet).within(() => {
|
||||
cy.get(currencyUnlocked)
|
||||
.should('be.visible')
|
||||
.invoke('text')
|
||||
.should('match', /\d{0,3}(,\d{3})*\.\d{2}$/);
|
||||
@ -217,19 +227,19 @@ context('Ethereum Wallet - verify elements on widget', function () {
|
||||
});
|
||||
|
||||
it('should match total & locked/unlocked currency value', function () {
|
||||
cy.get(ethWallet.vegaInWallet)
|
||||
cy.get(vegaInWallet)
|
||||
.within(() => {
|
||||
cy.get(ethWallet.currencyValue)
|
||||
cy.get(currencyValue)
|
||||
.invoke('text')
|
||||
.convertTokenValueToNumber()
|
||||
.convert_token_value_to_number()
|
||||
.as('value');
|
||||
cy.get(ethWallet.currencyLocked)
|
||||
cy.get(currencyLocked)
|
||||
.invoke('text')
|
||||
.convertTokenValueToNumber()
|
||||
.convert_token_value_to_number()
|
||||
.as('locked');
|
||||
cy.get(ethWallet.currencyUnlocked)
|
||||
cy.get(currencyUnlocked)
|
||||
.invoke('text')
|
||||
.convertTokenValueToNumber()
|
||||
.convert_token_value_to_number()
|
||||
.as('unlocked');
|
||||
})
|
||||
.then(function () {
|
||||
|
@ -1,36 +1,28 @@
|
||||
import navigation from '../locators/navigation.locators';
|
||||
import withdraw from '../locators/withdraw.locators';
|
||||
const connectToVegaBtn = '[data-testid="connect-to-vega-wallet-btn"]';
|
||||
const warning = '[data-testid="callout"]';
|
||||
|
||||
context('Withdraw Page - verify elements on page', function () {
|
||||
before('navigate to withdraw page', function () {
|
||||
cy.visit('/')
|
||||
.get(navigation.section)
|
||||
.within(() => {
|
||||
cy.get(navigation.withdraw).click();
|
||||
});
|
||||
cy.visit('/').navigate_to('withdraw');
|
||||
});
|
||||
|
||||
describe('with wallets disconnected', function () {
|
||||
it('should have withdraw tab highlighted', function () {
|
||||
cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation.withdraw).should('have.attr', 'aria-current');
|
||||
});
|
||||
cy.verify_tab_highlighted('withdraw');
|
||||
});
|
||||
|
||||
it('should have WITHDRAW header visible', function () {
|
||||
cy.get(withdraw.pageHeader)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Withdraw');
|
||||
cy.verify_page_header('Withdraw');
|
||||
});
|
||||
|
||||
it('should have connect Vega wallet button', function () {
|
||||
cy.get(withdraw.connectToVegaBtn)
|
||||
cy.get(connectToVegaBtn)
|
||||
.should('be.visible')
|
||||
.and('have.text', 'Connect Vega wallet');
|
||||
});
|
||||
|
||||
it('should have withdraw information box', function () {
|
||||
cy.get(withdraw.warning).should('be.visible');
|
||||
cy.get(warning).should('be.visible');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -1,10 +0,0 @@
|
||||
export default {
|
||||
pageHeader: 'header h1',
|
||||
sectionHeader: 'h2',
|
||||
link: '[data-testid="link"]',
|
||||
warning: '[data-testid="callout"]',
|
||||
connectToVegaBtn: '[data-testid="connect-to-vega-wallet-btn"]',
|
||||
dialog: '[role="dialog"]',
|
||||
dialogHeader: '[data-testid="dialog-title"]',
|
||||
dialogCloseBtn: '[data-testid="dialog-close"]',
|
||||
};
|
@ -1,6 +0,0 @@
|
||||
import common from './common.locators';
|
||||
|
||||
export default {
|
||||
...common,
|
||||
noProposals: '[data-testid="no-proposals"]',
|
||||
};
|
@ -1,15 +0,0 @@
|
||||
export default {
|
||||
tokenDetailsTable: '.token-details',
|
||||
address: '[data-testid="token-address"]',
|
||||
contract: '[data-testid="token-contract"]',
|
||||
totalSupply: '[data-testid="total-supply"]',
|
||||
circulatingSupply: '[data-testid="circulating-supply"]',
|
||||
staked: '[data-testid="staked"]',
|
||||
|
||||
tranchesLink: '[data-testid="tranches-link"]',
|
||||
redeemBtn: '[data-testid="check-vesting-page-btn"]',
|
||||
getVegaWalletLink: '[data-testid="get-vega-wallet-link"]',
|
||||
associateVegaLink: '[data-testid="associate-vega-tokens-link-on-homepage"]',
|
||||
stakingBtn: '[data-testid="staking-button-on-homepage"]',
|
||||
governanceBtn: '[data-testid="governance-button-on-homepage"]',
|
||||
};
|
@ -1,13 +0,0 @@
|
||||
import common from './common.locators';
|
||||
|
||||
export default {
|
||||
...common,
|
||||
section: 'nav',
|
||||
home: '[href="/"]',
|
||||
vesting: '[href="/vesting"]',
|
||||
staking: '[href="/staking"]',
|
||||
rewards: '[href="/rewards"]',
|
||||
withdraw: '[href="/withdraw"]',
|
||||
governance: '[href="/governance"]',
|
||||
spinner: 'splash-loader',
|
||||
};
|
@ -1,5 +0,0 @@
|
||||
import common from './common.locators';
|
||||
|
||||
export default {
|
||||
...common,
|
||||
};
|
@ -1,26 +0,0 @@
|
||||
import common from './common.locators';
|
||||
|
||||
export default {
|
||||
...common,
|
||||
guideLink: '[data-testid="staking-guide-link"]',
|
||||
step1: '[data-testid="staking-step-1"]',
|
||||
step2: '[data-testid="staking-step-2"]',
|
||||
step3: '[data-testid="staking-step-3"]',
|
||||
connectToEthBtn: '[data-testid="connect-to-eth-btn"]',
|
||||
connectToVegaBtn: '[data-testid="connect-to-vega-wallet-btn"]',
|
||||
validatorNames: '[data-testid="node-list-item-name"]',
|
||||
epochEndingText: '[data-testid="epoch-countdown"]',
|
||||
addStakeRadioButton: '[data-testid="add-stake-radio"]',
|
||||
removeStakeRadioButton: '[data-testid="remove-stake-radio"]',
|
||||
tokenAmountInput: '[data-testid="token-amount-input"]',
|
||||
tokenInputApprove: '[data-testid="token-input-approve-button"]',
|
||||
tokenInputSubmit: '[data-testid="token-input-submit-button"]',
|
||||
stakedAmounts: '[data-testid="staked-validator-item"]',
|
||||
stakeNextEpochValue: '[data-testid="stake-next-epoch"]',
|
||||
stakeThisEpochValue: '[data-testid="stake-this-epoch"]',
|
||||
stakeMaximumTokens: '[data-testid="token-amount-use-maximum"]',
|
||||
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"]',
|
||||
};
|
@ -1,7 +0,0 @@
|
||||
import common from './common.locators';
|
||||
|
||||
export default {
|
||||
...common,
|
||||
connectPrompt: '[data-testid="eth-connect-prompt"]',
|
||||
connectButton: '[data-testid="connect-to-eth-btn"]',
|
||||
};
|
@ -1,21 +0,0 @@
|
||||
import common from './common.locators';
|
||||
|
||||
export default {
|
||||
...common,
|
||||
walletContainer: '[data-testid="ethereum-wallet"]',
|
||||
walletHeader: '[data-testid="wallet-header"] h1',
|
||||
connectToEthButton: '[data-testid="connect-to-eth-wallet-button"]',
|
||||
connectorList: '[data-testid="web3-connector-list"]',
|
||||
connectorCapsule: '[data-testid="web3-connector-Unknown"]',
|
||||
associate: '[href="/staking/associate"]',
|
||||
disassociate: '[href="/staking/disassociate"]',
|
||||
disconnect: '[data-testid="disconnect-from-eth-wallet-button"]',
|
||||
accountNo: '[data-testid="ethereum-account-truncated"]',
|
||||
currencyTitle: '[data-testid="currency-title"]',
|
||||
currencyValue: '[data-testid="currency-value"]',
|
||||
vegaInVesting: '[data-testid="vega-in-vesting-contract"]',
|
||||
vegaInWallet: '[data-testid="vega-in-wallet"]',
|
||||
progressBar: '[data-testid="progress-bar"]',
|
||||
currencyLocked: '[data-testid="currency-locked"]',
|
||||
currencyUnlocked: '[data-testid="currency-unlocked"]',
|
||||
};
|
@ -1,9 +0,0 @@
|
||||
import common from './common.locators';
|
||||
|
||||
export default {
|
||||
...common,
|
||||
walletContainer: '[data-testid="vega-wallet"]',
|
||||
connectRestForm: '[data-testid="rest-connector-form"]',
|
||||
name: '#wallet',
|
||||
passphrase: '#passphrase',
|
||||
};
|
@ -1,5 +0,0 @@
|
||||
import common from './common.locators';
|
||||
|
||||
export default {
|
||||
...common,
|
||||
};
|
@ -1,7 +1,33 @@
|
||||
Cypress.Commands.add(
|
||||
'convertTokenValueToNumber',
|
||||
'convert_token_value_to_number',
|
||||
{ prevSubject: true },
|
||||
(subject) => {
|
||||
return parseFloat(subject.replace(/,/g, ''));
|
||||
}
|
||||
);
|
||||
|
||||
const navigation = {
|
||||
section: 'nav',
|
||||
home: '[href="/"]',
|
||||
vesting: '[href="/vesting"]',
|
||||
staking: '[href="/staking"]',
|
||||
rewards: '[href="/rewards"]',
|
||||
withdraw: '[href="/withdraw"]',
|
||||
governance: '[href="/governance"]',
|
||||
};
|
||||
|
||||
Cypress.Commands.add('navigate_to', (page) => {
|
||||
return cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation[page]).click();
|
||||
});
|
||||
});
|
||||
|
||||
Cypress.Commands.add('verify_tab_highlighted', (page) => {
|
||||
return cy.get(navigation.section).within(() => {
|
||||
cy.get(navigation[page]).should('have.attr', 'aria-current');
|
||||
});
|
||||
});
|
||||
|
||||
Cypress.Commands.add('verify_page_header', (text) => {
|
||||
return cy.get('header h1').should('be.visible').and('have.text', text);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user