From c41a10c29331127ee830badddae55f3e27c9a6ea Mon Sep 17 00:00:00 2001 From: vsrs Date: Thu, 21 May 2020 11:34:34 +0300 Subject: Apply suggestions from @Veetaha code review --- editors/code/src/cargo.ts | 14 +++----- editors/code/tests/runTests.ts | 73 +++++++++++++++++++--------------------- editors/code/tests/unit/index.ts | 10 +++--- 3 files changed, 44 insertions(+), 53 deletions(-) diff --git a/editors/code/src/cargo.ts b/editors/code/src/cargo.ts index c3e2e5c05..a55b2f860 100644 --- a/editors/code/src/cargo.ts +++ b/editors/code/src/cargo.ts @@ -25,7 +25,7 @@ export function artifactSpec(args: readonly string[]): ArtifactSpec { switch (cargoArgs[0]) { case "run": cargoArgs[0] = "build"; break; case "test": { - if (cargoArgs.indexOf("--no-run") === -1) { + if (!cargoArgs.includes("--no-run")) { cargoArgs.push("--no-run"); } break; @@ -36,9 +36,7 @@ export function artifactSpec(args: readonly string[]): ArtifactSpec { if (cargoArgs[0] === "test") { // for instance, `crates\rust-analyzer\tests\heavy_tests\main.rs` tests // produce 2 artifacts: {"kind": "bin"} and {"kind": "test"} - result.filter = (artifacts) => { - return artifacts.filter(a => a.isTest); - }; + result.filter = (artifacts) => artifacts.filter(it => it.isTest); } return result; @@ -48,7 +46,7 @@ export class Cargo { constructor(readonly rootFolder: string, readonly output: OutputChannel) { } private async getArtifacts(spec: ArtifactSpec): Promise { - let artifacts: CompilationArtifact[] = []; + const artifacts: CompilationArtifact[] = []; try { await this.runCargo(spec.cargoArgs, @@ -75,11 +73,7 @@ export class Cargo { throw new Error(`Cargo invocation has failed: ${err}`); } - if (spec.filter) { - artifacts = spec.filter(artifacts); - } - - return artifacts; + return spec.filter?.(artifacts) ?? artifacts; } async executableFromArgs(args: readonly string[]): Promise { diff --git a/editors/code/tests/runTests.ts b/editors/code/tests/runTests.ts index 81600f6a8..22df80ad3 100644 --- a/editors/code/tests/runTests.ts +++ b/editors/code/tests/runTests.ts @@ -4,43 +4,40 @@ import * as fs from 'fs'; import { runTests } from 'vscode-test'; async function main() { - try { - // 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"]; - - // 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 - }); - - } catch (err) { - // eslint-disable-next-line no-console - console.error('Failed to run tests', err); - process.exit(1); - } + // 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"]; + + // 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(); +main().catch(err => { + // eslint-disable-next-line no-console + console.error('Failed to run tests', err); + process.exit(1); +}); diff --git a/editors/code/tests/unit/index.ts b/editors/code/tests/unit/index.ts index 1deb1c403..5165720b4 100644 --- a/editors/code/tests/unit/index.ts +++ b/editors/code/tests/unit/index.ts @@ -11,10 +11,10 @@ export function run(): Promise { const testsRoot = __dirname; - return new Promise((c, e) => { + return new Promise((resolve, reject) => { glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { if (err) { - return e(err); + return reject(err); } // Add files to the test suite @@ -25,13 +25,13 @@ export function run(): Promise { mocha.timeout(100000); mocha.run(failures => { if (failures > 0) { - e(new Error(`${failures} tests failed.`)); + reject(new Error(`${failures} tests failed.`)); } else { - c(); + resolve(); } }); } catch (err) { - e(err); + reject(err); } }); }); -- cgit v1.2.3