first
This commit is contained in:
78
node_modules/less/test/browser/generator/generate.js
generated
vendored
Normal file
78
node_modules/less/test/browser/generator/generate.js
generated
vendored
Normal file
@ -0,0 +1,78 @@
|
||||
const template = require('./template')
|
||||
let config
|
||||
const fs = require('fs-extra')
|
||||
const path = require('path')
|
||||
const globby = require('globby')
|
||||
const { runner } = require('mocha-headless-chrome')
|
||||
|
||||
|
||||
if (process.argv[2]) {
|
||||
config = require(`./${process.argv[2]}.config`)
|
||||
} else {
|
||||
config = require('./runner.config')
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate templates and run tests
|
||||
*/
|
||||
const tests = []
|
||||
const cwd = process.cwd()
|
||||
const tmpDir = path.join(cwd, 'tmp', 'browser')
|
||||
fs.ensureDirSync(tmpDir)
|
||||
fs.copySync(path.join(cwd, 'test', 'browser', 'common.js'), path.join(tmpDir, 'common.js'))
|
||||
|
||||
let numTests = 0
|
||||
let passedTests = 0
|
||||
let failedTests = 0
|
||||
|
||||
/** Will run the runners in a series */
|
||||
function runSerial(tasks) {
|
||||
var result = Promise.resolve()
|
||||
start = Date.now()
|
||||
tasks.forEach(task => {
|
||||
result = result.then(result => {
|
||||
if (result && result.result && result.result.stats) {
|
||||
const stats = result.result.stats
|
||||
numTests += stats.tests
|
||||
passedTests += stats.passes
|
||||
failedTests += stats.failures
|
||||
}
|
||||
return task()
|
||||
}, err => {
|
||||
console.log(err)
|
||||
failedTests += 1
|
||||
})
|
||||
})
|
||||
return result
|
||||
}
|
||||
|
||||
Object.entries(config).forEach(entry => {
|
||||
const test = entry[1]
|
||||
const paths = globby.sync(test.src)
|
||||
const templateString = template(paths, test.options.helpers, test.options.specs)
|
||||
fs.writeFileSync(path.join(cwd, test.options.outfile), templateString)
|
||||
tests.push(() => {
|
||||
const file = 'http://localhost:8081/' + test.options.outfile
|
||||
console.log(file)
|
||||
return runner({
|
||||
file,
|
||||
timeout: 3500,
|
||||
args: ['disable-web-security']
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
module.exports = () => runSerial(tests).then(() => {
|
||||
if (failedTests > 0) {
|
||||
process.stderr.write(failedTests + ' Failed, ' + passedTests + ' passed\n');
|
||||
} else {
|
||||
process.stdout.write('All Passed ' + passedTests + ' run\n');
|
||||
}
|
||||
if (failedTests) {
|
||||
process.on('exit', function() { process.reallyExit(1); });
|
||||
}
|
||||
process.exit()
|
||||
}, err => {
|
||||
process.stderr.write(err.message);
|
||||
process.exit()
|
||||
})
|
Reference in New Issue
Block a user