dutch fix timer status tests

This commit is contained in:
dennis00010011b 2018-07-03 13:49:26 -07:00
parent 4d3ac029b6
commit 28309e525f
5 changed files with 52 additions and 32 deletions

View File

@ -16,7 +16,7 @@ const logger = createLogger({
myFormat
),
transports: [
//new (winston.transports.Console)(),
new (winston.transports.Console)(),
new (winston.transports.File)({filename: tempOutputFile})
]
});

View File

@ -6,7 +6,7 @@
"startGanache": "npm install -g ganache-cli && ganache-cli &",
"e2e-deployRegistry": "node ./contracts/DeployRegistry.js",
"e2eMinted": "mocha ./test/e2eMinted.js",
"e2eDutch": "mocha ./test/e2eDutch.js",
"e2eDutch": "mocha -b ./test/e2eDutch.js",
"margo": "node ./test/margo.js",
"e2eMintedRopsten": "mocha ./test/e2eMintedRopsten.js",
"e2eDutchRopsten": "mocha ./test/e2eDutchRopsten.js",

View File

@ -35,9 +35,15 @@ class ContributionPage extends Page {
this.fieldMinContribution;
}
async getTimerStatus() {
async getStatusTimer() {
logger.info(this.name + "getTimerStatus ");
try {
let counter = 10;
do {
await this.driver.sleep(1000);
}
while ((counter-- > 0) && (await this.isCrowdsaleTimeOver()))
let array = await this.initTimerFields();
let result = await super.getTextForElement(array[array.length - 1]);
logger.info("timer status: " + result);
@ -45,6 +51,7 @@ class ContributionPage extends Page {
else if (result.includes(statusTimer.tier1)) return statusTimer.tier1;
else if (result.includes(statusTimer.tier2)) return statusTimer.tier2;
else if (result.includes(statusTimer.tier3)) return statusTimer.tier3;
else if (result.includes(statusTimer.end)) return statusTimer.end;
else if (result.includes(statusTimer.finalized)) return statusTimer.finalized;
}
catch (err) {
@ -55,37 +62,37 @@ class ContributionPage extends Page {
async isCrowdsaleFinalized() {
logger.info(this.name + "isCrowdsaleFinalized ");
return (await this.getTimerStatus() === statusTimer.finalized);
return (await this.getStatusTimer() === statusTimer.finalized);
}
async isCrowdsaleNotStarted() {
logger.info(this.name + "isCrowdsaleNotStarted ");
return (await this.getTimerStatus() === statusTimer.start);
return (await this.getStatusTimer() === statusTimer.start);
}
async isCrowdsaleEnded() {
logger.info(this.name + "isCrowdsaleEnded ");
return (await this.getTimerStatus() === statusTimer.end);
return (await this.getStatusTimer() === statusTimer.end);
}
async isCrowdsaleStarted() {
logger.info(this.name + "isCrowdsaleStarted ");
return (await this.getTimerStatus() !== statusTimer.start);
return (await this.getStatusTimer() !== statusTimer.start);
}
async isCurrentTier1() {
logger.info(this.name + "isCurrentTier1 ");
return (await this.getTimerStatus() === statusTimer.tier1);
return (await this.getStatusTimer() === statusTimer.tier1);
}
async isCurrentTier2() {
logger.info(this.name + "isCurrentTier2 ");
return (await this.getTimerStatus() === statusTimer.tier2);
return (await this.getStatusTimer() === statusTimer.tier2);
}
async isCurrentTier3() {
logger.info(this.name + "isCurrentTier3 ");
return (await this.getTimerStatus() === statusTimer.tier3);
return (await this.getStatusTimer() === statusTimer.tier3);
}
async initTimerFields() {
@ -119,7 +126,7 @@ class ContributionPage extends Page {
async isCrowdsaleTimeOver() {
logger.info(this.name + " :isCrowdsaleTimeOver ");
try {
let arr = await super.findWithWait(countdownTimerValue);
let arr = await super.findWithWait(countdownTimerValue,20);
let result = 0;
for (let i = 0; i < arr.length; i++) {
result = result + parseInt((await this.getTextForElement(arr[i])));
@ -198,9 +205,17 @@ class ContributionPage extends Page {
async getMinContribution() {
logger.info(this.name + "getMinContribution ");
if (await this.initFields() === null) return false;
let result = await super.getTextForElement(this.fieldMinContribution);
let result = await super.getTextForElement(this.fieldMinContribution);
if (result === 'You are not allowed') return -1;
else return (parseFloat(result.split(" ")[0].trim()));
let counter = 60;
do {
result = await super.getTextForElement(this.fieldMinContribution);
result = parseFloat(result.split(" ")[0].trim());
await this.driver.sleep(1000);
}
while ((result === 0) && (counter-- > 0))
if (counter > 0) return result;
else return false;
}

View File

@ -14,7 +14,8 @@ const buttonCreate = By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/button");
const buttonIveCopied = By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/button[1]");
const popupNetwork = By.className("network-name");
const popupAccount = By.xpath("//*[@id=\"app-content\"]/div/div[1]/div/div[2]/span/div");
const fieldPrivateKey = By.xpath("//*[@id=\"private-key-box\"]");
//const fieldPrivateKey = By.xpath("//*[@id=\"private-key-box\"]");
const fieldPrivateKey = By.id("private-key-box");
const pass = "qwerty12345";
const buttonImport = By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div[4]/button");

View File

@ -20,7 +20,7 @@ const MetaMask = require('../pages/MetaMask.js').MetaMask;
const User = require("../entity/User.js").User;
const smallAmount = 0.1;
test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', async function () {
test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.2 ', async function () {
this.timeout(2400000);//40 min
this.slow(1800000);
@ -416,7 +416,7 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
});
*/
//////////////////////// Test SUITE #1 /////////////////////////////
test.it('Owner can create crowdsale: 1 whitelisted address,duration 5 min',
/* test.it('Owner can create crowdsale: 1 whitelisted address,duration 5 min',
async function () {
let owner = Owner;
assert.equal(await owner.setMetaMaskAccount(), true, "Can not set Metamask account");
@ -431,6 +431,7 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
assert.equal(await investor.openInvestPage(e2eWhitelist), true, 'Investor can not open Invest page');
assert.equal(await investPage.waitUntilLoaderGone(), true, 'Loader displayed too long time');
let result = await investPage.isCrowdsaleNotStarted();
console.log(await investPage.getStatusTimer())
return await assert.equal(result, true, 'Test FAILED. Countdown timer has incorrect status ');
});
@ -475,8 +476,9 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
startTime = await Utils.getDutchCrowdsaleStartTime(e2eWhitelist);
logger.info("wait " + Date.now());
logger.info("wait " + startTime);
//console.log("Date.now() = " + Date.now());
//console.log("startTime = " + startTime);
console.log("Date.now() = " + Date.now());
console.log("startTime = " + startTime);
console.log("counter"+counter);
await driver.sleep(1000);
}
@ -506,13 +508,12 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
test.it('Manage page: owner is able to add whitelisted address after start of crowdsale',
async function () {
let owner = Owner;
let investor = Owner;
assert.equal(await investor.setMetaMaskAccount(), true, "Can not set Metamask account");
assert.equal(await owner.setMetaMaskAccount(), true, "Can not set Metamask account");
assert.equal(await owner.openManagePage(e2eWhitelist), true, 'Owner can not open manage page');
let tierNumber = 1;
investor.minCap = e2eWhitelist.tiers[0].supply / 10;
investor.maxCap = e2eWhitelist.tiers[0].supply;
let result = await owner.addWhitelistTier(tierNumber, investor.account, investor.minCap, investor.maxCap);
owner.minCap = e2eWhitelist.tiers[0].supply / 10;
owner.maxCap = e2eWhitelist.tiers[0].supply;
let result = await owner.addWhitelistTier(tierNumber, owner.account, owner.minCap, owner.maxCap);
return await assert.equal(result, true, 'Test FAILED.Owner is NOT able to add whitelisted address after start of crowdsale ');
});
@ -626,8 +627,9 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
endTime = await Utils.getDutchCrowdsaleEndTime(e2eWhitelist);
logger.info("wait " + Date.now());
logger.info("wait " + endTime);
//console.log("Date.now() = " + Date.now());
//console.log("endTime = " + endTime);
console.log("Date.now() = " + Date.now());
console.log("endTime = " + endTime);
console.log("counter"+counter);
await driver.sleep(1000);
}
while (counter-- > 0 && (Date.now() / 1000 <= endTime));
@ -641,6 +643,7 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
assert.equal(await investor.openInvestPage(e2eWhitelist), true, 'Investor can not open Invest page');
assert.equal(await investPage.waitUntilLoaderGone(), true, 'Loader displayed too long time');
let result = await investPage.isCrowdsaleEnded();
console.log("result = "+result);
return await assert.equal(result, true, 'Test FAILED. Countdown timer has incorrect status ');
});
@ -719,7 +722,7 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
let result = (Math.abs(shouldBe - balance) < 1e-6);
return await assert.equal(result, true, "Test FAILED.'Investor has received " + balance + " tokens instead " + shouldBe)
});
*/
//////////////////////// Test SUITE #2 /////////////////////////////
test.it('Owner can create DutchAuction crowdsale(scenario scenarioE2eDutchMincapLong.json), minCap,no whitelist',
async function () {
@ -734,7 +737,7 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
async function () {
let investor = Owner;
assert.equal(await investor.setMetaMaskAccount(), true, "Can not set Metamask account");
assert.equal(await investor.openInvestPage(e2eWhitelist), true, 'Investor can not open Invest page');
assert.equal(await investor.openInvestPage(e2eMinCap), true, 'Investor can not open Invest page');
assert.equal(await investPage.waitUntilLoaderGone(), true, 'Loader displayed too long time');
let result = await investPage.isCrowdsaleNotStarted();
return await assert.equal(result, true, 'Test FAILED. Countdown timer has incorrect status ');
@ -791,8 +794,9 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
startTime = await Utils.getDutchCrowdsaleStartTime(e2eMinCap);
logger.info("wait " + Date.now());
logger.info("wait " + startTime);
//console.log("Date.now() = " + Date.now());
//console.log("startTime = " + startTime);
console.log("Date.now() = " + Date.now());
console.log("startTime = " + startTime);
console.log("counter"+counter);
await driver.sleep(1000);
}
while (counter-- > 0 && (Date.now() / 1000 <= startTime));
@ -954,7 +958,7 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
async function () {
let investor = Owner;
assert.equal(await investor.setMetaMaskAccount(), true, "Can not set Metamask account");
assert.equal(await investor.openInvestPage(e2eWhitelist), true, 'Investor can not open Invest page');
assert.equal(await investor.openInvestPage(e2eMinCap), true, 'Investor can not open Invest page');
assert.equal(await investPage.waitUntilLoaderGone(), true, 'Loader displayed too long time');
let result = await investPage.isCrowdsaleFinalized();
return await assert.equal(result, true, 'Test FAILED. Countdown timer has incorrect status ');
@ -965,7 +969,7 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
let investor = Investor1;
assert.equal(await investor.setMetaMaskAccount(), true, "Can not set Metamask account");
await investor.openInvestPage(e2eWhitelist);
await investor.openInvestPage(e2eMinCap);
let shouldBe = parseFloat(await investor.getBalanceFromInvestPage(e2eMinCap));
let balance = await investor.getTokenBalance(e2eMinCap) / 1e18;
logger.info("Investor should receive = " + shouldBe);
@ -980,7 +984,7 @@ test.describe('e2e test for TokenWizard2.0/DutchAuctionCrowdsale. v2.7.1 ', asyn
let investor = Investor2;
assert.equal(await investor.setMetaMaskAccount(), true, "Can not set Metamask account");
await investor.openInvestPage(e2eWhitelist);
await investor.openInvestPage(e2eMinCap);
let shouldBe = parseFloat(await investor.getBalanceFromInvestPage(e2eMinCap));
let balance = await investor.getTokenBalance(e2eMinCap) / 1e18;
logger.info("Investor should receive = " + shouldBe);