valleykid 7 лет назад
Родитель
Сommit
58ca12e8e6
3 измененных файлов с 33 добавлено и 24 удалено
  1. 1 1
      package.json
  2. 8 3
      src/e2e/home.e2e.js
  3. 24 20
      src/e2e/login.e2e.js

+ 1 - 1
package.json

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

+ 8 - 3
src/e2e/home.e2e.js

@@ -1,9 +1,14 @@
-import Nightmare from 'nightmare';
+import puppeteer from 'puppeteer';
 
 
 describe('Homepage', () => {
 describe('Homepage', () => {
   it('it should have logo text', async () => {
   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>');
     expect(text).toContain('<h1>Ant Design Pro</h1>');
+    await page.close();
+    browser.close();
   });
   });
 });
 });

+ 24 - 20
src/e2e/login.e2e.js

@@ -1,32 +1,36 @@
-import Nightmare from 'nightmare';
+import puppeteer from 'puppeteer';
 
 
 describe('Login', () => {
 describe('Login', () => {
+  let browser;
   let page;
   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 () => {
   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 () => {
   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>');
     expect(text).toContain('<h1>Ant Design Pro</h1>');
   });
   });
+
+  afterAll(() => browser.close());
 });
 });