refactor(e2e-tests): use a page class

Just one way to reduce a lot of repetative code.
This commit is contained in:
Ken Sodemann
2017-10-30 15:41:12 -05:00
parent 094816de01
commit fda7a5a133

View File

@ -6,62 +6,61 @@ const until = webdriver.until;
const register = require('../../../../scripts/register-e2e-test'); const register = require('../../../../scripts/register-e2e-test');
const url = 'http://localhost:3333/src/components/action-sheet/test/basic.html'; class Page {
constructor(driver) {
this.url = 'http://localhost:3333/src/components/action-sheet/test/basic.html';
this.driver = driver;
}
navigate() {
this.driver.navigate().to(this.url);
this.driver.wait(until.elementLocated(By.id('cancelOnly')));
return this.driver.wait(until.elementIsVisible(this.driver.findElement(By.id('cancelOnly'))));
}
present(buttonId) {
this.navigate();
this.driver.findElement(By.id(buttonId)).click();
this.driver.wait(until.elementLocated(By.css('.action-sheet-container')));
return this.driver.wait(until.elementIsVisible(this.driver.findElement(By.css('.action-sheet-container'))));
}
}
describe('action-sheet: basic', () => { describe('action-sheet: basic', () => {
register('navigates', (driver) => { register('navigates', driver => {
driver.navigate().to(url); const page = new Page(driver);
driver.wait(until.elementLocated(By.id('cancelOnly'))); return page.navigate();
return driver.wait(until.elementIsVisible(driver.findElement(By.id('cancelOnly'))));
}); });
describe('present', () => { describe('present', () => {
register('shows basic', (driver) => { register('shows basic', driver => {
driver.navigate().to(url); const page = new Page(driver);
driver.wait(until.elementIsEnabled(driver.findElement(By.id('basic')))); return page.present('basic');
driver.findElement(By.id('basic')).click();
driver.wait(until.elementLocated(By.css('.action-sheet-container')));
return driver.wait(until.elementIsVisible(driver.findElement(By.css('.action-sheet-container'))));
}); });
register('shows noBackdropDismiss', (driver) => { register('shows noBackdropDismiss', (driver) => {
driver.navigate().to(url); const page = new Page(driver);
driver.wait(until.elementIsEnabled(driver.findElement(By.id('noBackdropDismiss')))); return page.present('noBackdropDismiss');
driver.findElement(By.id('noBackdropDismiss')).click();
driver.wait(until.elementLocated(By.css('.action-sheet-container')));
return driver.wait(until.elementIsVisible(driver.findElement(By.css('.action-sheet-container'))));
}); });
register('shows alertFromActionSheet', (driver) => { register('shows alertFromActionSheet', (driver) => {
driver.navigate().to(url); const page = new Page(driver);
driver.wait(until.elementIsEnabled(driver.findElement(By.id('alertFromActionSheet')))); return page.present('alertFromActionSheet');
driver.findElement(By.id('alertFromActionSheet')).click();
driver.wait(until.elementLocated(By.css('.action-sheet-container')));
return driver.wait(until.elementIsVisible(driver.findElement(By.css('.action-sheet-container'))));
}); });
register('shows scrollableOptions', (driver) => { register('shows scrollableOptions', (driver) => {
driver.navigate().to(url); const page = new Page(driver);
driver.wait(until.elementIsEnabled(driver.findElement(By.id('scrollableOptions')))); return page.present('scrollableOptions');
driver.findElement(By.id('scrollableOptions')).click();
driver.wait(until.elementLocated(By.css('.action-sheet-container')));
return driver.wait(until.elementIsVisible(driver.findElement(By.css('.action-sheet-container'))));
}); });
register('shows scrollWithoutCancel', (driver) => { register('shows scrollWithoutCancel', (driver) => {
driver.navigate().to(url); const page = new Page(driver);
driver.wait(until.elementIsEnabled(driver.findElement(By.id('scrollWithoutCancel')))); return page.present('scrollWithoutCancel');
driver.findElement(By.id('scrollWithoutCancel')).click();
driver.wait(until.elementLocated(By.css('.action-sheet-container')));
return driver.wait(until.elementIsVisible(driver.findElement(By.css('.action-sheet-container'))));
}); });
register('shows cancelOnly', (driver) => { register('shows cancelOnly', (driver) => {
driver.navigate().to(url); const page = new Page(driver);
driver.wait(until.elementIsEnabled(driver.findElement(By.id('cancelOnly')))); return page.present('cancelOnly');
driver.findElement(By.id('cancelOnly')).click();
driver.wait(until.elementLocated(By.css('.action-sheet-container')));
return driver.wait(until.elementIsVisible(driver.findElement(By.css('.action-sheet-container'))));
}); });
}); });
}); });