Browse Source

Nightmare -> puppeteer (#1006)

pull/1031/merge
valleykid 8 years ago
committed by ddcat1115
parent
commit
58ca12e8e6
  1. 2
      package.json
  2. 11
      src/e2e/home.e2e.js
  3. 44
      src/e2e/login.e2e.js

2
package.json

@ -77,7 +77,7 @@
"stylelint-config-standard": "^18.0.0"
},
"optionalDependencies": {
"nightmare": "^2.10.0"
"puppeteer": "^1.1.1"
},
"lint-staged": {
"**/*.{js,jsx}": "lint-staged:js",

11
src/e2e/home.e2e.js

@ -1,9 +1,14 @@
import Nightmare from 'nightmare';
import puppeteer from 'puppeteer';
describe('Homepage', () => {
it('it should have logo text', async () => {
const page = Nightmare().goto('http://localhost:8000');
const text = await page.wait('h1').evaluate(() => document.body.innerHTML).end();
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://localhost:8000');
await page.waitForSelector('h1');
const text = await page.evaluate(() => document.body.innerHTML);
expect(text).toContain('<h1>Ant Design Pro</h1>');
await page.close();
browser.close();
});
});

44
src/e2e/login.e2e.js

@ -1,32 +1,36 @@
import Nightmare from 'nightmare';
import puppeteer from 'puppeteer';
describe('Login', () => {
let browser;
let page;
beforeEach(() => {
page = Nightmare();
page
.goto('http://localhost:8000/')
.evaluate(() => {
window.localStorage.setItem('antd-pro-authority', 'guest');
})
.goto('http://localhost:8000/#/user/login');
beforeAll(async () => {
browser = await puppeteer.launch();
});
beforeEach(async () => {
page = await browser.newPage();
await page.goto('http://localhost:8000/#/user/login');
await page.evaluate(() => window.localStorage.setItem('antd-pro-authority', 'guest'));
});
afterEach(() => page.close());
it('should login with failure', async () => {
await page.type('#userName', 'mockuser')
.type('#password', 'wrong_password')
.click('button[type="submit"]')
.wait('.ant-alert-error') // should display error
.end();
await page.type('#userName', 'mockuser');
await page.type('#password', 'wrong_password');
await page.click('button[type="submit"]');
await page.waitForSelector('.ant-alert-error'); // should display error
});
it('should login successfully', async () => {
const text = await page.type('#userName', 'admin')
.type('#password', '888888')
.click('button[type="submit"]')
.wait('.ant-layout-sider h1') // should display error
.evaluate(() => document.body.innerHTML)
.end();
await page.type('#userName', 'admin');
await page.type('#password', '888888');
await page.click('button[type="submit"]');
await page.waitForSelector('.ant-layout-sider h1'); // should display error
const text = await page.evaluate(() => document.body.innerHTML);
expect(text).toContain('<h1>Ant Design Pro</h1>');
});
afterAll(() => browser.close());
});

Loading…
Cancel
Save