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()); });