tokenbridge/ui-e2e/test.js
Przemyslaw Rzad 6d1d4bce6b
Extracting UI E2E (#49)
* Commented out package-lock.json

* Moved over changes from https://github.com/poanetwork/bridge-ui/pull/217

* Brought back package-lock.json used in e2e.

* Edited postinstall to work for sub-repo npm install

* Using local oracle

* Moved ui/e2e-script to ui-e2e

* Introduced ui-e2e workspace.

* Updated paths,. removed bridge dockerfile.

* Updated e2e script after extracting.

* Introduced ui-e2e into CI

* Disabled ui-e2e

* Updated readme.
2019-05-21 09:41:52 +02:00

310 lines
14 KiB
JavaScript

let test = require('selenium-webdriver/testing');
let assert = require('assert');
const Utils = require('./Utils.js').Utils;
const MetaMask = require('./MetaMask.js').MetaMask;
const MainPage = require('./mainPage.js').MainPage;
const User = require("./User.js").User;
test.describe('e2e-test for bridge.poa, version 1.5.0', async function () {
this.timeout(5 * 60000);
this.slow(1 * 60000);
const maxAmountPerTransactionLimit = 1;
let startURL;
let driver;
let mainPage;
let homeAccount;
let foreignAccount;
let metaMask;
let foreignBalanceBefore;
let homeBalanceBefore;
test.before(async function () {
try {
driver = await Utils.startBrowserWithMetamask();
mainPage = new MainPage(driver);
homeAccount = new User(driver, await Utils.getHomeAccount());
foreignAccount = new User(driver, await Utils.getForeignAccount());
metaMask = new MetaMask(driver);
await metaMask.activate();
await homeAccount.setMetaMaskAccount();
} catch (e) {
console.log(e)
}
});
test.after(async function () {
try {
await driver.quit();
} catch (e) {
console.log(e)
}
});
test.it('User is able to open main page of bridge-ui ',
async function () {
startURL = await Utils.getStartURL();
let result = await mainPage.open(startURL);
console.log("Test URL: " + startURL);
return await assert.equal(result, true, "Test FAILED. Build failed.");
});
test.it('Home page: disclaimer is displayed ',
async function () {
let result = await mainPage.confirmDisclaimer();
return await assert.equal(result, true, "Test FAILED. Disclaimer is not displayed");
});
test.it('Main page: foreign POA balance is displayed ',
async function () {
foreignBalanceBefore = await mainPage.getForeignPOABalance();
console.log("foreignBalanceBefore = "+foreignBalanceBefore);
let result = foreignBalanceBefore === 0;
return await assert.equal(result, true, "Test FAILED.Foreign POA balance is zero or not displayed ");
});
test.it('Main page: home POA balance is displayed ',
async function () {
homeBalanceBefore = await mainPage.getHomePOABalance();
console.log("homeBalanceBefore = "+homeBalanceBefore);
let result = homeBalanceBefore !== 0;
return await assert.equal(result, true, "Test FAILED.Home POA balance is zero or not displayed ");
});
test.it('User is able to send tokens from Home account to Foreign account ',
async function () {
let result = await homeAccount.transferTokens(maxAmountPerTransactionLimit);
return await assert.equal(result, true, "Test FAILED. User is able send tokens from Home account to Foreign account");
});
test.it('Home POA balance has correctly changed after transaction',
async function () {
let newHomeBalance = await mainPage.getHomePOABalance();
let shouldBe = homeBalanceBefore - maxAmountPerTransactionLimit;
console.log("newHomeBalance = " + newHomeBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newHomeBalance)) < (maxAmountPerTransactionLimit / 100);
homeBalanceBefore = newHomeBalance;
return await assert.equal(result, true, "Test FAILED.Home POA balance is not correct after transaction");
});
test.it('Foreign account has received correct amount of tokens after transaction ',
async function () {
let newForeignBalance = await mainPage.getForeignPOABalance();
let shouldBe = foreignBalanceBefore + maxAmountPerTransactionLimit;
console.log("newForeignBalance = " + newForeignBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newForeignBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED. Foreign POA balance is not correct after transaction");
});
test.it('User is able to send tokens from Foreign account to Home account ',
async function () {
await foreignAccount.setMetaMaskNetwork();
foreignBalanceBefore = await mainPage.getHomePOABalance();
let result = await foreignAccount.transferTokens(maxAmountPerTransactionLimit);
return await assert.equal(result, true, "Test FAILED. User is able send tokens from Home account to Foreign account");
});
test.it('Foreign POA balance has correctly changed after transaction',
async function () {
let newForeignBalance = await mainPage.getHomePOABalance();
let shouldBe = foreignBalanceBefore - maxAmountPerTransactionLimit;
console.log("newForeignBalance = " + newForeignBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newForeignBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED.Foreign POA balance is not correct after transaction");
});
test.it('Home account has received correct amount of tokens after transaction ',
async function () {
let newHomeBalance = await mainPage.getForeignPOABalance();
let shouldBe = homeBalanceBefore + maxAmountPerTransactionLimit;
console.log("newHomeBalance = " + newHomeBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newHomeBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED.Home POA balance is not correct after transaction");
});
test.it('ERC20-ERC20 - User is able to open main page of bridge-ui ',
async function () {
startURL = await Utils.getErc20StartURL();
let result = await mainPage.open(startURL);
console.log("Test URL: " + startURL);
return await assert.equal(result, true, "Test FAILED. Build failed.");
});
test.it('ERC20-ERC20 - Home page: disclaimer is displayed ',
async function () {
let result = await mainPage.confirmDisclaimer();
return await assert.equal(result, true, "Test FAILED. Disclaimer is not displayed");
});
test.it('ERC20-ERC20 - Main page: foreign erc20 balance is displayed ',
async function () {
foreignBalanceBefore = await mainPage.getForeignPOABalance();
console.log("foreignBalanceBefore = "+foreignBalanceBefore);
let result = foreignBalanceBefore === 0;
return await assert.equal(result, true, "Test FAILED. Foreign erc20 balance is not zero");
});
test.it('ERC20-ERC20 - Main page: home erc20 balance is displayed ',
async function () {
homeBalanceBefore = await mainPage.getHomePOABalance();
console.log("homeBalanceBefore = "+homeBalanceBefore);
let result = homeBalanceBefore !== 0;
return await assert.equal(result, true, "Test FAILED. Home erc20 balance is zero or not displayed ");
});
test.it('ERC20-ERC20 - User is able to send tokens from Foreign account to Home account ',
async function () {
homeBalanceBefore = await mainPage.getForeignPOABalance();
foreignBalanceBefore = await mainPage.getHomePOABalance();
let result = await foreignAccount.transferTokens(maxAmountPerTransactionLimit);
return await assert.equal(result, true, "Test FAILED. User is able send tokens from Foreign account to Home account");
});
test.it('ERC20-ERC20 - Foreign POA balance has correctly changed after transaction',
async function () {
let newForeignBalance = await mainPage.getHomePOABalance();
let shouldBe = foreignBalanceBefore - maxAmountPerTransactionLimit;
console.log("newForeignBalance = " + newForeignBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newForeignBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED.Foreign POA balance is not correct after transaction");
});
test.it('ERC20-ERC20 - Home account has received correct amount of tokens after transaction ',
async function () {
let newHomeBalance = await mainPage.getForeignPOABalance();
let shouldBe = homeBalanceBefore + maxAmountPerTransactionLimit;
console.log("newHomeBalance = " + newHomeBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newHomeBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED.Home POA balance is not correct after transaction");
});
test.it('ERC20-ERC20 - User is able to send tokens from Home account to Foreign account ',
async function () {
await homeAccount.setMetaMaskNetwork();
homeBalanceBefore = await mainPage.getHomePOABalance();
foreignBalanceBefore = await mainPage.getForeignPOABalance();
let result = await homeAccount.transferTokens(maxAmountPerTransactionLimit);
return await assert.equal(result, true, "Test FAILED. User is able send tokens from Home account to Foreign account");
});
test.it('ERC20-ERC20 - Home POA balance has correctly changed after transaction',
async function () {
let newHomeBalance = await mainPage.getHomePOABalance();
let shouldBe = homeBalanceBefore - maxAmountPerTransactionLimit;
console.log("newHomeBalance = " + newHomeBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newHomeBalance)) < (maxAmountPerTransactionLimit / 100);
homeBalanceBefore = newHomeBalance;
return await assert.equal(result, true, "Test FAILED.Home POA balance is not correct after transaction");
});
test.it('ERC20-ERC20 - Foreign account has received correct amount of tokens after transaction ',
async function () {
let newForeignBalance = await mainPage.getForeignPOABalance();
let shouldBe = foreignBalanceBefore + maxAmountPerTransactionLimit;
console.log("newForeignBalance = " + newForeignBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newForeignBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED. Foreign POA balance is not correct after transaction");
});
test.it('ERC20-Native - User is able to open main page of bridge-ui ',
async function () {
startURL = await Utils.getErc20NativeStartURL();
let result = await mainPage.open(startURL);
console.log("Test URL: " + startURL);
return await assert.equal(result, true, "Test FAILED. Build failed.");
});
test.it('ERC20-Native - Home page: disclaimer is displayed ',
async function () {
let result = await mainPage.confirmDisclaimer();
return await assert.equal(result, true, "Test FAILED. Disclaimer is not displayed");
});
test.it('ERC20-Native - Main page: foreign erc20 balance is displayed ',
async function () {
await foreignAccount.setMetaMaskNetwork();
foreignBalanceBefore = await mainPage.getForeignPOABalance();
console.log("foreignBalanceBefore = "+foreignBalanceBefore);
let result = foreignBalanceBefore !== 0;
return await assert.equal(result, true, "Test FAILED. Foreign erc20 balance is zero");
});
test.it('ERC20-Native - Main page: home erc20 balance is displayed ',
async function () {
homeBalanceBefore = await mainPage.getHomePOABalance();
console.log("homeBalanceBefore = "+homeBalanceBefore);
let result = homeBalanceBefore !== 0;
return await assert.equal(result, true, "Test FAILED. Home erc20 balance is zero or not displayed ");
});
test.it('ERC20-Native - User is able to send tokens from Foreign account to Home account ',
async function () {
homeBalanceBefore = await mainPage.getForeignPOABalance();
foreignBalanceBefore = await mainPage.getHomePOABalance();
let result = await foreignAccount.transferTokens(maxAmountPerTransactionLimit);
return await assert.equal(result, true, "Test FAILED. User is able send tokens from Foreign account to Home account");
});
test.it('ERC20-Native - Foreign POA balance has correctly changed after transaction',
async function () {
let newForeignBalance = await mainPage.getHomePOABalance();
let shouldBe = foreignBalanceBefore - maxAmountPerTransactionLimit;
console.log("newForeignBalance = " + newForeignBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newForeignBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED.Foreign POA balance is not correct after transaction");
});
test.it('ERC20-Native - Home account has received correct amount of tokens after transaction ',
async function () {
let newHomeBalance = await mainPage.getForeignPOABalance();
let shouldBe = homeBalanceBefore + maxAmountPerTransactionLimit;
console.log("newHomeBalance = " + newHomeBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newHomeBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED.Home POA balance is not correct after transaction");
});
test.it('ERC20-Native - User is able to send tokens from Home account to Foreign account ',
async function () {
await homeAccount.setMetaMaskNetwork();
homeBalanceBefore = await mainPage.getHomePOABalance();
foreignBalanceBefore = await mainPage.getForeignPOABalance();
let result = await homeAccount.transferTokens(maxAmountPerTransactionLimit);
return await assert.equal(result, true, "Test FAILED. User is able send tokens from Home account to Foreign account");
});
test.it('ERC20-Native - Home POA balance has correctly changed after transaction',
async function () {
let newHomeBalance = await mainPage.getHomePOABalance();
let shouldBe = homeBalanceBefore - maxAmountPerTransactionLimit;
console.log("newHomeBalance = " + newHomeBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newHomeBalance)) < (maxAmountPerTransactionLimit / 100);
homeBalanceBefore = newHomeBalance;
return await assert.equal(result, true, "Test FAILED.Home POA balance is not correct after transaction");
});
test.it('ERC20-Native - Foreign account has received correct amount of tokens after transaction ',
async function () {
let newForeignBalance = await mainPage.getForeignPOABalance();
let shouldBe = foreignBalanceBefore + maxAmountPerTransactionLimit;
console.log("newForeignBalance = " + newForeignBalance);
console.log("shouldBe = " + shouldBe);
let result = (Math.abs(shouldBe - newForeignBalance)) < (maxAmountPerTransactionLimit / 100);
return await assert.equal(result, true, "Test FAILED. Foreign POA balance is not correct after transaction");
});
});