diff options
Diffstat (limited to 'editors/code/src/test/utils')
-rw-r--r-- | editors/code/src/test/utils/index.ts | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/editors/code/src/test/utils/index.ts b/editors/code/src/test/utils/index.ts new file mode 100644 index 000000000..16715a286 --- /dev/null +++ b/editors/code/src/test/utils/index.ts | |||
@@ -0,0 +1,49 @@ | |||
1 | // | ||
2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING | ||
3 | // | ||
4 | // This file is providing the test runner to use when running extension tests. | ||
5 | // By default the test runner in use is Mocha based. | ||
6 | // | ||
7 | // You can provide your own test runner if you want to override it by exporting | ||
8 | // a function run(testRoot: string, clb: (error:Error) => void) that the extension | ||
9 | // host can call to run the tests. The test runner is expected to use console.log | ||
10 | // to report the results back to the caller. When the tests are finished, return | ||
11 | // a possible error to the callback or null if none. | ||
12 | |||
13 | import * as glob from 'glob'; | ||
14 | import * as Mocha from 'mocha'; | ||
15 | import * as path from 'path'; | ||
16 | |||
17 | export function run(): Promise<void> { | ||
18 | // Create the mocha test | ||
19 | const mocha = new Mocha({ | ||
20 | ui: 'bdd' | ||
21 | }); | ||
22 | mocha.useColors(true); | ||
23 | |||
24 | const testsRoot = __dirname; | ||
25 | |||
26 | return new Promise((c, e) => { | ||
27 | glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { | ||
28 | if (err) { | ||
29 | return e(err); | ||
30 | } | ||
31 | |||
32 | // Add files to the test suite | ||
33 | files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); | ||
34 | |||
35 | try { | ||
36 | // Run the mocha test | ||
37 | mocha.run(failures => { | ||
38 | if (failures > 0) { | ||
39 | e(new Error(`${failures} tests failed.`)); | ||
40 | } else { | ||
41 | c(); | ||
42 | } | ||
43 | }); | ||
44 | } catch (err) { | ||
45 | e(err); | ||
46 | } | ||
47 | }); | ||
48 | }); | ||
49 | } | ||