Skip to content

Commit 9b9286a

Browse files
committed
Add test for resolveQuerySuiteAlias
1 parent af32bc6 commit 9b9286a

File tree

6 files changed

+70
-8
lines changed

6 files changed

+70
-8
lines changed

lib/analyze.js

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

lib/analyze.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/analyze.test.js

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

lib/analyze.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/analyze.test.ts

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@ import test from "ava";
55
import * as sinon from "sinon";
66

77
import * as actionsUtil from "./actions-util";
8-
import { exportedForTesting, runQueries } from "./analyze";
8+
import {
9+
exportedForTesting,
10+
runQueries,
11+
defaultSuites,
12+
resolveQuerySuiteAlias,
13+
} from "./analyze";
914
import { setCodeQL } from "./codeql";
1015
import { Feature } from "./feature-flags";
1116
import { Language } from "./languages";
@@ -320,3 +325,25 @@ test("getDiffRanges: malformed thunk header", async (t) => {
320325
const diffRanges = runGetDiffRanges(2, ["@@ 30 +50,2 @@", "+1", "+2"]);
321326
t.deepEqual(diffRanges, undefined);
322327
});
328+
329+
test("resolveQuerySuiteAlias", (t) => {
330+
// default query suite names should resolve to something language-specific ending in `.qls`.
331+
for (const suite of defaultSuites) {
332+
const resolved = resolveQuerySuiteAlias(Language.go, suite);
333+
t.assert(
334+
resolved.endsWith(".qls"),
335+
"Resolved default suite doesn't end in .qls",
336+
);
337+
t.assert(
338+
resolved.indexOf(Language.go) >= 0,
339+
"Resolved default suite doesn't contain language name",
340+
);
341+
}
342+
343+
// other inputs should be returned unchanged
344+
const names = ["foo", "bar", "codeql/[email protected]"];
345+
346+
for (const name of names) {
347+
t.deepEqual(resolveQuerySuiteAlias(Language.go, name), name);
348+
}
349+
});

src/analyze.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,15 +561,27 @@ extensions:
561561
return diffRangeDir;
562562
}
563563

564-
const defaultSuites: Set<string> = new Set([
564+
// A set of default query suite names that are understood by the CLI.
565+
export const defaultSuites: Set<string> = new Set([
565566
"security-experimental",
566567
"security-extended",
567568
"security-and-quality",
568569
"code-quality",
569570
"code-scanning",
570571
]);
571572

572-
function resolveQuerySuiteAlias(language: Language, query: string): string {
573+
/**
574+
* If `query` is the name of a default query suite, it is resolved into the corresponding
575+
* query suite name for the given `language`. Otherwise, `query` is returned as is.
576+
*
577+
* @param language The language for which to resolve the default query suite name.
578+
* @param query The string that potentially contains the name of a default query suite.
579+
* @returns Returns the resolved query suite name, or the unmodified input.
580+
*/
581+
export function resolveQuerySuiteAlias(
582+
language: Language,
583+
query: string,
584+
): string {
573585
if (defaultSuites.has(query)) {
574586
return `${language}-${query}.qls`;
575587
}

0 commit comments

Comments
 (0)