Add "multiple" report for ML-powered JS query enablement

When multiple ML-powered JS packs are in scope (an unsupported
scenario), the status report is "multiple".
This commit is contained in:
Henry Mercer 2022-02-04 16:37:26 +00:00
parent 9f32fc9b9d
commit 537b2f873a
6 changed files with 37 additions and 13 deletions

11
lib/util.js generated
View file

@ -540,9 +540,14 @@ exports.ML_POWERED_JS_QUERIES_PACK_NAME = "codeql/javascript-experimental-atm-qu
*/ */
function getMlPoweredJsQueriesStatus(config) { function getMlPoweredJsQueriesStatus(config) {
const mlPoweredJsQueryPacks = (config.packs.javascript || []).filter((pack) => pack.packName === exports.ML_POWERED_JS_QUERIES_PACK_NAME); const mlPoweredJsQueryPacks = (config.packs.javascript || []).filter((pack) => pack.packName === exports.ML_POWERED_JS_QUERIES_PACK_NAME);
return mlPoweredJsQueryPacks.length === 1 switch (mlPoweredJsQueryPacks.length) {
? mlPoweredJsQueryPacks[0].version || "latest" case 1:
: "false"; return mlPoweredJsQueryPacks[0].version || "latest";
case 0:
return "false";
default:
return "multiple";
}
} }
exports.getMlPoweredJsQueriesStatus = getMlPoweredJsQueriesStatus; exports.getMlPoweredJsQueriesStatus = getMlPoweredJsQueriesStatus;
//# sourceMappingURL=util.js.map //# sourceMappingURL=util.js.map

File diff suppressed because one or more lines are too long

11
lib/util.test.js generated
View file

@ -208,8 +208,15 @@ const ML_POWERED_JS_STATUS_TESTS = [
[[], "false"], [[], "false"],
[[{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME }], "latest"], [[{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME }], "latest"],
[ [
[{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME, version: "0.0.2" }], [{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME, version: "~0.0.2" }],
"0.0.2", "~0.0.2",
],
[
[
{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME, version: "0.0.1" },
{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME, version: "0.0.2" },
],
"multiple",
], ],
[ [
[ [

File diff suppressed because one or more lines are too long

View file

@ -297,8 +297,15 @@ const ML_POWERED_JS_STATUS_TESTS: Array<[PackWithVersion[], string]> = [
[[], "false"], [[], "false"],
[[{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME }], "latest"], [[{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME }], "latest"],
[ [
[{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME, version: "0.0.2" }], [{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME, version: "~0.0.2" }],
"0.0.2", "~0.0.2",
],
[
[
{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME, version: "0.0.1" },
{ packName: util.ML_POWERED_JS_QUERIES_PACK_NAME, version: "0.0.2" },
],
"multiple",
], ],
[ [
[ [

View file

@ -644,11 +644,16 @@ export const ML_POWERED_JS_QUERIES_PACK_NAME =
* `init-action.ts` would each need to live in their own file. See `analyze-action-env.ts` for an * `init-action.ts` would each need to live in their own file. See `analyze-action-env.ts` for an
* explanation as to why this is. * explanation as to why this is.
*/ */
export function getMlPoweredJsQueriesStatus(config: Config) { export function getMlPoweredJsQueriesStatus(config: Config): string {
const mlPoweredJsQueryPacks = (config.packs.javascript || []).filter( const mlPoweredJsQueryPacks = (config.packs.javascript || []).filter(
(pack) => pack.packName === ML_POWERED_JS_QUERIES_PACK_NAME (pack) => pack.packName === ML_POWERED_JS_QUERIES_PACK_NAME
); );
return mlPoweredJsQueryPacks.length === 1 switch (mlPoweredJsQueryPacks.length) {
? mlPoweredJsQueryPacks[0].version || "latest" case 1:
: "false"; return mlPoweredJsQueryPacks[0].version || "latest";
case 0:
return "false";
default:
return "multiple";
}
} }