Skip to content

Commit 6b7f5a4

Browse files
committed
feat: add spawnd & expect-puppeteer
1 parent 19c1cbb commit 6b7f5a4

38 files changed

+1096
-17
lines changed

.eslintrc.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,17 @@ module.exports = {
88
},
99
env: {
1010
node: true,
11+
jest: true,
12+
browser: true,
13+
},
14+
globals: {
15+
page: true,
16+
browser: true,
17+
expectPage: true,
1118
},
1219
rules: {
1320
'class-methods-use-this': 'off',
21+
'no-shadow': 'off',
1422
'no-param-reassign': 'off',
1523
'no-use-before-define': 'off',
1624
'import/prefer-default-export': 'off',

jest.config.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module.exports = {
2-
globalSetup: './packages/jest-environment-puppeteer/setup',
3-
globalTeardown: './packages/jest-environment-puppeteer/teardown',
2+
globalSetup: './jestConfig/globalSetup',
3+
globalTeardown: './jestConfig/globalTeardown',
44
testEnvironment: './packages/jest-environment-puppeteer',
5+
setupTestFrameworkScriptFile: './packages/expect-puppeteer',
56
}

jestConfig/.eslintrc.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module.exports = {
2+
rules: {
3+
'import/no-extraneous-dependencies': 'off',
4+
},
5+
}

jestConfig/globalSetup.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const waitPort = require('wait-port')
2+
const {
3+
setup: setupPuppeteer,
4+
} = require('../packages/jest-environment-puppeteer')
5+
const spawnd = require('../packages/spawnd')
6+
7+
module.exports = async function setup() {
8+
await setupPuppeteer()
9+
global.app = spawnd('node server.js', {
10+
cwd: __dirname,
11+
env: process.env,
12+
shell: true,
13+
})
14+
await waitPort({ port: 4444, output: 'silent' })
15+
}

jestConfig/globalTeardown.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const {
2+
teardown: teardownPuppeteer,
3+
} = require('../packages/jest-environment-puppeteer')
4+
5+
module.exports = async function teardown() {
6+
await teardownPuppeteer()
7+
if (global.app) global.app.destroy()
8+
}

jestConfig/public/index.html

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Test App</title>
6+
</head>
7+
<body>
8+
<header>This is home!</header>
9+
<a href="/page2.html">Page 2</a>
10+
<select name="my-select">
11+
<option value="">Select an option</option>
12+
<option value="opt1">Option 1</option>
13+
<option value="opt2">Option 2</option>
14+
</select>
15+
<input type="file" />
16+
<form>
17+
<input name="firstName" />
18+
<input name="lastName" />
19+
</form>
20+
<button id="dialog-btn" onclick="window.confirm('Bouh!')">Open dialog</button>
21+
</body>
22+
</html>

jestConfig/public/page2.html

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Test App</title>
6+
</head>
7+
<body>
8+
<header>This is Page 2</header>
9+
<a href="/">Home</a>
10+
</body>
11+
</html>

jestConfig/server.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const path = require('path')
2+
const express = require('express')
3+
4+
const app = express()
5+
6+
app.use(express.static(path.join(__dirname, 'public')))
7+
8+
app.listen(4444)

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"private": true,
3-
"workspaces": ["packages/*"],
3+
"workspaces": [
4+
"packages/*"
5+
],
46
"scripts": {
57
"build": "lerna run build",
68
"ci": "yarn build && yarn lint && yarn test --ci",
@@ -18,6 +20,7 @@
1820
"eslint-config-airbnb-base": "^12.1.0",
1921
"eslint-config-prettier": "^2.9.0",
2022
"eslint-plugin-import": "^2.9.0",
23+
"express": "^4.16.2",
2124
"jest": "^22.4.2",
2225
"lerna": "^2.9.0",
2326
"puppeteer": "^1.1.1",
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/*
2+
!/lib/*.js

0 commit comments

Comments
 (0)