-
Notifications
You must be signed in to change notification settings - Fork 335
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #572 from alphagov/add-button-shim
Add button shim and setup Puppeteer
- Loading branch information
Showing
8 changed files
with
345 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
const chalk = require('chalk') | ||
const NodeEnvironment = require('jest-environment-node') | ||
const puppeteer = require('puppeteer') | ||
const fs = require('fs') | ||
const os = require('os') | ||
const path = require('path') | ||
|
||
const DIR = path.join(os.tmpdir(), 'jest-puppeteer-global-setup') | ||
|
||
class PuppeteerEnvironment extends NodeEnvironment { | ||
async setup () { | ||
console.log(chalk.yellow('Setup Test Environment.')) | ||
await super.setup() | ||
const wsEndpoint = fs.readFileSync(path.join(DIR, 'wsEndpoint'), 'utf8') | ||
if (!wsEndpoint) { | ||
throw new Error('wsEndpoint not found') | ||
} | ||
this.global.__BROWSER__ = await puppeteer.connect({ | ||
browserWSEndpoint: wsEndpoint | ||
}) | ||
} | ||
|
||
async teardown () { | ||
console.log(chalk.yellow('Teardown Test Environment.')) | ||
await super.teardown() | ||
} | ||
|
||
runScript (script) { | ||
return super.runScript(script) | ||
} | ||
} | ||
|
||
module.exports = PuppeteerEnvironment |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
const chalk = require('chalk') | ||
const puppeteer = require('puppeteer') | ||
const fs = require('fs') | ||
const mkdirp = require('mkdirp') | ||
const os = require('os') | ||
const path = require('path') | ||
const app = require('../../app/app.js') | ||
|
||
const DIR = path.join(os.tmpdir(), 'jest-puppeteer-global-setup') | ||
|
||
module.exports = async function () { | ||
console.log(chalk.green('\nStart server')) | ||
global.__SERVER__ = app.listen(3000) | ||
console.log(chalk.green('Setup Puppeteer'))// | ||
// we use --no-sandbox --disable-setuid-sandbox as a workaround for the | ||
// 'No usable sandbox! Update your kernel' error | ||
// see more https://github.com/Googlechrome/puppeteer/issues/290 | ||
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']}) | ||
global.__BROWSER__ = browser | ||
mkdirp.sync(DIR) | ||
fs.writeFileSync(path.join(DIR, 'wsEndpoint'), browser.wsEndpoint()) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
const chalk = require('chalk') | ||
const rimraf = require('rimraf') | ||
const os = require('os') | ||
const path = require('path') | ||
|
||
const DIR = path.join(os.tmpdir(), 'jest-puppeteer-global-setup') | ||
|
||
module.exports = async function () { | ||
console.log(chalk.green('Teardown Puppeteer')) | ||
await global.__BROWSER__.close() | ||
console.log(chalk.green('Close server')) | ||
await global.__SERVER__.close() | ||
rimraf.sync(DIR) | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.