2022-06-20 15:16:47 +00:00
|
|
|
import { aliasQuery } from '@vegaprotocol/cypress';
|
2022-06-10 19:00:02 +00:00
|
|
|
import { generateDepositPage } from '../support/mocks/generate-deposit-page';
|
2022-07-14 16:12:28 +00:00
|
|
|
import { generateNetworkParameters } from '../support/mocks/generate-network-parameters';
|
2022-06-10 19:00:02 +00:00
|
|
|
|
|
|
|
describe('deposit form validation', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
cy.mockWeb3Provider();
|
2022-06-20 15:16:47 +00:00
|
|
|
cy.mockGQL((req) => {
|
2022-07-14 16:12:28 +00:00
|
|
|
aliasQuery(req, 'NetworkParamsQuery', generateNetworkParameters());
|
2022-06-20 15:16:47 +00:00
|
|
|
aliasQuery(req, 'DepositPage', generateDepositPage());
|
2022-06-10 19:00:02 +00:00
|
|
|
});
|
|
|
|
cy.visit('/portfolio/deposit');
|
|
|
|
|
|
|
|
// Deposit page requires connection Ethereum wallet first
|
|
|
|
cy.getByTestId('connect-eth-wallet-btn').click();
|
|
|
|
cy.getByTestId('web3-connector-MetaMask').click();
|
|
|
|
|
|
|
|
cy.wait('@DepositPage');
|
|
|
|
cy.contains('Deposit');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('handles empty fields', () => {
|
|
|
|
const assetSelectField = 'select[name="asset"]';
|
|
|
|
const toAddressField = 'input[name="to"]';
|
|
|
|
const amountField = 'input[name="amount"]';
|
|
|
|
const formFieldError = 'input-error-text';
|
|
|
|
|
|
|
|
// Submit form to trigger any empty validaion messages
|
|
|
|
cy.getByTestId('deposit-submit').click();
|
|
|
|
|
|
|
|
cy.getByTestId(formFieldError).should('contain.text', 'Required');
|
|
|
|
cy.getByTestId(formFieldError).should('have.length', 3);
|
|
|
|
|
|
|
|
// Invalid public key
|
|
|
|
cy.get(toAddressField)
|
|
|
|
.clear()
|
|
|
|
.type('INVALID_DEPOSIT_TO_ADDRESS')
|
|
|
|
.next(`[data-testid="${formFieldError}"]`)
|
|
|
|
.should('have.text', 'Invalid Vega key');
|
|
|
|
|
|
|
|
// Deposit amount smaller than minimum viable for selected asset
|
|
|
|
// Select an amount so that we have a known decimal places value to work with
|
|
|
|
cy.get(assetSelectField).select('Asset 0');
|
|
|
|
cy.get(amountField)
|
|
|
|
.clear()
|
|
|
|
.type('0.00000000000000000000000000000000001')
|
|
|
|
.next(`[data-testid="${formFieldError}"]`)
|
|
|
|
.should('have.text', 'Value is below minimum');
|
|
|
|
|
|
|
|
// Deposit amount is valid, but less than approved. This will always be the case because our
|
|
|
|
// CI wallet wont have approved any assets
|
|
|
|
cy.get(amountField)
|
|
|
|
.clear()
|
|
|
|
.type('100')
|
|
|
|
.next(`[data-testid="${formFieldError}"]`)
|
2022-07-21 08:18:57 +00:00
|
|
|
.should('have.text', 'Insufficient amount in Ethereum wallet');
|
2022-06-10 19:00:02 +00:00
|
|
|
});
|
|
|
|
});
|