Files
nym/tauri-wallet/webdriver/tests/specs/existinguser/test.wallet.delegate.js
T
2021-10-22 17:24:05 +01:00

91 lines
3.6 KiB
JavaScript

const userData = require('../../../common/data/user-data.json')
const helper = require('../../../common/helpers/helper')
const walletLogin = require('../../pages/wallet.login')
const textConstants = require('../../../common/constants/text-constants')
const walletHomepage = require('../../pages/wallet.homepage')
const delegatePage = require('../../pages/wallet.delegate')
describe("delegate to a mix node or gateway", () => {
it("ensure that fields are enabled for existing user", async () => {
const mnemonic = await helper.decodeBase(userData.mnemonic)
await walletLogin.enterMnemonic(mnemonic)
await helper.navigateAndClick(walletHomepage.delegateButton)
const getText = await delegatePage.header.getText()
expect(getText).toEqual(textConstants.delegateHeaderText)
})
it("submitting the form without input prompts validation errors", async () => {
await delegatePage.delegateStakeButton.click()
const getIdentityValidation = await delegatePage.identityValidation.getText()
const getAmountValidation = await delegatePage.amountToDelegateValidation.getText()
expect(getIdentityValidation).toEqual(textConstants.nodeIdentityValidationText)
expect(getAmountValidation).toEqual(textConstants.amountValidationText)
})
it("input delegate amount to a mix node then broadcast the transaction then check account balances", async () => {
const balanceText = await delegatePage.accountBalance.getText()
const getTransfeeAmount = await delegatePage.transactionFeeAmount.getText()
await delegatePage.nodeIdentity.setValue(userData.identity_key_to_delegate_mix_node)
await delegatePage.amountToDelegate.setValue(userData.delegate_amount)
//transfer fee + amount delegation
const sumCost = await helper.calculateFees(balanceText, getTransfeeAmount, userData.delegate_amount, false)
await delegatePage.delegateStakeButton.click()
await delegatePage.successfullyDelegate.waitForClickable({ timeout: 10000 })
const getConfirmationText = await delegatePage.successfullyDelegate.getText()
expect(getConfirmationText).toContain(textConstants.delegationComplete)
const availablePunk = await delegatePage.accountBalance.getText()
//expect new account balance - the fee calculation above
await delegatePage.finishButton.click()
expect(await helper.currentBalance(availablePunk)).toEqual(sumCost)
})
it("input amount to stake to a gateway then broadcast the transaction then check account balances", async () => {
const balanceText = await delegatePage.accountBalance.getText()
const getTransfeeAmount = await delegatePage.transactionFeeAmount.getText()
await delegatePage.gateWayRadioButton.click()
await delegatePage.nodeIdentity.setValue(userData.identity_key_to_delegate_gateway)
await delegatePage.amountToDelegate.setValue(userData.delegate_amount)
//transfer fee + amount delegation
const sumCost = await helper.calculateFees(balanceText, getTransfeeAmount, userData.delegate_amount, false)
await delegatePage.delegateStakeButton.click()
await delegatePage.successfullyDelegate.waitForClickable({ timeout: 10000 })
const getConfirmationText = await delegatePage.successfullyDelegate.getText()
expect(getConfirmationText).toContain(textConstants.delegationComplete)
const availablePunk = await delegatePage.accountBalance.getText()
//expect new account balance - the fee calculation above
expect(await helper.currentBalance(availablePunk)).toEqual(sumCost)
})
})