test(token): e2e tests for validator tooltips (#2883)
This commit is contained in:
parent
87f116daee
commit
8917ceb08a
@ -866,6 +866,10 @@ context(
|
|||||||
|
|
||||||
cy.get(stakeTokenSubmitButton).should('contain', 'Add 1 $VEGA tokens');
|
cy.get(stakeTokenSubmitButton).should('contain', 'Add 1 $VEGA tokens');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
after('teardown wallet', function () {
|
||||||
|
cy.vega_wallet_teardown();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -10,6 +10,16 @@ const pendingStake = '[data-testid="pending-stake"]';
|
|||||||
const stakedByOperator = '[data-testid="staked-by-operator"]';
|
const stakedByOperator = '[data-testid="staked-by-operator"]';
|
||||||
const stakedByDelegates = '[data-testid="staked-by-delegates"]';
|
const stakedByDelegates = '[data-testid="staked-by-delegates"]';
|
||||||
const stakeShare = '[data-testid="stake-percentage"]';
|
const stakeShare = '[data-testid="stake-percentage"]';
|
||||||
|
const stakedByOperatorToolTip = "[data-testid='staked-operator-tooltip']";
|
||||||
|
const stakedByDelegatesToolTip = "[data-testid='staked-delegates-tooltip']";
|
||||||
|
const totalStakedToolTip = "[data-testid='total-staked-tooltip']";
|
||||||
|
const unnormalisedVotingPowerToolTip =
|
||||||
|
"[data-testid='unnormalised-voting-power-tooltip']";
|
||||||
|
const normalisedVotingPowerToolTip =
|
||||||
|
"[data-testid='normalised-voting-power-tooltip']";
|
||||||
|
const performancePenaltyToolTip = "[data-testid='performance-penalty-tooltip']";
|
||||||
|
const overstakedPenaltyToolTip = "[data-testid='overstaked-penalty-tooltip']";
|
||||||
|
const totalPenaltyToolTip = "[data-testid='total-penalty-tooltip']";
|
||||||
const epochCountDown = '[data-testid="epoch-countdown"]';
|
const epochCountDown = '[data-testid="epoch-countdown"]';
|
||||||
const stakeNumberRegex = /^\d*\.?\d*$/;
|
const stakeNumberRegex = /^\d*\.?\d*$/;
|
||||||
|
|
||||||
@ -56,37 +66,70 @@ context('Staking Page - verify elements on page', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Should be able to see validator stake', function () {
|
it('Should be able to see validator stake', function () {
|
||||||
cy.get('[col-id="stake"] > div > span')
|
cy.get('[col-id="stake"] > div > span > span')
|
||||||
.should('have.length.at.least', 1)
|
.should('have.length.at.least', 1)
|
||||||
.each(($stake) => {
|
.each(($stake) => {
|
||||||
cy.wrap($stake).should('not.be.empty');
|
cy.wrap($stake).should('not.be.empty');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('Should be able to see validator stake tooltip', function () {
|
||||||
|
cy.get('[col-id="stake"] > div > span > span').first().realHover();
|
||||||
|
|
||||||
|
cy.get(stakedByOperatorToolTip)
|
||||||
|
.invoke('text')
|
||||||
|
.should('contain', 'Staked by operator: 0.00');
|
||||||
|
cy.get(stakedByDelegatesToolTip)
|
||||||
|
.invoke('text')
|
||||||
|
.should('contain', 'Staked by delegates: 0.00');
|
||||||
|
cy.get(totalStakedToolTip)
|
||||||
|
.invoke('text')
|
||||||
|
.should('contain', 'Total stake: 0.00');
|
||||||
|
});
|
||||||
|
|
||||||
it('Should be able to see validator normalised voting power', function () {
|
it('Should be able to see validator normalised voting power', function () {
|
||||||
cy.get('[col-id="normalisedVotingPower"] > div > span')
|
cy.get('[col-id="normalisedVotingPower"] > div > span > span')
|
||||||
.should('have.length.at.least', 1)
|
.should('have.length.at.least', 1)
|
||||||
.each(($vPower) => {
|
.each(($vPower) => {
|
||||||
cy.wrap($vPower).should('not.be.empty');
|
cy.wrap($vPower).should('not.be.empty');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should be able to see validator normalised voting power', function () {
|
it('Should be able to see validator voting power tooltip', function () {
|
||||||
cy.get('[col-id="normalisedVotingPower"] > div > span')
|
cy.get('[col-id="normalisedVotingPower"] > div > span > span')
|
||||||
.should('have.length.at.least', 1)
|
.first()
|
||||||
.each(($vPower) => {
|
.realHover();
|
||||||
cy.wrap($vPower).should('not.be.empty');
|
|
||||||
});
|
cy.get(unnormalisedVotingPowerToolTip)
|
||||||
|
.invoke('text')
|
||||||
|
.should('contain', 'Unnormalised voting power: 0.00%');
|
||||||
|
cy.get(normalisedVotingPowerToolTip)
|
||||||
|
.invoke('text')
|
||||||
|
.should('contain', 'Normalised voting power: 0.10%');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should be able to see validator total penalties', function () {
|
it('Should be able to see validator total penalties', function () {
|
||||||
cy.get('[col-id="totalPenalties"] > div > span')
|
cy.get('[col-id="totalPenalties"] > div > span > span')
|
||||||
.should('have.length.at.least', 1)
|
.should('have.length.at.least', 1)
|
||||||
.each(($penalties) => {
|
.each(($penalties) => {
|
||||||
cy.wrap($penalties).should('contain.text', '0%');
|
cy.wrap($penalties).should('contain.text', '0%');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('Should be able to see validator penalties tooltip', function () {
|
||||||
|
cy.get('[col-id="totalPenalties"] > div > span > span').realHover();
|
||||||
|
|
||||||
|
cy.get(performancePenaltyToolTip)
|
||||||
|
.invoke('text')
|
||||||
|
.should('contain', 'Performance penalty: 100.00%');
|
||||||
|
cy.get(overstakedPenaltyToolTip)
|
||||||
|
.invoke('text')
|
||||||
|
.should('contain', 'Overstaked penalty:'); // value not asserted due to #2886
|
||||||
|
cy.get(totalPenaltyToolTip)
|
||||||
|
.invoke('text')
|
||||||
|
.should('contain', 'Total penalties: 0.00%');
|
||||||
|
});
|
||||||
|
|
||||||
it('Should be able to see validator pending stake', function () {
|
it('Should be able to see validator pending stake', function () {
|
||||||
cy.get('[col-id="pendingStake"] > div > span')
|
cy.get('[col-id="pendingStake"] > div > span')
|
||||||
.should('have.length.at.least', 1)
|
.should('have.length.at.least', 1)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import '@vegaprotocol/cypress';
|
import '@vegaprotocol/cypress';
|
||||||
|
import 'cypress-real-events/support';
|
||||||
|
|
||||||
import './common.functions.js';
|
import './common.functions.js';
|
||||||
import './staking.functions.js';
|
import './staking.functions.js';
|
||||||
|
@ -95,8 +95,15 @@ Cypress.Commands.add('faucet_asset', function (assetEthAddress) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Cypress.Commands.add('vega_wallet_teardown', function () {
|
Cypress.Commands.add('vega_wallet_teardown', function () {
|
||||||
|
cy.get('[data-testid="associated-amount"]')
|
||||||
|
.should('be.visible')
|
||||||
|
.invoke('text')
|
||||||
|
.as('associatedAmount');
|
||||||
cy.get('body').then(($body) => {
|
cy.get('body').then(($body) => {
|
||||||
if ($body.find('[data-testid="eth-wallet-associated-balances"]').length) {
|
if (
|
||||||
|
$body.find('[data-testid="eth-wallet-associated-balances"]').length ||
|
||||||
|
this.associatedAmount != '0.00'
|
||||||
|
) {
|
||||||
cy.vega_wallet_teardown_vesting(this.vestingContract);
|
cy.vega_wallet_teardown_vesting(this.vestingContract);
|
||||||
cy.vega_wallet_teardown_staking(this.stakingBridgeContract);
|
cy.vega_wallet_teardown_staking(this.stakingBridgeContract);
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"allowSyntheticDefaultImports": true,
|
"allowSyntheticDefaultImports": true,
|
||||||
"outDir": "../../dist/out-tsc",
|
"outDir": "../../dist/out-tsc",
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"types": ["cypress", "node", "@cypress/grep"]
|
"types": ["cypress", "node", "cypress-real-events", "@cypress/grep"]
|
||||||
},
|
},
|
||||||
"include": ["src/**/*.ts", "src/**/*.js"]
|
"include": ["src/**/*.ts", "src/**/*.js"]
|
||||||
}
|
}
|
||||||
|
@ -126,10 +126,10 @@ export const VotingPowerRenderer = ({ data }: VotingPowerRendererProps) => {
|
|||||||
<Tooltip
|
<Tooltip
|
||||||
description={
|
description={
|
||||||
<>
|
<>
|
||||||
<div>
|
<div data-testid="unnormalised-voting-power-tooltip">
|
||||||
{t('unnormalisedVotingPower')}: {data.unnormalisedVotingPower}
|
{t('unnormalisedVotingPower')}: {data.unnormalisedVotingPower}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid="normalised-voting-power-tooltip">
|
||||||
{t('normalisedVotingPower')}: {data.normalisedVotingPower}
|
{t('normalisedVotingPower')}: {data.normalisedVotingPower}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
@ -155,13 +155,13 @@ export const TotalStakeRenderer = ({ data }: TotalStakeRendererProps) => {
|
|||||||
<Tooltip
|
<Tooltip
|
||||||
description={
|
description={
|
||||||
<>
|
<>
|
||||||
<div>
|
<div data-testid="staked-operator-tooltip">
|
||||||
{t('stakedByOperator')}: {data.stakedByOperator.toString()}
|
{t('stakedByOperator')}: {data.stakedByOperator.toString()}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid="staked-delegates-tooltip">
|
||||||
{t('stakedByDelegates')}: {data.stakedByDelegates.toString()}
|
{t('stakedByDelegates')}: {data.stakedByDelegates.toString()}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid="total-staked-tooltip">
|
||||||
{t('totalStake')}: <span className="font-bold">{data.stake}</span>
|
{t('totalStake')}: <span className="font-bold">{data.stake}</span>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
@ -191,13 +191,13 @@ export const TotalPenaltiesRenderer = ({
|
|||||||
<Tooltip
|
<Tooltip
|
||||||
description={
|
description={
|
||||||
<>
|
<>
|
||||||
<div>
|
<div data-testid="performance-penalty-tooltip">
|
||||||
{t('performancePenalty')}: {data.performancePenalty}
|
{t('performancePenalty')}: {data.performancePenalty}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid="overstaked-penalty-tooltip">
|
||||||
{t('overstakedPenalty')}: {data.overstakingPenalty}
|
{t('overstakedPenalty')}: {data.overstakingPenalty}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid="total-penalty-tooltip">
|
||||||
{t('totalPenalties')}:{' '}
|
{t('totalPenalties')}:{' '}
|
||||||
<span className="font-bold">{data.totalPenalties}</span>
|
<span className="font-bold">{data.totalPenalties}</span>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user