2023-08-06 01:23:45 +03:00
|
|
|
const path = require('path');
|
|
|
|
const Mocha = require('mocha');
|
|
|
|
const glob = require('glob');
|
2021-03-22 02:27:33 +03:00
|
|
|
|
2023-08-06 01:23:45 +03:00
|
|
|
function run() {
|
2021-03-22 02:27:33 +03:00
|
|
|
// Create the mocha test
|
|
|
|
const mocha = new Mocha({
|
|
|
|
ui: 'tdd',
|
|
|
|
color: true
|
|
|
|
});
|
|
|
|
|
|
|
|
const testsRoot = path.resolve(__dirname, '..');
|
|
|
|
|
|
|
|
return new Promise((c, e) => {
|
|
|
|
glob('**/**.test.js', { cwd: testsRoot }, (err, files) => {
|
|
|
|
if (err) {
|
|
|
|
return e(err);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Add files to the test suite
|
|
|
|
files.forEach(f => mocha.addFile(path.resolve(testsRoot, f)));
|
|
|
|
|
|
|
|
try {
|
|
|
|
// Run the mocha test
|
|
|
|
mocha.run(failures => {
|
|
|
|
if (failures > 0) {
|
|
|
|
e(new Error(`${failures} tests failed.`));
|
|
|
|
} else {
|
|
|
|
c();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} catch (err) {
|
|
|
|
console.error(err);
|
|
|
|
e(err);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
2023-08-06 01:23:45 +03:00
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
run
|
|
|
|
};
|