Skip to content

Commit 5f3322b

Browse files
authored
feat: support loading page functions from files using webpack (#19)
* feat: support loading page functions directly from files (using webpack) refactor: improve folder structure * chore: remove unused dependency * dont automatically set babel presets if no presets are provided, fallback to using babelrc config * print warning when a page function already exists * if sourceFiles is a string, assume its a glob path * use limit chunk count webpack plugin * prefer finding node_modules relative from dist dir * refactor BrowserError to be a named export * use array index to access first char * use createCacheKey also for parseFunction * increase test coverage * ignore coverage of deprecated method * fix/improve page function tests * determine valid cache correctly * try enabling puppeteer on ci again * always use tib for cache path improve warning msg * fix test
1 parent 6708fbd commit 5f3322b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2154
-390
lines changed

.circleci/config.yml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,19 @@ jobs:
6565
name: Unit Tests
6666
command: yarn test:unit --coverage && yarn coverage
6767

68+
test-e2e-chrome:
69+
docker:
70+
- image: circleci/node:latest-browsers
71+
steps:
72+
- checkout
73+
- attach_workspace:
74+
at: ~/project
75+
- run:
76+
name: E2E Tests
77+
command: yarn test:e2e --coverage && yarn coverage
78+
environment:
79+
BROWSER_STRING: chrome
80+
6881
test-e2e-firefox:
6982
docker:
7083
- image: circleci/node:latest-browsers
@@ -78,7 +91,7 @@ jobs:
7891
environment:
7992
BROWSER_STRING: firefox
8093

81-
test-e2e-chrome:
94+
test-e2e-puppeteer:
8295
docker:
8396
- image: circleci/node:latest-browsers
8497
steps:
@@ -89,7 +102,7 @@ jobs:
89102
name: E2E Tests
90103
command: yarn test:e2e --coverage && yarn coverage
91104
environment:
92-
BROWSER_STRING: chrome/selenium
105+
BROWSER_STRING: puppeteer
93106

94107
test-e2e-browserstack:
95108
docker:
@@ -126,7 +139,8 @@ workflows:
126139
- lint: { requires: [setup] }
127140
- audit: { requires: [setup] }
128141
- test-unit: { requires: [lint] }
129-
- test-e2e-firefox: { requires: [lint] }
130-
- test-e2e-chrome: { requires: [lint] }
131142
- test-e2e-browserstack: { requires: [lint] }
132-
- test-e2e-jsdom: { requires: [lint] }
143+
- test-e2e-chrome: { requires: [lint] }
144+
- test-e2e-firefox: { requires: [lint] }
145+
- test-e2e-jsdom: { requires: [lint] }
146+
- test-e2e-puppeteer: { requires: [lint] }

.eslintignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
node_modules
22
coverage
33
test/fixtures/**
4-
src/browsers.js
4+
src/browsers/index.js

README.md

Lines changed: 1 addition & 3 deletions

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@
3636
"dependencies": {
3737
"@babel/core": "^7.5.5",
3838
"@babel/parser": "^7.5.5",
39+
"babel-loader": "^8.0.6",
3940
"hable": "^1.0.1",
4041
"signal-exit": "^3.0.2",
4142
"tree-kill": "^1.2.1",
42-
"vue-template-compiler": "^2.6.10"
43+
"vue-template-compiler": "^2.6.10",
44+
"webpack": "^4.39.1"
4345
},
4446
"devDependencies": {
4547
"@babel/node": "^7.5.5",

scripts/create-browsers.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const Glob = require('glob')
88
const glob = promisify(Glob)
99

1010
async function main() {
11-
const srcPath = path.resolve(__dirname, '../src/') + '/'
11+
const srcPath = path.resolve(__dirname, '../src/browsers') + '/'
1212
let files = await glob(`${srcPath}/!(utils)/**/*.js`)
1313
files = files
1414
.filter(f => !f.includes('webpage') && !f.includes('logging'))
@@ -25,7 +25,7 @@ async function main() {
2525
`
2626
}, '')
2727

28-
fs.writeFileSync(path.join(__dirname, '../src/browsers.js'), `/**
28+
fs.writeFileSync(path.join(__dirname, '../src/browsers/index.js'), `/**
2929
* THIS FILE IS AUTOMATICALLY GENERATED
3030
* DONT CHANGE ANYTHING MANUALLY
3131
*/

src/browser.js renamed to src/browsers/browser.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import path from 'path'
22
import Hookable from 'hable'
33
import onExit from 'signal-exit'
4-
import BrowserError from './utils/error'
5-
import { Xvfb, StaticServer } from './utils/commands'
6-
import { browsers } from './browsers'
4+
import { Xvfb, StaticServer } from '../commands'
75
import {
86
abstractGuard,
97
loadDependency,
108
isMockedFunction,
119
disableTimers,
1210
enableTimers,
1311
getBrowserConfigFromString,
14-
getBrowserImportFromConfig
15-
} from './utils'
12+
getBrowserImportFromConfig,
13+
BrowserError
14+
} from '../utils'
15+
import { browsers } from '.'
1616

1717
export default class Browser extends Hookable {
1818
constructor(config = {}) {
File renamed without changes.

src/browserstack/local.js renamed to src/browsers/browserstack/local.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import BrowserStackLocal from '../utils/commands/browserstack-local'
1+
import BrowserStackLocal from '../../commands/browserstack-local'
22
import BrowserStackBrowser from './'
33

44
export default class BrowserStackLocalBrowser extends BrowserStackBrowser {

0 commit comments

Comments
 (0)