summaryrefslogtreecommitdiff
path: root/extension/src/test-runner/mochaRunner.ts
diff options
context:
space:
mode:
authorNate Sesti <33237525+sestinj@users.noreply.github.com>2023-08-07 19:32:55 -0700
committerGitHub <noreply@github.com>2023-08-07 19:32:55 -0700
commitde1bea106850c6ad4f7d6447faa434b953a462e8 (patch)
tree9c270065157e7611519ef2af8ff1e272a4ac728b /extension/src/test-runner/mochaRunner.ts
parent34157ba9c6de24a5321b81716d31bc89e8b96471 (diff)
parentd8f5f102f6f91487be0281316e581858ec4ca260 (diff)
downloadsncontinue-de1bea106850c6ad4f7d6447faa434b953a462e8.tar.gz
sncontinue-de1bea106850c6ad4f7d6447faa434b953a462e8.tar.bz2
sncontinue-de1bea106850c6ad4f7d6447faa434b953a462e8.zip
Merge pull request #356 from bra1nDump/fix-testing
Fixed Mocha tests + added debugging configurations to vscode
Diffstat (limited to 'extension/src/test-runner/mochaRunner.ts')
-rw-r--r--extension/src/test-runner/mochaRunner.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/extension/src/test-runner/mochaRunner.ts b/extension/src/test-runner/mochaRunner.ts
new file mode 100644
index 00000000..95fcbc5e
--- /dev/null
+++ b/extension/src/test-runner/mochaRunner.ts
@@ -0,0 +1,39 @@
+import * as path from "path";
+import Mocha from "mocha";
+import * as glob from "glob";
+
+export function run() {
+ // Avoid timing out when stopping on breakpoints during debugging in VSCode
+ const timeoutOption = process.env.MOCHA_TIMEOUT ? parseInt(process.env.MOCHA_TIMEOUT) : undefined;
+
+ // Create the mocha test
+ const mocha = new Mocha({
+ ui: "tdd",
+ color: true,
+ timeout: timeoutOption,
+ });
+
+ // See esbuild.test.mjs for more details
+ // Assumes this file is in out/test-runner/mochaRunner.js
+ const compiledTestSuitesDirectory = path.resolve(__dirname, "../test-suites");
+
+ glob.sync("**/**.test.js", { cwd: compiledTestSuitesDirectory }).forEach((file) => {
+ mocha.addFile(path.resolve(compiledTestSuitesDirectory, file));
+ });
+
+ return new Promise<void>((c, e) => {
+ try {
+ // Run the mocha test
+ mocha.run((failures) => {
+ if (failures > 0) {
+ e(new Error(`${failures} tests failed.`));
+ } else {
+ c();
+ }
+ });
+ } catch (err) {
+ console.error(err);
+ e(err);
+ }
+ });
+}