test(components): migrate e2e tests to puppeteer

references #15803
This commit is contained in:
Brandy Carney
2018-10-05 18:30:24 -04:00
parent 6bc35a306c
commit 0983f95d9f
12 changed files with 114 additions and 161 deletions

View File

@ -1,31 +0,0 @@
'use strict';
const { By, until } = require('selenium-webdriver');
const { register, Page, platforms } = require('../../../../../scripts/e2e');
class E2ETestPage extends Page {
constructor(driver, platform) {
super(driver, `http://localhost:3333/src/components/datetime/test/basic?ionic:mode=${platform}`);
}
async present(buttonId) {
await this.navigate('#content');
this.driver.findElement(By.id(buttonId)).click();
await this.driver.wait(until.elementLocated(By.css('.picker-wrapper')));
return await this.driver.wait(until.elementIsVisible(this.driver.findElement(By.css('.picker-wrapper'))));
}
}
platforms.forEach(platform => {
describe('datetime/basic', () => {
register('should init', driver => {
const page = new E2ETestPage(driver, platform);
return page.navigate('#content');
});
register('should open custom picker', driver => {
const page = new E2ETestPage(driver, platform);
return page.present('customPickerOptions');
});
});
});

View File

@ -0,0 +1,19 @@
import { newE2EPage } from '@stencil/core/testing';
it('datetime: basic', async () => {
const page = await newE2EPage({
url: '/src/components/datetime/test/basic?ionic:animated=false'
});
let compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
const datetime = await page.find('#customPickerOptions');
await datetime.click();
const picker = await page.find('ion-picker');
await picker.waitForVisible();
compare = await page.compareScreenshot('should open custom picker');
expect(compare).toMatchScreenshot();
});

View File

@ -1,31 +0,0 @@
'use strict';
const { By, until } = require('selenium-webdriver');
const { register, Page, platforms } = require('../../../../../scripts/e2e');
class E2ETestPage extends Page {
constructor(driver, platform) {
super(driver, `http://localhost:3333/src/components/datetime/test/standalone?ionic:mode=${platform}`);
}
async present(buttonId) {
await this.navigate('#basic');
this.driver.findElement(By.id(buttonId)).click();
await this.driver.wait(until.elementLocated(By.css('.picker-wrapper')));
return await this.driver.wait(until.elementIsVisible(this.driver.findElement(By.css('.picker-wrapper'))));
}
}
platforms.forEach(platform => {
describe('datetime/standalone', () => {
register('should init', driver => {
const page = new E2ETestPage(driver, platform);
return page.navigate('#basic');
});
register('should open basic picker', driver => {
const page = new E2ETestPage(driver, platform);
return page.present('basic');
});
});
});

View File

@ -0,0 +1,19 @@
import { newE2EPage } from '@stencil/core/testing';
it('datetime: standalone', async () => {
const page = await newE2EPage({
url: '/src/components/datetime/test/standalone?ionic:animated=false'
});
let compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
const datetime = await page.find('#basic');
await datetime.click();
const picker = await page.find('ion-picker');
await picker.waitForVisible();
compare = await page.compareScreenshot('should open basic picker');
expect(compare).toMatchScreenshot();
});

View File

@ -1,30 +0,0 @@
'use strict';
const { By, until } = require('selenium-webdriver');
const { register, Page, platforms } = require('../../../../../scripts/e2e');
class E2ETestPage extends Page {
constructor(driver, platform) {
super(driver, `http://localhost:3333/src/components/select/test/basic?ionic:mode=${platform}`);
}
}
platforms.forEach(platform => {
describe('select/basic', () => {
register('should init', driver => {
const page = new E2ETestPage(driver, platform);
return page.navigate('#gender');
});
register('should open gender single select', driver => {
const page = new E2ETestPage(driver, platform);
return page.present('#gender', { waitFor: '.alert-wrapper' });
});
register('should open custom action sheet select', driver => {
const page = new E2ETestPage(driver, platform);
return page.present('#customSelect', { waitFor: '.action-sheet-wrapper' });
});
});
});

View File

@ -0,0 +1,28 @@
import { newE2EPage } from '@stencil/core/testing';
it('select: basic', async () => {
const page = await newE2EPage({
url: '/src/components/select/test/basic?ionic:animated=false'
});
let compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
let select = await page.find('#gender');
await select.click();
const alert = await page.find('ion-alert');
await alert.waitForVisible();
compare = await page.compareScreenshot('should open gender single select');
expect(compare).toMatchScreenshot();
select = await page.find('#customSelect');
await select.click();
const actionSheet = await page.find('ion-action-sheet');
await actionSheet.waitForVisible();
compare = await page.compareScreenshot('should open custom action sheet select');
expect(compare).toMatchScreenshot();
});

View File

@ -1,25 +0,0 @@
'use strict';
const { By, until } = require('selenium-webdriver');
const { register, Page, platforms } = require('../../../../../scripts/e2e');
class E2ETestPage extends Page {
constructor(driver, platform) {
super(driver, `http://localhost:3333/src/components/select/test/multiple-value?ionic:mode=${platform}`);
}
}
platforms.forEach(platform => {
describe('select/multiple-value', () => {
register('should init', driver => {
const page = new E2ETestPage(driver, platform);
return page.navigate('#toppings');
});
register('should open toppings multiple select', driver => {
const page = new E2ETestPage(driver, platform);
return page.present('#toppings', { waitFor: '.alert-wrapper'});
});
});
});

View File

@ -0,0 +1,19 @@
import { newE2EPage } from '@stencil/core/testing';
it('select: multiple-value', async () => {
const page = await newE2EPage({
url: '/src/components/select/test/multiple-value?ionic:animated=false'
});
let compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
const select = await page.find('#toppings');
await select.click();
const alert = await page.find('ion-alert');
await alert.waitForVisible();
compare = await page.compareScreenshot('should open toppings multiple select');
expect(compare).toMatchScreenshot();
});

View File

@ -1,25 +0,0 @@
'use strict';
const { By, until } = require('selenium-webdriver');
const { register, Page, platforms } = require('../../../../../scripts/e2e');
class E2ETestPage extends Page {
constructor(driver, platform) {
super(driver, `http://localhost:3333/src/components/select/test/single-value?ionic:mode=${platform}`);
}
}
platforms.forEach(platform => {
describe('select/single-value', () => {
register('should init', driver => {
const page = new E2ETestPage(driver, platform);
return page.navigate('#gender');
});
register('should open gender single select', driver => {
const page = new E2ETestPage(driver, platform);
return page.present('#gender', { waitFor: '.alert-wrapper'});
});
});
});

View File

@ -0,0 +1,19 @@
import { newE2EPage } from '@stencil/core/testing';
it('select: single-value', async () => {
const page = await newE2EPage({
url: '/src/components/select/test/single-value?ionic:animated=false'
});
let compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
const select = await page.find('#gender');
await select.click();
const alert = await page.find('ion-alert');
await alert.waitForVisible();
compare = await page.compareScreenshot('should open gender single select');
expect(compare).toMatchScreenshot();
});

View File

@ -1,19 +0,0 @@
'use strict';
const { By, until } = require('selenium-webdriver');
const { register, Page, platforms } = require('../../../../../scripts/e2e');
class E2ETestPage extends Page {
constructor(driver, platform) {
super(driver, `http://localhost:3333/src/components/select/test/standalone?ionic:mode=${platform}`);
}
}
platforms.forEach(platform => {
describe('select/standalone', () => {
register('should init', driver => {
const page = new E2ETestPage(driver, platform);
return page.navigate();
});
});
});

View File

@ -0,0 +1,10 @@
import { newE2EPage } from '@stencil/core/testing';
it('select: standalone', async () => {
const page = await newE2EPage({
url: '/src/components/select/test/standalone?ionic:animated=false'
});
const compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
});