vscode/test/monaco/runner.js
2022-02-02 13:18:12 +01:00

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