aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src/test
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-08-26 09:07:59 +0100
committerGitHub <[email protected]>2019-08-26 09:07:59 +0100
commit04c2961d0c5493962e948dc8101445cc76f1d460 (patch)
treec848162864e46a65733f1ed06f15cda80d5ed721 /editors/code/src/test
parent1fbe5ffba8fdcdb47a53a06f2fd6a5fd8fc99bf3 (diff)
parentb58f84626f2976e6dd7f9dad6627e21b352dee84 (diff)
Merge #1736
1736: Switch to `@types/vscode` and `vscode-test` r=matklad a=bkchr The old `vscode` package is outdated and it is recommened to switch to these two new packages. This also solves a problem of a missing `.d.ts` for `vscode` in Nixos. Co-authored-by: Bastian Köcher <[email protected]>
Diffstat (limited to 'editors/code/src/test')
-rw-r--r--editors/code/src/test/index.ts22
-rw-r--r--editors/code/src/test/runTest.ts22
-rw-r--r--editors/code/src/test/utils/index.ts49
3 files changed, 71 insertions, 22 deletions
diff --git a/editors/code/src/test/index.ts b/editors/code/src/test/index.ts
deleted file mode 100644
index 6e565c254..000000000
--- a/editors/code/src/test/index.ts
+++ /dev/null
@@ -1,22 +0,0 @@
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
13import * as testRunner from 'vscode/lib/testrunner';
14
15// You can directly control Mocha options by uncommenting the following lines
16// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info
17testRunner.configure({
18 ui: 'bdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.)
19 useColors: true // colored output from test results
20});
21
22module.exports = testRunner;
diff --git a/editors/code/src/test/runTest.ts b/editors/code/src/test/runTest.ts
new file mode 100644
index 000000000..d880d47df
--- /dev/null
+++ b/editors/code/src/test/runTest.ts
@@ -0,0 +1,22 @@
1import * as path from 'path';
2
3import { runTests } from 'vscode-test';
4
5async function main() {
6 try {
7 // The folder containing the Extension Manifest package.json
8 // Passed to `--extensionDevelopmentPath`
9 const extensionDevelopmentPath = path.resolve(__dirname, '../../');
10
11 // The path to the extension test runner script
12 // Passed to --extensionTestsPath
13 const extensionTestsPath = path.resolve(__dirname, './utils/index');
14
15 // Download VS Code, unzip it and run the integration test
16 await runTests({ extensionDevelopmentPath, extensionTestsPath });
17 } catch (err) {
18 process.exit(1);
19 }
20}
21
22main();
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
13import * as glob from 'glob';
14import * as Mocha from 'mocha';
15import * as path from 'path';
16
17export 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}