diff options
author | Nate Sesti <33237525+sestinj@users.noreply.github.com> | 2023-08-07 19:32:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-07 19:32:55 -0700 |
commit | de1bea106850c6ad4f7d6447faa434b953a462e8 (patch) | |
tree | 9c270065157e7611519ef2af8ff1e272a4ac728b /extension/src/test-runner/mochaRunner.ts | |
parent | 34157ba9c6de24a5321b81716d31bc89e8b96471 (diff) | |
parent | d8f5f102f6f91487be0281316e581858ec4ca260 (diff) | |
download | sncontinue-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.ts | 39 |
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); + } + }); +} |