wagtail/client/tests/integration/PuppeteerEnvironment.js

49 wiersze
1.2 KiB
JavaScript
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

const { readFile } = require('fs').promises;
const os = require('os');
const path = require('path');
const puppeteer = require('puppeteer');
const NodeEnvironment = require('jest-environment-node');
const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup');
/**
* Custom Puppeteer environment as documented on https://jestjs.io/docs/puppeteer.
* We dont use jest-puppeteer because its unreliable.
*/
class PuppeteerEnvironment extends NodeEnvironment {
async setup() {
await super.setup();
// get the wsEndpoint
const wsEndpoint = await readFile(path.join(DIR, 'wsEndpoint'), 'utf8');
if (!wsEndpoint) {
throw new Error('wsEndpoint not found');
}
this.global.TEST_ORIGIN =
process.env.TEST_ORIGIN ?? 'http://localhost:8000';
// connect to puppeteer
this.global.browser = await puppeteer.connect({
browserWSEndpoint: wsEndpoint,
defaultViewport: {
width: 1024,
height: 768,
},
});
this.global.page = await this.global.browser.newPage();
}
async teardown() {
await this.global.page.close();
await super.teardown();
}
getVmContext() {
return super.getVmContext();
}
}
module.exports = PuppeteerEnvironment;