1 | const puppeteer = require('puppeteer')
|
2 | const fs = require('fs')
|
3 | const os = require('os')
|
4 | const path = require('path')
|
5 |
|
6 | const DIR = process.env.DIR || path.join(os.tmpdir(), 'jest_puppeteer_global_setup')
|
7 |
|
8 | module.exports = async function setup() {
|
9 | const headless = process.env.HEADLESS !== 'false'
|
10 | const slowMoValue = Number(process.env.SLOWMO)
|
11 | const options = {
|
12 | args: ['--no-sandbox', '--disable-setuid-sandbox'],
|
13 | headless,
|
14 | }
|
15 | if (!Number.isNaN(slowMoValue) && !headless) {
|
16 | options.slowMo = slowMoValue
|
17 | }
|
18 | const browser = await puppeteer.launch(options)
|
19 |
|
20 | global.SPDT_BROWSER = browser
|
21 |
|
22 | try {
|
23 | fs.mkdirSync(DIR)
|
24 | } catch (e) {
|
25 | if (e.code !== 'EEXIST') {
|
26 | throw e
|
27 | }
|
28 | }
|
29 | fs.writeFileSync(path.join(DIR, 'wsEndpoint'), browser.wsEndpoint())
|
30 | }
|