53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
|
/*---------------------------------------------------------------------------------------------
|
||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||
|
*--------------------------------------------------------------------------------------------*/
|
||
|
|
||
|
const yaserver = require('yaserver');
|
||
|
const http = require('http');
|
||
|
const cp = require('child_process');
|
||
|
|
||
|
const PORT = 8563;
|
||
|
|
||
|
yaserver.createServer({
|
||
|
rootDir: __dirname
|
||
|
}).then((staticServer) => {
|
||
|
const server = http.createServer((request, response) => {
|
||
|
return staticServer.handle(request, response);
|
||
|
});
|
||
|
server.listen(PORT, '127.0.0.1', () => {
|
||
|
runTests().then(() => {
|
||
|
console.log(`All good`);
|
||
|
process.exit(0);
|
||
|
}, (err) => {
|
||
|
console.error(err);
|
||
|
process.exit(1);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|
||
|
function runTests() {
|
||
|
return (
|
||
|
runTest('chromium')
|
||
|
.then(() => runTest('firefox'))
|
||
|
// .then(() => runTest('webkit'))
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function runTest(browser) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
const proc = cp.spawn('node', ['../../node_modules/mocha/bin/mocha', 'out/*.test.js', '--headless'], {
|
||
|
env: { BROWSER: browser, ...process.env },
|
||
|
stdio: 'inherit'
|
||
|
});
|
||
|
proc.on('error', reject);
|
||
|
proc.on('exit', (code) => {
|
||
|
if (code === 0) {
|
||
|
resolve();
|
||
|
} else {
|
||
|
reject(code);
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
}
|