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);
|
|||
}
|
|||
});
|
|||
})
|
|||
}
|