| 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); | |
| }); |