96ad8afe1d
* build: fix eslint issues * build: migrate to Node 16
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
// Use custom jest puppeteer preset as described here:
|
|
// jestjs.io/docs/puppeteer#custom-example-without-jest-puppeteer-preset
|
|
// This allows using stealth mode.
|
|
|
|
const { mkdir, writeFile } = require('fs').promises;
|
|
const os = require('os');
|
|
const path = require('path');
|
|
const puppeteer = require('puppeteer-extra');
|
|
|
|
// add stealth plugin and use defaults (all evasion techniques)
|
|
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
|
|
|
|
const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup');
|
|
const jestPuppeteerConfig = require('./jest-puppeteer.config');
|
|
|
|
module.exports = async function globalSetup() {
|
|
puppeteer.use(StealthPlugin());
|
|
const browser = await puppeteer.launch(jestPuppeteerConfig.launch);
|
|
// store the browser instance so we can teardown it later
|
|
// this global is only available in the teardown but not in TestEnvironments
|
|
global.__BROWSER_GLOBAL__ = browser;
|
|
|
|
// use the file system to expose the wsEndpoint for TestEnvironments
|
|
await mkdir(DIR, { recursive: true });
|
|
await writeFile(path.join(DIR, 'wsEndpoint'), browser.wsEndpoint());
|
|
};
|