diff --git a/package.json b/package.json
index ca25c73ff7c4de2779976acd406c0c91848f0bbc..d3fadd79b26257f037b920cd728061f719771de6 100755
--- a/package.json
+++ b/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",
diff --git a/src/e2e/home.e2e.js b/src/e2e/home.e2e.js
index 61b0cd83a89568f5a88364c15196f2ff5b1064e4..1a5d95136f5a7cc0f8739415cae3f13bd4b6b573 100644
--- a/src/e2e/home.e2e.js
+++ b/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('
Ant Design Pro
');
+ await page.close();
+ browser.close();
});
});
diff --git a/src/e2e/login.e2e.js b/src/e2e/login.e2e.js
index 703efc0b9ff83f16cd46c396319656f674b1a0cb..5211a3b49f1d6dca169429871283f89dfc512c92 100644
--- a/src/e2e/login.e2e.js
+++ b/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('Ant Design Pro
');
});
+
+ afterAll(() => browser.close());
});