Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 02bfe3b

Browse files
committed
Test loading of ML-powered queries
1 parent 81800c8 commit 02bfe3b

6 files changed

+126
-10
lines changed

lib/config-utils.js

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/config-utils.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/config-utils.test.js

Lines changed: 42 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/config-utils.test.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/config-utils.test.ts

Lines changed: 78 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import * as sinon from "sinon";
99
import * as api from "./api-client";
1010
import { getCachedCodeQL, setCodeQL } from "./codeql";
1111
import * as configUtils from "./config-utils";
12-
import { createFeatureFlags } from "./feature-flags";
12+
import { createFeatureFlags, FeatureFlag } from "./feature-flags";
1313
import { Language } from "./languages";
1414
import { getRunnerLogger } from "./logging";
1515
import { setupTests } from "./testing-utils";
@@ -1654,5 +1654,80 @@ test(
16541654
/"xxx" is not a valid pack/
16551655
);
16561656

1657-
// errors
1658-
// input w invalid pack name
1657+
async function mlPoweredQueriesMacro(
1658+
t: ExecutionContext,
1659+
isMlPoweredQueriesFlagEnabled: boolean,
1660+
queriesInput: string | undefined,
1661+
shouldRunMlPoweredQueries: boolean
1662+
) {
1663+
return await util.withTmpDir(async (tmpDir) => {
1664+
const codeQL = setCodeQL({
1665+
async resolveQueries() {
1666+
return {
1667+
byLanguage: {
1668+
javascript: { "fake-query.ql": {} },
1669+
},
1670+
noDeclaredLanguage: {},
1671+
multipleDeclaredLanguages: {},
1672+
};
1673+
},
1674+
});
1675+
1676+
const { packs } = await configUtils.initConfig(
1677+
"javascript",
1678+
queriesInput,
1679+
undefined,
1680+
undefined,
1681+
undefined,
1682+
false,
1683+
{ owner: "github", repo: "example " },
1684+
tmpDir,
1685+
tmpDir,
1686+
codeQL,
1687+
tmpDir,
1688+
gitHubVersion,
1689+
sampleApiDetails,
1690+
createFeatureFlags(
1691+
isMlPoweredQueriesFlagEnabled
1692+
? [FeatureFlag.MlPoweredQueriesEnabled]
1693+
: []
1694+
),
1695+
getRunnerLogger(true)
1696+
);
1697+
if (shouldRunMlPoweredQueries) {
1698+
t.deepEqual(packs as unknown, {
1699+
[Language.javascript]: [
1700+
{
1701+
packName: "codeql/javascript-experimental-atm-queries",
1702+
version: clean("0.0.1"),
1703+
},
1704+
],
1705+
});
1706+
} else {
1707+
t.deepEqual(packs as unknown, {});
1708+
}
1709+
});
1710+
}
1711+
1712+
mlPoweredQueriesMacro.title = (
1713+
_providedTitle: string,
1714+
isMlPoweredQueriesFlagEnabled: boolean,
1715+
queriesInput: string | undefined,
1716+
shouldRunMlPoweredQueries: boolean
1717+
) => {
1718+
const queriesInputDescription = queriesInput
1719+
? `'queries: ${queriesInput}'`
1720+
: "default config";
1721+
1722+
return `ML-powered queries ${
1723+
shouldRunMlPoweredQueries ? "are" : "aren't"
1724+
} loaded for ${queriesInputDescription} when feature flag is ${
1725+
isMlPoweredQueriesFlagEnabled ? "enabled" : "disabled"
1726+
}`;
1727+
};
1728+
1729+
// macro, isMlPoweredQueriesFlagEnabled, queriesInput, shouldRunMlPoweredQueries
1730+
test(mlPoweredQueriesMacro, false, "security-extended", false);
1731+
test(mlPoweredQueriesMacro, true, undefined, false);
1732+
test(mlPoweredQueriesMacro, true, "security-extended", true);
1733+
test(mlPoweredQueriesMacro, true, "security-and-quality", true);

src/config-utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as semver from "semver";
77
import * as api from "./api-client";
88
import { CodeQL, ResolveQueriesOutput } from "./codeql";
99
import * as externalQueries from "./external-queries";
10-
import { FeatureFlags } from "./feature-flags";
10+
import { FeatureFlag, FeatureFlags } from "./feature-flags";
1111
import { Language, parseLanguage } from "./languages";
1212
import { Logger } from "./logging";
1313
import { RepositoryNwo } from "./repository";
@@ -279,7 +279,7 @@ async function addBuiltinSuiteQueries(
279279
if (
280280
languages.includes("javascript") &&
281281
(found === "security-extended" || found === "security-and-quality") &&
282-
(await featureFlags.getMlPoweredQueriesEnabled())
282+
(await featureFlags.getValue(FeatureFlag.MlPoweredQueriesEnabled))
283283
) {
284284
if (!packs.javascript) {
285285
packs.javascript = [];

0 commit comments

Comments
 (0)