diff --git a/helloworld-test-sample/src/test/suite/index.ts b/helloworld-test-sample/src/test/suite/index.ts index 236a4e7f..3728d480 100644 --- a/helloworld-test-sample/src/test/suite/index.ts +++ b/helloworld-test-sample/src/test/suite/index.ts @@ -2,27 +2,38 @@ import * as path from 'path'; import * as Mocha from 'mocha'; import * as glob from 'glob'; -export function run(testsRoot: string, cb: (error: any, failures?: number) => void): void { +export function run(): Promise { // Create the mocha test const mocha = new Mocha({ - ui: 'tdd' + ui: 'tdd', }); - // Use any mocha API mocha.useColors(true); + + const testsRoot = path.resolve(__dirname, '..'); - glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { - if (err) { - return cb(err); - } + return new Promise((c, e) => { + // return e(new Error('Straight failure')); - // Add files to the test suite - files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); + glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { + if (err) { + return e(err); + } - try { - // Run the mocha test - mocha.run(failures => cb(null, failures)); - } catch (err) { - cb(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) { + e(err); + } + }); }); }