diff options
author | NeonXP <i@neonxp.dev> | 2023-08-06 01:23:45 +0300 |
---|---|---|
committer | NeonXP <i@neonxp.dev> | 2023-08-06 01:29:52 +0300 |
commit | e8563a5e6f431fb953ad738262b5150b8349582d (patch) | |
tree | 519f07c34a79d8f48ca5a2682e08ccb04f5d1b7c /test | |
parent | 7818c08dc67c6916956c50e93e01e0a04010898b (diff) |
fix if err... code action
Diffstat (limited to 'test')
-rw-r--r-- | test/runTest.js | 23 | ||||
-rw-r--r-- | test/suite/extension.test.js | 15 | ||||
-rw-r--r-- | test/suite/index.js | 42 |
3 files changed, 80 insertions, 0 deletions
diff --git a/test/runTest.js b/test/runTest.js new file mode 100644 index 0000000..570e697 --- /dev/null +++ b/test/runTest.js @@ -0,0 +1,23 @@ +const path = require('path'); + +const { runTests } = require('@vscode/test-electron'); + +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 script + // Passed to --extensionTestsPath + const extensionTestsPath = path.resolve(__dirname, './suite/index'); + + // Download VS Code, unzip it and run the integration test + await runTests({ extensionDevelopmentPath, extensionTestsPath }); + } catch (err) { + console.error('Failed to run tests', err); + process.exit(1); + } +} + +main(); diff --git a/test/suite/extension.test.js b/test/suite/extension.test.js new file mode 100644 index 0000000..69ead83 --- /dev/null +++ b/test/suite/extension.test.js @@ -0,0 +1,15 @@ +const assert = require('assert'); + +// You can import and use all API from the 'vscode' module +// as well as import your extension to test it +const vscode = require('vscode'); +// const myExtension = require('../extension'); + +suite('Extension Test Suite', () => { + vscode.window.showInformationMessage('Start all tests.'); + + test('Sample test', () => { + assert.strictEqual(-1, [1, 2, 3].indexOf(5)); + assert.strictEqual(-1, [1, 2, 3].indexOf(0)); + }); +}); diff --git a/test/suite/index.js b/test/suite/index.js new file mode 100644 index 0000000..f216759 --- /dev/null +++ b/test/suite/index.js @@ -0,0 +1,42 @@ +const path = require('path'); +const Mocha = require('mocha'); +const glob = require('glob'); + +function run() { + // Create the mocha test + const mocha = new Mocha({ + ui: 'tdd', + color: true + }); + + const testsRoot = path.resolve(__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) { + console.error(err); + e(err); + } + }); + }); +} + +module.exports = { + run +}; |