diff options
Diffstat (limited to 'src/tools/rust-analyzer/editors/code/tests/runTests.ts')
| -rw-r--r-- | src/tools/rust-analyzer/editors/code/tests/runTests.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/editors/code/tests/runTests.ts b/src/tools/rust-analyzer/editors/code/tests/runTests.ts new file mode 100644 index 00000000000..08632ec3b49 --- /dev/null +++ b/src/tools/rust-analyzer/editors/code/tests/runTests.ts @@ -0,0 +1,43 @@ +import * as path from "path"; +import * as fs from "fs"; + +import { runTests } from "@vscode/test-electron"; + +async function main() { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + const extensionDevelopmentPath = path.resolve(__dirname, "../../"); + + // Minimum supported version. + const jsonData = fs.readFileSync(path.join(extensionDevelopmentPath, "package.json")); + const json = JSON.parse(jsonData.toString()); + let minimalVersion: string = json.engines.vscode; + if (minimalVersion.startsWith("^")) minimalVersion = minimalVersion.slice(1); + + const launchArgs = ["--disable-extensions", extensionDevelopmentPath]; + + // All test suites (either unit tests or integration tests) should be in subfolders. + const extensionTestsPath = path.resolve(__dirname, "./unit/index"); + + // Run tests using the minimal supported version. + await runTests({ + version: minimalVersion, + launchArgs, + extensionDevelopmentPath, + extensionTestsPath, + }); + + // and the latest one + await runTests({ + version: "stable", + launchArgs, + extensionDevelopmentPath, + extensionTestsPath, + }); +} + +main().catch((err) => { + // eslint-disable-next-line no-console + console.error("Failed to run tests", err); + process.exit(1); +}); |
