test(2229): unhappy path test updates (#2417)
* test: update tests and add workaround * chore: remove smoke test due to bug * chore: remove only * chore: add wallet teardown * chore: increase wait
This commit is contained in:
parent
bbfef16889
commit
7a56e1695d
@ -29,7 +29,7 @@ const voteButtons = '[data-testid="vote-buttons"]';
|
|||||||
const votingDate = '[data-testid="voting-date"]';
|
const votingDate = '[data-testid="voting-date"]';
|
||||||
const voteTwoMinExtraNote = '[data-testid="voting-2-mins-extra"]';
|
const voteTwoMinExtraNote = '[data-testid="voting-2-mins-extra"]';
|
||||||
const voteStatus = '[data-testid="vote-status"]';
|
const voteStatus = '[data-testid="vote-status"]';
|
||||||
const rejectProposalsLink = '[href="/governance/rejected"]';
|
const rejectProposalsLink = '[href="/proposals/rejected"]';
|
||||||
const feedbackError = '[data-testid="Error"]';
|
const feedbackError = '[data-testid="Error"]';
|
||||||
const noOpenProposals = '[data-testid="no-open-proposals"]';
|
const noOpenProposals = '[data-testid="no-open-proposals"]';
|
||||||
const noClosedProposals = '[data-testid="no-closed-proposals"]';
|
const noClosedProposals = '[data-testid="no-closed-proposals"]';
|
||||||
@ -123,6 +123,8 @@ context(
|
|||||||
parseInt(this.minCloseDays + 1),
|
parseInt(this.minCloseDays + 1),
|
||||||
'Asserting that network parameter maxCloseDays is at least 1 day higher than minCloseDays'
|
'Asserting that network parameter maxCloseDays is at least 1 day higher than minCloseDays'
|
||||||
);
|
);
|
||||||
|
// workaround for first eth tx hanging
|
||||||
|
associateTokenStartOfTests();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -132,7 +134,6 @@ context(
|
|||||||
cy.connectVegaWallet();
|
cy.connectVegaWallet();
|
||||||
cy.ethereum_wallet_connect();
|
cy.ethereum_wallet_connect();
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should be able to see that no proposals exist', function () {
|
it('Should be able to see that no proposals exist', function () {
|
||||||
@ -207,7 +208,6 @@ context(
|
|||||||
let arrayOfProposals = [];
|
let arrayOfProposals = [];
|
||||||
|
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.get(proposalDetailsTitle)
|
cy.get(proposalDetailsTitle)
|
||||||
.each((proposalTitleElement) => {
|
.each((proposalTitleElement) => {
|
||||||
arrayOfProposals.push(proposalTitleElement.text());
|
arrayOfProposals.push(proposalTitleElement.text());
|
||||||
@ -225,14 +225,12 @@ context(
|
|||||||
cy.navigate_to_page_if_not_already_loaded('proposals');
|
cy.navigate_to_page_if_not_already_loaded('proposals');
|
||||||
cy.get(vegaWalletUnstakedBalance, txTimeout).should('contain', '2');
|
cy.get(vegaWalletUnstakedBalance, txTimeout).should('contain', '2');
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.click_on_validator_from_list(0);
|
cy.click_on_validator_from_list(0);
|
||||||
cy.staking_validator_page_add_stake('2');
|
cy.staking_validator_page_add_stake('2');
|
||||||
|
|
||||||
cy.get(vegaWalletStakedBalances, txTimeout).should('contain', '2');
|
cy.get(vegaWalletStakedBalances, txTimeout).should('contain', '2');
|
||||||
|
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.go_to_make_new_proposal(governanceProposalType.FREEFORM);
|
cy.go_to_make_new_proposal(governanceProposalType.FREEFORM);
|
||||||
cy.enter_unique_freeform_proposal_body('50', generateProposalTitle());
|
cy.enter_unique_freeform_proposal_body('50', generateProposalTitle());
|
||||||
cy.get(newProposalSubmitButton).should('be.visible').click();
|
cy.get(newProposalSubmitButton).should('be.visible').click();
|
||||||
@ -327,7 +325,6 @@ context(
|
|||||||
.contains('👍')
|
.contains('👍')
|
||||||
.should('be.visible');
|
.should('be.visible');
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.get('@submittedProposal').within(() =>
|
cy.get('@submittedProposal').within(() =>
|
||||||
cy.get(voteStatus).should('have.text', 'Participation met')
|
cy.get(voteStatus).should('have.text', 'Participation met')
|
||||||
);
|
);
|
||||||
@ -378,7 +375,6 @@ context(
|
|||||||
cy.wait_for_proposal_submitted();
|
cy.wait_for_proposal_submitted();
|
||||||
cy.wait_for_proposal_sync();
|
cy.wait_for_proposal_sync();
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.get_submitted_proposal_from_proposal_list(proposalTitle).within(
|
cy.get_submitted_proposal_from_proposal_list(proposalTitle).within(
|
||||||
() => cy.get(viewProposalButton).click()
|
() => cy.get(viewProposalButton).click()
|
||||||
);
|
);
|
||||||
@ -485,7 +481,6 @@ context(
|
|||||||
cy.get_proposal_information_from_table('Tokens for proposal')
|
cy.get_proposal_information_from_table('Tokens for proposal')
|
||||||
.should('have.text', parseFloat(this.minProposerBalance).toFixed(2))
|
.should('have.text', parseFloat(this.minProposerBalance).toFixed(2))
|
||||||
.and('be.visible');
|
.and('be.visible');
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.get(changeVoteButton).should('be.visible').click();
|
cy.get(changeVoteButton).should('be.visible').click();
|
||||||
cy.vote_for_proposal('against');
|
cy.vote_for_proposal('against');
|
||||||
cy.get(proposalVoteProgressAgainstPercentage)
|
cy.get(proposalVoteProgressAgainstPercentage)
|
||||||
@ -611,8 +606,7 @@ context(
|
|||||||
cy.get(dialogCloseButton).click();
|
cy.get(dialogCloseButton).click();
|
||||||
cy.wait_for_proposal_sync();
|
cy.wait_for_proposal_sync();
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
cy.get(rejectProposalsLink).click();
|
||||||
cy.get(rejectProposalsLink).click().wait_for_spinner();
|
|
||||||
cy.get('@rawProposal').then((rawProposal) => {
|
cy.get('@rawProposal').then((rawProposal) => {
|
||||||
cy.get_submitted_proposal_from_proposal_list(
|
cy.get_submitted_proposal_from_proposal_list(
|
||||||
rawProposal.rationale.title
|
rawProposal.rationale.title
|
||||||
@ -650,7 +644,7 @@ context(
|
|||||||
cy.contains('Transaction failed', proposalTimeout).should('be.visible');
|
cy.contains('Transaction failed', proposalTimeout).should('be.visible');
|
||||||
cy.get(feedbackError).should(
|
cy.get(feedbackError).should(
|
||||||
'have.text',
|
'have.text',
|
||||||
'party has insufficient associated governance tokens in their staking account to submit proposal request'
|
'Network error: the network blocked the transaction through the spam protection'
|
||||||
);
|
);
|
||||||
cy.get(dialogCloseButton).click();
|
cy.get(dialogCloseButton).click();
|
||||||
});
|
});
|
||||||
@ -669,7 +663,7 @@ context(
|
|||||||
cy.contains('Transaction failed', proposalTimeout).should('be.visible');
|
cy.contains('Transaction failed', proposalTimeout).should('be.visible');
|
||||||
cy.get(feedbackError).should(
|
cy.get(feedbackError).should(
|
||||||
'have.text',
|
'have.text',
|
||||||
'party has insufficient associated governance tokens in their staking account to submit proposal request'
|
'Network error: the network blocked the transaction through the spam protection'
|
||||||
);
|
);
|
||||||
cy.get(dialogCloseButton).click();
|
cy.get(dialogCloseButton).click();
|
||||||
});
|
});
|
||||||
@ -698,7 +692,7 @@ context(
|
|||||||
cy.contains('Transaction failed', proposalTimeout).should('be.visible');
|
cy.contains('Transaction failed', proposalTimeout).should('be.visible');
|
||||||
cy.get(feedbackError).should(
|
cy.get(feedbackError).should(
|
||||||
'have.text',
|
'have.text',
|
||||||
'*: unknown field "unexpected" in vega.commands.v1.ProposalSubmission'
|
'Invalid params: the transaction is malformed'
|
||||||
);
|
);
|
||||||
cy.get(dialogCloseButton).click();
|
cy.get(dialogCloseButton).click();
|
||||||
});
|
});
|
||||||
@ -728,48 +722,50 @@ context(
|
|||||||
cy.contains('Transaction failed', proposalTimeout).should('be.visible');
|
cy.contains('Transaction failed', proposalTimeout).should('be.visible');
|
||||||
cy.get(feedbackError).should(
|
cy.get(feedbackError).should(
|
||||||
'have.text',
|
'have.text',
|
||||||
'*: unknown field "unexpectedField" in vega.ProposalTerms'
|
'Invalid params: the transaction is malformed'
|
||||||
);
|
);
|
||||||
cy.get(dialogCloseButton).click();
|
cy.get(dialogCloseButton).click();
|
||||||
});
|
});
|
||||||
|
|
||||||
// 1005-PROP-009
|
// 1005-PROP-009
|
||||||
it('Unable to vote on a freeform proposal - when some but not enough vega associated', function () {
|
it(
|
||||||
const proposalTitle = generateProposalTitle();
|
'Unable to vote on a freeform proposal - when some but not enough vega associated',
|
||||||
|
{ tags: '@smoke' },
|
||||||
|
function () {
|
||||||
|
const proposalTitle = generateProposalTitle();
|
||||||
|
|
||||||
cy.ensure_specified_unstaked_tokens_are_associated(
|
cy.ensure_specified_unstaked_tokens_are_associated(
|
||||||
this.minProposerBalance
|
this.minProposerBalance
|
||||||
);
|
|
||||||
cy.go_to_make_new_proposal(governanceProposalType.FREEFORM);
|
|
||||||
cy.enter_unique_freeform_proposal_body('50', proposalTitle);
|
|
||||||
cy.get(newProposalSubmitButton).should('be.visible').click();
|
|
||||||
cy.wait_for_proposal_submitted();
|
|
||||||
cy.wait_for_proposal_sync();
|
|
||||||
cy.staking_page_disassociate_tokens('0.0001');
|
|
||||||
cy.get(vegaWallet).within(() => {
|
|
||||||
cy.get(vegaWalletAssociatedBalance, txTimeout).should(
|
|
||||||
'contain',
|
|
||||||
'0.9999'
|
|
||||||
);
|
);
|
||||||
});
|
cy.go_to_make_new_proposal(governanceProposalType.FREEFORM);
|
||||||
cy.navigate_to('governance');
|
cy.enter_unique_freeform_proposal_body('50', proposalTitle);
|
||||||
cy.wait_for_spinner();
|
cy.get(newProposalSubmitButton).should('be.visible').click();
|
||||||
cy.get_submitted_proposal_from_proposal_list(proposalTitle).within(() =>
|
cy.wait_for_proposal_submitted();
|
||||||
cy.get(viewProposalButton).click()
|
cy.wait_for_proposal_sync();
|
||||||
);
|
cy.staking_page_disassociate_tokens('0.0001');
|
||||||
cy.contains('Vote breakdown').should('be.visible', {
|
cy.get(vegaWallet).within(() => {
|
||||||
timeout: 10000,
|
cy.get(vegaWalletAssociatedBalance, txTimeout).should(
|
||||||
});
|
'contain',
|
||||||
cy.get(voteButtons).should('not.exist');
|
'0.9999'
|
||||||
cy.getByTestId('min-proposal-requirements').should(
|
);
|
||||||
'have.text',
|
});
|
||||||
`You must have at least ${this.minVoterBalance} VEGA associated to vote on this proposal`
|
cy.navigate_to('proposals');
|
||||||
);
|
cy.get_submitted_proposal_from_proposal_list(proposalTitle).within(
|
||||||
});
|
() => cy.get(viewProposalButton).click()
|
||||||
|
);
|
||||||
|
cy.contains('Vote breakdown').should('be.visible', {
|
||||||
|
timeout: 10000,
|
||||||
|
});
|
||||||
|
cy.get(voteButtons).should('not.exist');
|
||||||
|
cy.getByTestId('min-proposal-requirements').should(
|
||||||
|
'have.text',
|
||||||
|
`You must have at least ${this.minVoterBalance} VEGA associated to vote on this proposal`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
it('Unable to vote on a proposal - when vega wallet disconnected - option to connect from within', function () {
|
it('Unable to vote on a proposal - when vega wallet disconnected - option to connect from within', function () {
|
||||||
createRawProposal(this.minProposerBalance);
|
createRawProposal(this.minProposerBalance);
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.get('[data-testid="manage-vega-wallet"]').click();
|
cy.get('[data-testid="manage-vega-wallet"]').click();
|
||||||
cy.get('[data-testid="disconnect"]').click();
|
cy.get('[data-testid="disconnect"]').click();
|
||||||
cy.get('@rawProposal').then((rawProposal) => {
|
cy.get('@rawProposal').then((rawProposal) => {
|
||||||
@ -809,7 +805,6 @@ context(
|
|||||||
cy.wait_for_proposal_submitted();
|
cy.wait_for_proposal_submitted();
|
||||||
cy.wait_for_proposal_sync();
|
cy.wait_for_proposal_sync();
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function createFreeformProposal(proposerBalance, proposalTitle) {
|
function createFreeformProposal(proposerBalance, proposalTitle) {
|
||||||
@ -821,13 +816,41 @@ context(
|
|||||||
cy.wait_for_proposal_sync();
|
cy.wait_for_proposal_sync();
|
||||||
cy.get(proposalDetailsTitle).invoke('text').as('proposalTitle');
|
cy.get(proposalDetailsTitle).invoke('text').as('proposalTitle');
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateProposalTitle() {
|
function generateProposalTitle() {
|
||||||
const randomNum = Math.floor(Math.random() * 1000) + 1;
|
const randomNum = Math.floor(Math.random() * 1000) + 1;
|
||||||
return randomNum + ': Freeform e2e proposal';
|
return randomNum + ': Freeform e2e proposal';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is a workaround function to begin tests with associating tokens without failing
|
||||||
|
// Should be removed when eth transaction bug is fixed
|
||||||
|
function associateTokenStartOfTests() {
|
||||||
|
cy.highlight(`Associating tokens for first time`);
|
||||||
|
cy.ethereum_wallet_connect();
|
||||||
|
cy.connectVegaWallet();
|
||||||
|
cy.get('[href="/validators/associate"]').first().click();
|
||||||
|
cy.getByTestId('associate-radio-wallet', { timeout: 30000 }).click();
|
||||||
|
cy.getByTestId('token-amount-input', epochTimeout).type('1');
|
||||||
|
cy.getByTestId('token-input-submit-button', txTimeout)
|
||||||
|
.should('be.enabled')
|
||||||
|
.click();
|
||||||
|
cy.contains(
|
||||||
|
`Associating with Vega key. Waiting for ${Cypress.env(
|
||||||
|
'blockConfirmations'
|
||||||
|
)} more confirmations..`,
|
||||||
|
txTimeout
|
||||||
|
).should('be.visible');
|
||||||
|
cy.getByTestId('associated-amount', txTimeout).should(
|
||||||
|
'contain.text',
|
||||||
|
'1'
|
||||||
|
);
|
||||||
|
// Wait is needed to allow time for transaction to complete
|
||||||
|
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
||||||
|
cy.wait(10000);
|
||||||
|
cy.vega_wallet_teardown();
|
||||||
|
cy.clearLocalStorage();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -50,7 +50,6 @@ context(
|
|||||||
cy.connectVegaWallet();
|
cy.connectVegaWallet();
|
||||||
cy.ethereum_wallet_connect();
|
cy.ethereum_wallet_connect();
|
||||||
cy.navigate_to('proposals');
|
cy.navigate_to('proposals');
|
||||||
cy.wait_for_spinner();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Able to submit valid update network parameter proposal', function () {
|
it('Able to submit valid update network parameter proposal', function () {
|
||||||
@ -61,7 +60,7 @@ context(
|
|||||||
// 3002-PROP-007
|
// 3002-PROP-007
|
||||||
cy.get(newProposalDescription).type('E2E test for proposals');
|
cy.get(newProposalDescription).type('E2E test for proposals');
|
||||||
|
|
||||||
cy.get(proposalParameterSelect).find('option').should('have.length', 109);
|
cy.get(proposalParameterSelect).find('option').should('have.length', 114);
|
||||||
cy.get(proposalParameterSelect).select(
|
cy.get(proposalParameterSelect).select(
|
||||||
// 3007-PNEC-002
|
// 3007-PNEC-002
|
||||||
'governance_proposal_asset_minEnact'
|
'governance_proposal_asset_minEnact'
|
||||||
|
@ -46,7 +46,6 @@ context(
|
|||||||
cy.ethereum_wallet_connect();
|
cy.ethereum_wallet_connect();
|
||||||
cy.vega_wallet_teardown();
|
cy.vega_wallet_teardown();
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
cy.wait_for_spinner();
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -97,7 +96,11 @@ context(
|
|||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
|
|
||||||
// 2002-SINC-007
|
// 2002-SINC-007
|
||||||
cy.validate_validator_list_total_stake_and_share('0', '2.00', '100%');
|
cy.validate_validator_list_total_stake_and_share(
|
||||||
|
'0',
|
||||||
|
'2.00',
|
||||||
|
'100.00%'
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Able to stake against a validator - using vega from vesting contract', function () {
|
it('Able to stake against a validator - using vega from vesting contract', function () {
|
||||||
@ -144,7 +147,11 @@ context(
|
|||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
|
|
||||||
cy.validate_validator_list_total_stake_and_share('0', '2.00', '100%');
|
cy.validate_validator_list_total_stake_and_share(
|
||||||
|
'0',
|
||||||
|
'2.00',
|
||||||
|
'100.00%'
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Able to stake against a validator - using vega from both wallet and vesting contract', function () {
|
it('Able to stake against a validator - using vega from both wallet and vesting contract', function () {
|
||||||
@ -204,7 +211,11 @@ context(
|
|||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
|
|
||||||
cy.validate_validator_list_total_stake_and_share('0', '6.00', '100%');
|
cy.validate_validator_list_total_stake_and_share(
|
||||||
|
'0',
|
||||||
|
'6.00',
|
||||||
|
'100.00%'
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Able to stake against multiple validators', function () {
|
it('Able to stake against multiple validators', function () {
|
||||||
@ -254,7 +265,6 @@ context(
|
|||||||
.should('contain', 1.0, txTimeout);
|
.should('contain', 1.0, txTimeout);
|
||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
cy.wait_for_spinner();
|
|
||||||
|
|
||||||
cy.get(`[row-id="${0}"]`).within(() => {
|
cy.get(`[row-id="${0}"]`).within(() => {
|
||||||
cy.get(stakeValidatorListTotalStake)
|
cy.get(stakeValidatorListTotalStake)
|
||||||
@ -285,68 +295,76 @@ context(
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 2001-STKE-041
|
// 2001-STKE-041
|
||||||
it('Able to remove part of a stake against a validator', function () {
|
it(
|
||||||
cy.staking_page_associate_tokens('4');
|
'Able to remove part of a stake against a validator',
|
||||||
|
{ tags: '@smoke' },
|
||||||
|
function () {
|
||||||
|
cy.staking_page_associate_tokens('4');
|
||||||
|
|
||||||
cy.get(vegaWalletUnstakedBalance, txTimeout).should(
|
cy.get(vegaWalletUnstakedBalance, txTimeout).should(
|
||||||
'contain',
|
'contain',
|
||||||
4.0,
|
4.0,
|
||||||
txTimeout
|
txTimeout
|
||||||
);
|
);
|
||||||
|
|
||||||
cy.get('button').contains('Select a validator to nominate').click();
|
cy.get('button').contains('Select a validator to nominate').click();
|
||||||
|
|
||||||
cy.click_on_validator_from_list(0);
|
cy.click_on_validator_from_list(0);
|
||||||
|
|
||||||
cy.staking_validator_page_add_stake('3');
|
cy.staking_validator_page_add_stake('3');
|
||||||
|
|
||||||
cy.get(stakeNextEpochValue, epochTimeout)
|
cy.get(stakeNextEpochValue, epochTimeout)
|
||||||
.contains(3.0, epochTimeout)
|
.contains(3.0, epochTimeout)
|
||||||
.should('be.visible');
|
.should('be.visible');
|
||||||
|
|
||||||
cy.get(vegaWalletUnstakedBalance, txTimeout).should(
|
cy.get(vegaWalletUnstakedBalance, txTimeout).should(
|
||||||
'contain',
|
'contain',
|
||||||
1.0,
|
1.0,
|
||||||
txTimeout
|
txTimeout
|
||||||
);
|
);
|
||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
// 2001-STKE-040
|
// 2001-STKE-040
|
||||||
cy.click_on_validator_from_list(0);
|
cy.click_on_validator_from_list(0);
|
||||||
|
|
||||||
// 2001-STKE-044, 2001-STKE-048
|
// 2001-STKE-044, 2001-STKE-048
|
||||||
cy.staking_validator_page_remove_stake('1');
|
cy.staking_validator_page_remove_stake('1');
|
||||||
|
|
||||||
// 2001-STKE-049
|
// 2001-STKE-049
|
||||||
cy.get(stakeNextEpochValue, epochTimeout).contains(2.0, epochTimeout);
|
cy.get(stakeNextEpochValue, epochTimeout).contains(2.0, epochTimeout);
|
||||||
|
|
||||||
cy.get(vegaWalletUnstakedBalance, txTimeout).should(
|
cy.get(vegaWalletUnstakedBalance, txTimeout).should(
|
||||||
'contain',
|
'contain',
|
||||||
2.0,
|
2.0,
|
||||||
txTimeout
|
txTimeout
|
||||||
);
|
);
|
||||||
|
|
||||||
cy.get(vegaWalletStakedBalances, txTimeout).should(
|
cy.get(vegaWalletStakedBalances, txTimeout).should(
|
||||||
'contain',
|
'contain',
|
||||||
2.0,
|
2.0,
|
||||||
txTimeout
|
txTimeout
|
||||||
);
|
);
|
||||||
|
|
||||||
cy.get(stakeNextEpochValue, epochTimeout)
|
cy.get(stakeNextEpochValue, epochTimeout)
|
||||||
.contains(2.0, epochTimeout)
|
.contains(2.0, epochTimeout)
|
||||||
.should('be.visible');
|
.should('be.visible');
|
||||||
|
|
||||||
cy.get(stakeThisEpochValue, epochTimeout)
|
cy.get(stakeThisEpochValue, epochTimeout)
|
||||||
.contains(2.0, epochTimeout)
|
.contains(2.0, epochTimeout)
|
||||||
.should('be.visible');
|
.should('be.visible');
|
||||||
|
|
||||||
cy.get(totalStake, epochTimeout).should('contain.text', '2');
|
cy.get(totalStake, epochTimeout).should('contain.text', '2');
|
||||||
cy.get(stakeShare, epochTimeout).should('have.text', '100%');
|
cy.get(stakeShare, epochTimeout).should('have.text', '100%');
|
||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
|
|
||||||
cy.validate_validator_list_total_stake_and_share('0', '2.00', '100%');
|
cy.validate_validator_list_total_stake_and_share(
|
||||||
});
|
'0',
|
||||||
|
'2.00',
|
||||||
|
'100.00%'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// 2001-STKE-045
|
// 2001-STKE-045
|
||||||
it('Able to remove a full stake against a validator', function () {
|
it('Able to remove a full stake against a validator', function () {
|
||||||
@ -401,7 +419,7 @@ context(
|
|||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
|
|
||||||
cy.validate_validator_list_total_stake_and_share('0', '0.00', '0%');
|
cy.validate_validator_list_total_stake_and_share('0', '0.00', '0.00%');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Unable to remove a stake with a negative value for a validator', function () {
|
it('Unable to remove a stake with a negative value for a validator', function () {
|
||||||
@ -538,7 +556,7 @@ context(
|
|||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
|
|
||||||
cy.validate_validator_list_total_stake_and_share('0', '0.00', '0%');
|
cy.validate_validator_list_total_stake_and_share('0', '0.00', '0.00%');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Disassociating all vesting contract tokens max - removes all staked tokens', function () {
|
it('Disassociating all vesting contract tokens max - removes all staked tokens', function () {
|
||||||
@ -592,7 +610,7 @@ context(
|
|||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
|
|
||||||
cy.validate_validator_list_total_stake_and_share('0', '0.00', '0%');
|
cy.validate_validator_list_total_stake_and_share('0', '0.00', '0.00%');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Disassociating some tokens - prioritizes unstaked tokens', function () {
|
it('Disassociating some tokens - prioritizes unstaked tokens', function () {
|
||||||
@ -639,7 +657,11 @@ context(
|
|||||||
|
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
|
|
||||||
cy.validate_validator_list_total_stake_and_share('0', '2.00', '100%');
|
cy.validate_validator_list_total_stake_and_share(
|
||||||
|
'0',
|
||||||
|
'2.00',
|
||||||
|
'100.00%'
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Associating wallet tokens - when some already staked - auto stakes tokens to staked validator', function () {
|
it('Associating wallet tokens - when some already staked - auto stakes tokens to staked validator', function () {
|
||||||
|
@ -15,8 +15,8 @@ const ethWalletDissociateButton = '[href="/validators/disassociate"]';
|
|||||||
const vestingContractSection = '[data-testid="vega-in-vesting-contract"]';
|
const vestingContractSection = '[data-testid="vega-in-vesting-contract"]';
|
||||||
const vegaInWalletSection = '[data-testid="vega-in-wallet"]';
|
const vegaInWalletSection = '[data-testid="vega-in-wallet"]';
|
||||||
const connectedVegaKey = '[data-testid="connected-vega-key"]';
|
const connectedVegaKey = '[data-testid="connected-vega-key"]';
|
||||||
const associatedKey = '[data-test-id="associated-key"]';
|
const associatedKey = '[data-testid="associated-key"]';
|
||||||
const associatedAmount = '[data-test-id="associated-amount"]';
|
const associatedAmount = '[data-testid="associated-amount"]';
|
||||||
const associateCompleteText = '[data-testid="transaction-complete-body"]';
|
const associateCompleteText = '[data-testid="transaction-complete-body"]';
|
||||||
const disassociationWarning = '[data-testid="disassociation-warning"]';
|
const disassociationWarning = '[data-testid="disassociation-warning"]';
|
||||||
const vegaWallet = '[data-testid="vega-wallet"]';
|
const vegaWallet = '[data-testid="vega-wallet"]';
|
||||||
@ -41,7 +41,6 @@ context(
|
|||||||
cy.ethereum_wallet_connect();
|
cy.ethereum_wallet_connect();
|
||||||
cy.vega_wallet_teardown();
|
cy.vega_wallet_teardown();
|
||||||
cy.navigate_to('validators');
|
cy.navigate_to('validators');
|
||||||
cy.wait_for_spinner();
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -34,7 +34,6 @@ context(
|
|||||||
cy.reload();
|
cy.reload();
|
||||||
cy.visit('/');
|
cy.visit('/');
|
||||||
cy.navigate_to('withdraw');
|
cy.navigate_to('withdraw');
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.connectVegaWallet();
|
cy.connectVegaWallet();
|
||||||
cy.ethereum_wallet_connect();
|
cy.ethereum_wallet_connect();
|
||||||
cy.vega_wallet_teardown();
|
cy.vega_wallet_teardown();
|
||||||
|
@ -100,7 +100,7 @@ context('Staking Page - verify elements on page', function () {
|
|||||||
// 2001-STKE-050
|
// 2001-STKE-050
|
||||||
describe(
|
describe(
|
||||||
'Should be able to see static information about a validator',
|
'Should be able to see static information about a validator',
|
||||||
{ tags: '@slow' },
|
{ tags: '@smoke' },
|
||||||
function () {
|
function () {
|
||||||
before('connect wallets and click on validator', function () {
|
before('connect wallets and click on validator', function () {
|
||||||
cy.connectVegaWallet();
|
cy.connectVegaWallet();
|
||||||
|
@ -299,7 +299,7 @@ context(
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 2002-SINC-016
|
// 2002-SINC-016
|
||||||
describe.skip('when assets exist in vegawallet', function () {
|
describe('when assets exist in vegawallet', function () {
|
||||||
before('send-faucet assets to connected vega wallet', function () {
|
before('send-faucet assets to connected vega wallet', function () {
|
||||||
cy.vega_wallet_faucet_assets_without_check(
|
cy.vega_wallet_faucet_assets_without_check(
|
||||||
faucetAssets.USDCFake,
|
faucetAssets.USDCFake,
|
||||||
|
@ -34,5 +34,6 @@ Cypress.Commands.add('verify_page_header', (text) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Cypress.Commands.add('wait_for_spinner', () => {
|
Cypress.Commands.add('wait_for_spinner', () => {
|
||||||
|
cy.get(navigation.pageSpinner).should('exist');
|
||||||
cy.get(navigation.pageSpinner, { timeout: 20000 }).should('not.exist');
|
cy.get(navigation.pageSpinner, { timeout: 20000 }).should('not.exist');
|
||||||
});
|
});
|
||||||
|
@ -154,7 +154,6 @@ Cypress.Commands.add('navigate_to_page_if_not_already_loaded', (section) => {
|
|||||||
cy.url().then((url) => {
|
cy.url().then((url) => {
|
||||||
if (url != `http://localhost:4210/${section}`) {
|
if (url != `http://localhost:4210/${section}`) {
|
||||||
cy.navigate_to(section);
|
cy.navigate_to(section);
|
||||||
cy.wait_for_spinner();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -175,7 +174,6 @@ Cypress.Commands.add('go_to_make_new_proposal', (proposalType) => {
|
|||||||
cy.navigate_to_page_if_not_already_loaded('proposals');
|
cy.navigate_to_page_if_not_already_loaded('proposals');
|
||||||
cy.get(newProposalButton).should('be.visible').click();
|
cy.get(newProposalButton).should('be.visible').click();
|
||||||
cy.url().should('include', '/proposals/propose');
|
cy.url().should('include', '/proposals/propose');
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.get('li').contains(proposalType).click();
|
cy.get('li').contains(proposalType).click();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ Cypress.Commands.add('wait_for_beginning_of_epoch', () => {
|
|||||||
|
|
||||||
Cypress.Commands.add('staking_validator_page_add_stake', (stake) => {
|
Cypress.Commands.add('staking_validator_page_add_stake', (stake) => {
|
||||||
cy.highlight(`Adding a stake of ${stake}`);
|
cy.highlight(`Adding a stake of ${stake}`);
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.get(addStakeRadioButton, epochTimeout).click({ force: true });
|
cy.get(addStakeRadioButton, epochTimeout).click({ force: true });
|
||||||
cy.get(tokenAmountInputBox).type(stake);
|
cy.get(tokenAmountInputBox).type(stake);
|
||||||
cy.wait_for_beginning_of_epoch();
|
cy.wait_for_beginning_of_epoch();
|
||||||
@ -44,7 +43,6 @@ Cypress.Commands.add('staking_validator_page_add_stake', (stake) => {
|
|||||||
|
|
||||||
Cypress.Commands.add('staking_validator_page_remove_stake', (stake) => {
|
Cypress.Commands.add('staking_validator_page_remove_stake', (stake) => {
|
||||||
cy.highlight(`Removing a stake of ${stake}`);
|
cy.highlight(`Removing a stake of ${stake}`);
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.get(removeStakeRadioButton, epochTimeout).click();
|
cy.get(removeStakeRadioButton, epochTimeout).click();
|
||||||
cy.get(tokenAmountInputBox).type(stake);
|
cy.get(tokenAmountInputBox).type(stake);
|
||||||
cy.wait_for_beginning_of_epoch();
|
cy.wait_for_beginning_of_epoch();
|
||||||
@ -83,7 +81,7 @@ Cypress.Commands.add('staking_page_associate_tokens', (amount, options) => {
|
|||||||
`Associating with Vega key. Waiting for ${Cypress.env(
|
`Associating with Vega key. Waiting for ${Cypress.env(
|
||||||
'blockConfirmations'
|
'blockConfirmations'
|
||||||
)} more confirmations..`,
|
)} more confirmations..`,
|
||||||
epochTimeout
|
txTimeout
|
||||||
).should('be.visible');
|
).should('be.visible');
|
||||||
cy.contains(
|
cy.contains(
|
||||||
'can now participate in governance and nominate a validator',
|
'can now participate in governance and nominate a validator',
|
||||||
@ -148,7 +146,6 @@ Cypress.Commands.add(
|
|||||||
Cypress.Commands.add(
|
Cypress.Commands.add(
|
||||||
'click_on_validator_from_list',
|
'click_on_validator_from_list',
|
||||||
(validatorNumber, validatorName = null) => {
|
(validatorNumber, validatorName = null) => {
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.contains('Loading...', epochTimeout).should('not.exist');
|
cy.contains('Loading...', epochTimeout).should('not.exist');
|
||||||
cy.wait_for_beginning_of_epoch();
|
cy.wait_for_beginning_of_epoch();
|
||||||
// below is to ensure validator list is shown
|
// below is to ensure validator list is shown
|
||||||
@ -171,7 +168,6 @@ Cypress.Commands.add(
|
|||||||
Cypress.Commands.add(
|
Cypress.Commands.add(
|
||||||
'validate_validator_list_total_stake_and_share',
|
'validate_validator_list_total_stake_and_share',
|
||||||
(positionOnList, expectedTotalStake, expectedTotalShare) => {
|
(positionOnList, expectedTotalStake, expectedTotalShare) => {
|
||||||
cy.wait_for_spinner();
|
|
||||||
cy.contains('Loading...', epochTimeout).should('not.exist');
|
cy.contains('Loading...', epochTimeout).should('not.exist');
|
||||||
cy.wait_for_beginning_of_epoch();
|
cy.wait_for_beginning_of_epoch();
|
||||||
cy.get(`[row-id="${positionOnList}"]`).within(() => {
|
cy.get(`[row-id="${positionOnList}"]`).within(() => {
|
||||||
|
@ -101,7 +101,7 @@ Cypress.Commands.add('vega_wallet_teardown', function () {
|
|||||||
cy.vega_wallet_teardown_staking(this.stakingBridgeContract);
|
cy.vega_wallet_teardown_staking(this.stakingBridgeContract);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
cy.get('[data-test-id="associated-amount"]', { timeout: 30000 }).should(
|
cy.get('[data-testid="associated-amount"]', { timeout: 30000 }).should(
|
||||||
'contain.text',
|
'contain.text',
|
||||||
'0.00'
|
'0.00'
|
||||||
);
|
);
|
||||||
|
@ -66,14 +66,14 @@ export const WalletCardRow = ({
|
|||||||
{label}
|
{label}
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span className="max-w-[200px]" data-test-id="associated-key">
|
<span className="max-w-[200px]" data-testid="associated-key">
|
||||||
{label}
|
{label}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
{value && (
|
{value && (
|
||||||
<span
|
<span
|
||||||
className="font-mono flex-1 text-right"
|
className="font-mono flex-1 text-right"
|
||||||
data-test-id="associated-amount"
|
data-testid="associated-amount"
|
||||||
>
|
>
|
||||||
<span>{integers}.</span>
|
<span>{integers}.</span>
|
||||||
<span>{decimalsPlaces}</span>
|
<span>{decimalsPlaces}</span>
|
||||||
|
@ -60,7 +60,7 @@ export const Tranche = () => {
|
|||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
className="flex justify-between gap-x-4 py-2 px-4"
|
className="flex justify-between gap-x-4 py-2 px-4"
|
||||||
data-test-id="redeemed-tranche-tokens"
|
data-testid="redeemed-tranche-tokens"
|
||||||
>
|
>
|
||||||
<span>{t('alreadyRedeemed')}</span>
|
<span>{t('alreadyRedeemed')}</span>
|
||||||
<span className="font-mono">{formatNumber(tranche.total_removed)}</span>
|
<span className="font-mono">{formatNumber(tranche.total_removed)}</span>
|
||||||
|
Loading…
Reference in New Issue
Block a user