Skip to content

Commit

Permalink
Showing 6 changed files with 126 additions and 10 deletions.
3 changes: 2 additions & 1 deletion lib/config-utils.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/config-utils.js.map

Large diffs are not rendered by default.

44 changes: 42 additions & 2 deletions lib/config-utils.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/config-utils.test.js.map

Large diffs are not rendered by default.

81 changes: 78 additions & 3 deletions src/config-utils.test.ts
@@ -9,7 +9,7 @@ import * as sinon from "sinon";
import * as api from "./api-client";
import { getCachedCodeQL, setCodeQL } from "./codeql";
import * as configUtils from "./config-utils";
import { createFeatureFlags } from "./feature-flags";
import { createFeatureFlags, FeatureFlag } from "./feature-flags";
import { Language } from "./languages";
import { getRunnerLogger } from "./logging";
import { setupTests } from "./testing-utils";
@@ -1654,5 +1654,80 @@ test(
/"xxx" is not a valid pack/
);

// errors
// input w invalid pack name
async function mlPoweredQueriesMacro(
t: ExecutionContext,
isMlPoweredQueriesFlagEnabled: boolean,
queriesInput: string | undefined,
shouldRunMlPoweredQueries: boolean
) {
return await util.withTmpDir(async (tmpDir) => {
const codeQL = setCodeQL({
async resolveQueries() {
return {
byLanguage: {
javascript: { "fake-query.ql": {} },
},
noDeclaredLanguage: {},
multipleDeclaredLanguages: {},
};
},
});

const { packs } = await configUtils.initConfig(
"javascript",
queriesInput,
undefined,
undefined,
undefined,
false,
{ owner: "github", repo: "example " },
tmpDir,
tmpDir,
codeQL,
tmpDir,
gitHubVersion,
sampleApiDetails,
createFeatureFlags(
isMlPoweredQueriesFlagEnabled
? [FeatureFlag.MlPoweredQueriesEnabled]
: []
),
getRunnerLogger(true)
);
if (shouldRunMlPoweredQueries) {
t.deepEqual(packs as unknown, {
[Language.javascript]: [
{
packName: "codeql/javascript-experimental-atm-queries",
version: clean("0.0.1"),
},
],
});
} else {
t.deepEqual(packs as unknown, {});
}
});
}

mlPoweredQueriesMacro.title = (
_providedTitle: string,
isMlPoweredQueriesFlagEnabled: boolean,
queriesInput: string | undefined,
shouldRunMlPoweredQueries: boolean
) => {
const queriesInputDescription = queriesInput
? `'queries: ${queriesInput}'`
: "default config";

return `ML-powered queries ${
shouldRunMlPoweredQueries ? "are" : "aren't"
} loaded for ${queriesInputDescription} when feature flag is ${
isMlPoweredQueriesFlagEnabled ? "enabled" : "disabled"
}`;
};

// macro, isMlPoweredQueriesFlagEnabled, queriesInput, shouldRunMlPoweredQueries
test(mlPoweredQueriesMacro, false, "security-extended", false);
test(mlPoweredQueriesMacro, true, undefined, false);
test(mlPoweredQueriesMacro, true, "security-extended", true);
test(mlPoweredQueriesMacro, true, "security-and-quality", true);
4 changes: 2 additions & 2 deletions src/config-utils.ts
@@ -7,7 +7,7 @@ import * as semver from "semver";
import * as api from "./api-client";
import { CodeQL, ResolveQueriesOutput } from "./codeql";
import * as externalQueries from "./external-queries";
import { FeatureFlags } from "./feature-flags";
import { FeatureFlag, FeatureFlags } from "./feature-flags";
import { Language, parseLanguage } from "./languages";
import { Logger } from "./logging";
import { RepositoryNwo } from "./repository";
@@ -279,7 +279,7 @@ async function addBuiltinSuiteQueries(
if (
languages.includes("javascript") &&
(found === "security-extended" || found === "security-and-quality") &&
(await featureFlags.getMlPoweredQueriesEnabled())
(await featureFlags.getValue(FeatureFlag.MlPoweredQueriesEnabled))
) {
if (!packs.javascript) {
packs.javascript = [];

0 comments on commit 5602bd5

Please sign in to comment.