From 1616e0ef9867543ec1b8f360114d40dc3615f57c Mon Sep 17 00:00:00 2001 From: Cornelius Riemenschneider Date: Tue, 28 Jun 2022 10:28:34 +0000 Subject: [PATCH] Simplify tests for the Lua tracer FF in analyze-action. --- lib/analyze.test.js | 97 +++++++++++---------- lib/analyze.test.js.map | 2 +- src/analyze.test.ts | 188 ++++++++++++++++------------------------ 3 files changed, 124 insertions(+), 163 deletions(-) diff --git a/lib/analyze.test.js b/lib/analyze.test.js index 01871b1e04..c124138c94 100644 --- a/lib/analyze.test.js +++ b/lib/analyze.test.js @@ -231,52 +231,53 @@ const stubConfig = { debugDatabaseName: util.DEFAULT_DEBUG_DATABASE_NAME, injectedMlQueries: false, }; -(0, ava_1.default)("createdDBForScannedLanguages() Lua feature flag enabled, but old CLI", async (t) => { - const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); - const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.9.0"); - const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)([feature_flags_1.FeatureFlag.LuaTracerConfigEnabled])); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be absent, but it is present"); - t.false(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be absent, but it is present"); -}); -(0, ava_1.default)("createdDBForScannedLanguages() Lua feature flag disabled, with old CLI", async (t) => { - const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); - const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.9.0"); - const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)([feature_flags_1.FeatureFlag.LuaTracerConfigEnabled])); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be absent, but it is present"); - t.false(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be absent, but it is present"); -}); -(0, ava_1.default)("createdDBForScannedLanguages() Lua feature flag enabled, with new CLI", async (t) => { - const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); - const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.10.0"); - const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)([feature_flags_1.FeatureFlag.LuaTracerConfigEnabled])); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.true(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be present, but is not"); - t.false(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be absent, but it is present"); -}); -(0, ava_1.default)("createdDBForScannedLanguages() Lua feature flag disabled, with new CLI", async (t) => { - const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); - const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.10.0"); - const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)([])); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be absent, but is present"); - t.true(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be present, but is absent"); -}); +for (const options of [ + { + name: "Lua feature flag enabled, but old CLI", + version: "2.9.0", + featureFlags: [feature_flags_1.FeatureFlag.LuaTracerConfigEnabled], + yesFlagSet: false, + noFlagSet: false, + }, + { + name: "Lua feature flag disabled, with old CLI", + version: "2.9.0", + featureFlags: [], + yesFlagSet: false, + noFlagSet: false, + }, + { + name: "Lua feature flag enabled, with new CLI", + version: "2.10.0", + featureFlags: [feature_flags_1.FeatureFlag.LuaTracerConfigEnabled], + yesFlagSet: true, + noFlagSet: false, + }, + { + name: "Lua feature flag disabled, with new CLI", + version: "2.10.0", + featureFlags: [], + yesFlagSet: false, + noFlagSet: true, + }, +]) { + (0, ava_1.default)(`createdDBForScannedLanguages() ${options.name}`, async (t) => { + const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); + const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); + sinon.stub(codeqlObject, "getVersion").resolves(options.version); + const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)(options.featureFlags)); + // call listener on `codeql resolve extractor` + const mockToolRunner = runnerConstructorStub.getCall(0); + mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); + await promise; + if (options.yesFlagSet) + t.true(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be present, but it is absent"); + else + t.false(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be absent, but it is present"); + if (options.noFlagSet) + t.true(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be present, but it is absent"); + else + t.false(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be absent, but it is present"); + }); +} //# sourceMappingURL=analyze.test.js.map \ No newline at end of file diff --git a/lib/analyze.test.js.map b/lib/analyze.test.js.map index 5cf2405624..f52ab899b4 100644 --- a/lib/analyze.test.js.map +++ b/lib/analyze.test.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze.test.js","sourceRoot":"","sources":["../src/analyze.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"analyze.test.js","sourceRoot":"","sources":["../src/analyze.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/analyze.test.ts b/src/analyze.test.ts index 84dd91d32e..1b671caa73 100644 --- a/src/analyze.test.ts +++ b/src/analyze.test.ts @@ -272,118 +272,78 @@ const stubConfig: Config = { injectedMlQueries: false, }; -test("createdDBForScannedLanguages() Lua feature flag enabled, but old CLI", async (t) => { - const runnerConstructorStub = stubToolRunnerConstructor(); - const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.9.0"); +for (const options of [ + { + name: "Lua feature flag enabled, but old CLI", + version: "2.9.0", + featureFlags: [FeatureFlag.LuaTracerConfigEnabled], + yesFlagSet: false, + noFlagSet: false, + }, + { + name: "Lua feature flag disabled, with old CLI", + version: "2.9.0", + featureFlags: [], + yesFlagSet: false, + noFlagSet: false, + }, + { + name: "Lua feature flag enabled, with new CLI", + version: "2.10.0", + featureFlags: [FeatureFlag.LuaTracerConfigEnabled], + yesFlagSet: true, + noFlagSet: false, + }, + { + name: "Lua feature flag disabled, with new CLI", + version: "2.10.0", + featureFlags: [], + yesFlagSet: false, + noFlagSet: true, + }, +]) { + test(`createdDBForScannedLanguages() ${options.name}`, async (t) => { + const runnerConstructorStub = stubToolRunnerConstructor(); + const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); + sinon.stub(codeqlObject, "getVersion").resolves(options.version); - const promise = createdDBForScannedLanguages( - codeqlObject, - stubConfig, - getRunnerLogger(true), - createFeatureFlags([FeatureFlag.LuaTracerConfigEnabled]) - ); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--internal-use-lua-tracing" - ), - "--internal-use-lua-tracing should be absent, but it is present" - ); - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--no-internal-use-lua-tracing" - ), - "--no-internal-use-lua-tracing should be absent, but it is present" - ); -}); - -test("createdDBForScannedLanguages() Lua feature flag disabled, with old CLI", async (t) => { - const runnerConstructorStub = stubToolRunnerConstructor(); - const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.9.0"); - - const promise = createdDBForScannedLanguages( - codeqlObject, - stubConfig, - getRunnerLogger(true), - createFeatureFlags([FeatureFlag.LuaTracerConfigEnabled]) - ); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--internal-use-lua-tracing" - ), - "--internal-use-lua-tracing should be absent, but it is present" - ); - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--no-internal-use-lua-tracing" - ), - "--no-internal-use-lua-tracing should be absent, but it is present" - ); -}); - -test("createdDBForScannedLanguages() Lua feature flag enabled, with new CLI", async (t) => { - const runnerConstructorStub = stubToolRunnerConstructor(); - const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.10.0"); - - const promise = createdDBForScannedLanguages( - codeqlObject, - stubConfig, - getRunnerLogger(true), - createFeatureFlags([FeatureFlag.LuaTracerConfigEnabled]) - ); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.true( - runnerConstructorStub.secondCall.args[1].includes( - "--internal-use-lua-tracing" - ), - "--internal-use-lua-tracing should be present, but is not" - ); - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--no-internal-use-lua-tracing" - ), - "--no-internal-use-lua-tracing should be absent, but it is present" - ); -}); - -test("createdDBForScannedLanguages() Lua feature flag disabled, with new CLI", async (t) => { - const runnerConstructorStub = stubToolRunnerConstructor(); - const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.10.0"); - - const promise = createdDBForScannedLanguages( - codeqlObject, - stubConfig, - getRunnerLogger(true), - createFeatureFlags([]) - ); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--internal-use-lua-tracing" - ), - "--internal-use-lua-tracing should be absent, but is present" - ); - t.true( - runnerConstructorStub.secondCall.args[1].includes( - "--no-internal-use-lua-tracing" - ), - "--no-internal-use-lua-tracing should be present, but is absent" - ); -}); + const promise = createdDBForScannedLanguages( + codeqlObject, + stubConfig, + getRunnerLogger(true), + createFeatureFlags(options.featureFlags) + ); + // call listener on `codeql resolve extractor` + const mockToolRunner = runnerConstructorStub.getCall(0); + mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); + await promise; + if (options.yesFlagSet) + t.true( + runnerConstructorStub.secondCall.args[1].includes( + "--internal-use-lua-tracing" + ), + "--internal-use-lua-tracing should be present, but it is absent" + ); + else + t.false( + runnerConstructorStub.secondCall.args[1].includes( + "--internal-use-lua-tracing" + ), + "--internal-use-lua-tracing should be absent, but it is present" + ); + if (options.noFlagSet) + t.true( + runnerConstructorStub.secondCall.args[1].includes( + "--no-internal-use-lua-tracing" + ), + "--no-internal-use-lua-tracing should be present, but it is absent" + ); + else + t.false( + runnerConstructorStub.secondCall.args[1].includes( + "--no-internal-use-lua-tracing" + ), + "--no-internal-use-lua-tracing should be absent, but it is present" + ); + }); +} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy