diff --git a/.travis.yml b/.travis.yml index 969909f7..f3da52b3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,10 @@ language: node_js dist: trusty -addons: - chrome: stable node_js: - 8 - node env: - NODE_ENV=production -before_install: - - google-chrome-stable --headless --no-sandbox --remote-debugging-port=9222 & install: - npm --production=false install - npm --production=false update diff --git a/package.json b/package.json index 65e0dd4f..213244c3 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "gh-pages": "^1.0.0", "jsdoc": "^3.5.5", "json": "^9.0.4", - "puppeteer": "^2.0.0", + "puppeteer-core": "^2.0.0", "scratch-vm": "0.2.0-prerelease.20191227164934", "tap": "^11.0.0", "travis-after-all": "^1.4.4", diff --git a/test/helper/download-chromium.js b/test/helper/download-chromium.js new file mode 100644 index 00000000..dc475a15 --- /dev/null +++ b/test/helper/download-chromium.js @@ -0,0 +1,24 @@ +const packageJson = require('puppeteer-core/package.json'); +const puppeteer = require('puppeteer-core'); + +const fetcher = puppeteer.createBrowserFetcher(); +const revision = packageJson.puppeteer.chromium_revision; + +/* eslint-disable no-console */ +module.exports = async () => { + const downloadedRevisions = await fetcher.localRevisions(); + if (downloadedRevisions.indexOf(revision) !== -1) { + console.log('Chromium already downloaded'); + return Promise.resolve(); + } + + console.log('Downloading Chromium...'); + return fetcher.download(revision) + .then(() => { + console.log('Downloaded Chromium successfully'); + }) + .catch(error => { + console.error(error); + process.exit(1); + }); +}; diff --git a/test/integration/pick-tests.js b/test/integration/pick-tests.js index 37341fc6..a767ec40 100644 --- a/test/integration/pick-tests.js +++ b/test/integration/pick-tests.js @@ -1,8 +1,10 @@ /* global vm, render, Promise */ -const puppeteer = require('puppeteer'); +const puppeteer = require('puppeteer-core'); const test = require('tap').test; const path = require('path'); +const downloadChromium = require('../helper/download-chromium'); + const indexHTML = path.resolve(__dirname, 'index.html'); const testDir = (...args) => path.resolve(__dirname, 'pick-tests', ...args); @@ -19,6 +21,7 @@ const runFile = async (file, action, page, script) => { // immediately invoked async function to let us wait for each test to finish before starting the next. (async () => { + await downloadChromium(); const browser = await puppeteer.launch(); const page = await browser.newPage(); diff --git a/test/integration/scratch-tests.js b/test/integration/scratch-tests.js index 022841b4..d6cfebfd 100644 --- a/test/integration/scratch-tests.js +++ b/test/integration/scratch-tests.js @@ -1,9 +1,11 @@ /* global vm, Promise */ -const puppeteer = require('puppeteer'); +const puppeteer = require('puppeteer-core'); const test = require('tap').test; const path = require('path'); const fs = require('fs'); +const downloadChromium = require('../helper/download-chromium'); + const indexHTML = path.resolve(__dirname, 'index.html'); const testDir = (...args) => path.resolve(__dirname, 'scratch-tests', ...args); @@ -103,6 +105,7 @@ const testFile = (file, page) => test(file, async t => { // immediately invoked async function to let us wait for each test to finish before starting the next. (async () => { + await downloadChromium(); const browser = await puppeteer.launch(); const page = await browser.newPage();