109 lines
3.6 KiB
JavaScript
109 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);
|
|
});
|
|
});
|