token-wizard-test-automation/pages/WizardStep2.js

146 lines
4.1 KiB
JavaScript

const key = require('selenium-webdriver').Key;
const logger = require('../entity/Logger.js').logger;
const Page = require('./Page.js').Page;
const By = require('selenium-webdriver/lib/by').By;
const buttonContinue = By.xpath("//*[contains(text(),'Continue')]");
const fieldName = By.id("name");
const fieldTicker = By.id("ticker");
const fieldDecimals = By.id("decimals");
const fieldSupply = By.id("supply");
class WizardStep2 extends Page {
constructor(driver) {
super(driver);
this.URL;
this.name = "WizardStep2 page: ";
this.warningName;
this.warningTicker;
this.warningDecimals;
this.warningAddress;
this.warningValue;
this.warningSupply;
this.title = "TOKEN SETUP";
}
async initWarnings() {
logger.info(this.name + " :init warnings");
try {
const locator = By.className("error");
let array = await super.findWithWait(locator);
this.warningName = array[0];
this.warningTicker = array[1];
this.warningDecimals = array[2];
if (array.length > 2) this.warningSupply = array[3];
return array;
}
catch (err) {
logger.info("Error: " + err);
return null;
}
}
async isDisplayedFieldName() {
logger.info(this.name + "isDisplayedFieldName ");
return await this.isElementDisplayed(fieldName);
}
async fillName(value) {
logger.info(this.name + "fillName with value=" + value);
return await this.clearField(fieldName) &&
await super.fillWithWait(fieldName, value);
}
async fillTicker(value) {
logger.info(this.name + "fillTicker with value=" + value);
return await super.clearField(fieldTicker) &&
await super.fillWithWait(fieldTicker, value);
}
async fillDecimals(value) {
logger.info(this.name + "fillDecimals with value=" + value);
return await super.clearField(fieldDecimals)
&& await super.fillWithWait(fieldDecimals, value);
}
async fillSupply(value) {
logger.info(this.name + "fillSupply with value=" + value);
return await super.clearField(fieldSupply)
&& await super.fillWithWait(fieldSupply, value);
}
async clickButtonContinue() {
logger.info(this.name + "clickButtonContinue ");
return await super.clickWithWait(buttonContinue);
}
async scrollDownUntilButtonContinueDislayed() {
logger.info(this.name + "scrollDownUntilButtonContinueDislayed ");
try {
await this.pressKey(key.TAB, 5);
return true;
}
catch (err) {
console.log("Error: " + err);
return false;
}
}
async isDisplayedButtonContinue() {
logger.info(this.name + "isDisplayedButtonContinue ");
return await super.isElementDisplayed(buttonContinue);
}
async isDisplayedWarningName() {
logger.info(this.name + "isDisplayedWarningName ");
return (await this.initWarnings() !== null) &&
(await this.getTextForElement(this.warningName) !== "");
}
async isDisplayedWarningTicker() {
logger.info(this.name + "isDisplayedWarningTicker ");
return false;
return (await this.initWarnings() !== null) &&
(await this.getTextForElement(this.warningTicker) !== "");
}
async isDisplayedWarningDecimals() {
logger.info(this.name + "isDisplayedWarningDecimals ");
return (await this.initWarnings() !== null) &&
(await this.getTextForElement(this.warningDecimals) !== "");
}
async isDisplayedWarningSupply() {
logger.info(this.name + "isDisplayedWarningSupply ");
return (await this.initWarnings() !== null) &&
(await this.getTextForElement(this.warningSupply) !== "");
}
async getFieldDecimals() {
logger.info(this.name + "getFieldDecimals ");
return super.getAttribute(fieldDecimals, "value");
}
async isDisabledDecimals() {
logger.info(this.name + "isDisabledDecimals ");
return await super.isElementDisabled(fieldDecimals);
}
async fillPage(crowdsale) {
logger.info(this.name + "fillPage ");
return await this.fillName(crowdsale.name) &&
await this.fillTicker(crowdsale.ticker) &&
await this.fillDecimals(crowdsale.decimals) &&
((crowdsale.totalSupply !== undefined) ? await this.fillSupply(crowdsale.totalSupply) : true);
}
async isDisplayedFieldSupply() {
logger.info(this.name + "isDisplayedFieldSupply ");
return await super.isElementDisplayed(fieldSupply);
}
}
module.exports.WizardStep2 = WizardStep2;