Test node6 on travis (#551)

This patch starts running all puppeteer tests with node6 on travis-ci.
This commit is contained in:
JoelEinbinder 2017-08-25 19:28:49 -07:00 committed by Andrey Lushnikov
parent bd5b4fe963
commit cd81944e66
9 changed files with 31 additions and 54 deletions

View File

@ -1,3 +1,4 @@
third_party/*
utils/doclint/check_public_api/test/
node6/*
node6/*
node6-test/*

1
.gitignore vendored
View File

@ -8,3 +8,4 @@
.vscode
package-lock.json
/node6
/node6-test

View File

@ -11,3 +11,4 @@ node_modules
*.pyc
.vscode
package-lock.json
/node6-test

View File

@ -15,9 +15,8 @@ install:
script:
- 'if [ "$NODE7" = "true" ]; then yarn run lint; fi'
- 'if [ "$NODE7" = "true" ]; then yarn run coverage; fi'
- 'if [ "$NODE6" = "true" ]; then yarn run node6; fi'
- 'if [ "$NODE6" = "true" ]; then yarn run test-node6; fi'
- 'if [ "$NODE6" = "true" ]; then yarn run node6-sanity; fi'
- 'if [ "$NODE6" = "true" ]; then yarn run test-node6-transformer; fi'
- 'if [ "$NODE6" = "true" ]; then yarn run unit-node6; fi'
jobs:
include:
- node_js: "7"

View File

@ -11,15 +11,14 @@
"unit": "jasmine test/test.js",
"debug-unit": "DEBUG_TEST=true node --inspect-brk ./node_modules/.bin/jasmine test/test.js",
"test-doclint": "jasmine utils/doclint/check_public_api/test/test.js && jasmine utils/doclint/preprocessor/test.js",
"test": "npm run lint --silent && npm run coverage && npm run test-doclint && npm run test-node6",
"test": "npm run lint --silent && npm run coverage && npm run test-doclint && npm run test-node6-transformer",
"install": "node install.js",
"lint": "([ \"$CI\" = true ] && eslint --quiet -f codeframe . || eslint .) && npm run doc",
"doc": "node utils/doclint/cli.js",
"coverage": "COVERAGE=true npm run unit",
"node6": "node utils/node6-transform/index.js",
"test-node6": "jasmine utils/node6-transform/test/test.js",
"build": "npm run node6",
"node6-sanity": "jasmine test/sanity.js"
"test-node6-transformer": "jasmine utils/node6-transform/test/test.js",
"build": "node utils/node6-transform/index.js",
"unit-node6": "jasmine node6-test/test.js"
},
"author": "The Chromium Authors",
"license": "SEE LICENSE IN LICENSE",

View File

@ -1,33 +0,0 @@
/**
* Copyright 2017 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
console.log(process.version);
describe('Puppeteer Sanity', function() {
it('should not be insane', function(done) {
const puppeteer = require('..');
puppeteer.launch().then(browser => {
browser.newPage().then(page => {
page.goto('data:text/html,hello').then(() => {
page.evaluate(() => document.body.textContent).then(content => {
expect(content).toBe('hello');
done();
});
});
});
});
});
});

View File

@ -20,6 +20,7 @@ const path = require('path');
const helper = require('../lib/helper');
if (process.env.COVERAGE)
helper.recordPublicAPICoverage();
console.log('Testing on Node', process.version);
const puppeteer = require('..');
const SimpleServer = require('./server/SimpleServer');
const GoldenUtils = require('./golden-utils');

View File

@ -49,6 +49,7 @@ const asyncToGenerator = fn => {
/**
* @param {string} text
* @return {string}
*/
function transformAsyncFunctions(text) {
const edits = [];

View File

@ -19,18 +19,25 @@ const path = require('path');
const removeRecursive = require('rimraf').sync;
const transformAsyncFunctions = require('./TransformAsyncFunctions');
const dirPath = path.join(__dirname, '..', '..', 'lib');
const outPath = path.join(__dirname, '..', '..', 'node6');
const fileNames = fs.readdirSync(dirPath);
const filePaths = fileNames.filter(fileName => fileName.endsWith('.js'));
copyFolder(path.join(__dirname, '..', '..', 'lib'), path.join(__dirname, '..', '..', 'node6'));
copyFolder(path.join(__dirname, '..', '..', 'test'), path.join(__dirname, '..', '..', 'node6-test'));
if (fs.existsSync(outPath))
removeRecursive(outPath);
fs.mkdirSync(outPath);
filePaths.forEach(filePath => {
const content = fs.readFileSync(path.join(dirPath, filePath), 'utf8');
const output = transformAsyncFunctions(content);
fs.writeFileSync(path.resolve(outPath, filePath), output);
});
function copyFolder(source, target) {
if (fs.existsSync(target))
removeRecursive(target);
fs.mkdirSync(target);
fs.readdirSync(source).forEach(file => {
const from = path.join(source, file);
const to = path.join(target, file);
if (fs.lstatSync(from).isDirectory()) {
copyFolder(from, to);
} else {
let text = fs.readFileSync(from);
if (file.endsWith('.js'))
text = transformAsyncFunctions(text.toString()).replace(/require\('\.\.\/lib\//g, `require('../node6/`);
fs.writeFileSync(to, text);
}
});
}