From b58f84626f2976e6dd7f9dad6627e21b352dee84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Sun, 25 Aug 2019 17:50:46 +0200 Subject: Switch to `@types/vscode` and `vscode-test` 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. --- editors/code/src/test/index.ts | 22 -------------- editors/code/src/test/runTest.ts | 22 ++++++++++++++ editors/code/src/test/utils/index.ts | 49 ++++++++++++++++++++++++++++++ editors/code/src/utils/diagnostics/rust.ts | 2 +- 4 files changed, 72 insertions(+), 23 deletions(-) delete mode 100644 editors/code/src/test/index.ts create mode 100644 editors/code/src/test/runTest.ts create mode 100644 editors/code/src/test/utils/index.ts (limited to 'editors/code/src') 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 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -import * as testRunner from 'vscode/lib/testrunner'; - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'bdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true // colored output from test results -}); - -module.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 @@ +import * as path from 'path'; + +import { runTests } from 'vscode-test'; + +async function main() { + try { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + const extensionDevelopmentPath = path.resolve(__dirname, '../../'); + + // The path to the extension test runner script + // Passed to --extensionTestsPath + const extensionTestsPath = path.resolve(__dirname, './utils/index'); + + // Download VS Code, unzip it and run the integration test + await runTests({ extensionDevelopmentPath, extensionTestsPath }); + } catch (err) { + process.exit(1); + } +} + +main(); 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 @@ +// +// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING +// +// This file is providing the test runner to use when running extension tests. +// By default the test runner in use is Mocha based. +// +// You can provide your own test runner if you want to override it by exporting +// a function run(testRoot: string, clb: (error:Error) => void) that the extension +// host can call to run the tests. The test runner is expected to use console.log +// to report the results back to the caller. When the tests are finished, return +// a possible error to the callback or null if none. + +import * as glob from 'glob'; +import * as Mocha from 'mocha'; +import * as path from 'path'; + +export function run(): Promise { + // Create the mocha test + const mocha = new Mocha({ + ui: 'bdd' + }); + mocha.useColors(true); + + const testsRoot = __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) { + e(err); + } + }); + }); +} diff --git a/editors/code/src/utils/diagnostics/rust.ts b/editors/code/src/utils/diagnostics/rust.ts index bfb494a3a..1fb1f7b6d 100644 --- a/editors/code/src/utils/diagnostics/rust.ts +++ b/editors/code/src/utils/diagnostics/rust.ts @@ -64,7 +64,7 @@ function mapLevelToSeverity(s: string): vscode.DiagnosticSeverity { * Converts a Rust span to a VsCode location */ function mapSpanToLocation(span: RustDiagnosticSpan): vscode.Location { - const fileName = path.join(vscode.workspace.rootPath!, span.file_name); + const fileName = path.join(vscode.workspace.rootPath || '', span.file_name); const fileUri = vscode.Uri.file(fileName); const range = new vscode.Range( -- cgit v1.2.3