Apply suggestions from @Veetaha code review

This commit is contained in:
vsrs 2020-05-21 11:34:34 +03:00
parent 8ee40ccbe9
commit c41a10c293
3 changed files with 39 additions and 48 deletions

View file

@ -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<CompilationArtifact[]> {
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<string> {

View file

@ -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, '../../');
// 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);
// 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"];
const launchArgs = ["--disable-extensions"];
// All test suites (either unit tests or integration tests) should be in subfolders.
const extensionTestsPath = path.resolve(__dirname, './unit/index');
// 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
});
// 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);
}
// 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);
});

View file

@ -11,10 +11,10 @@ export function run(): Promise<void> {
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<void> {
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);
}
});
});