mirror of
https://github.com/github/codeql-action.git
synced 2026-04-17 12:33:16 +00:00
Add test for resolveQuerySuiteAlias
This commit is contained in:
@@ -5,7 +5,12 @@ import test from "ava";
|
||||
import * as sinon from "sinon";
|
||||
|
||||
import * as actionsUtil from "./actions-util";
|
||||
import { exportedForTesting, runQueries } from "./analyze";
|
||||
import {
|
||||
exportedForTesting,
|
||||
runQueries,
|
||||
defaultSuites,
|
||||
resolveQuerySuiteAlias,
|
||||
} from "./analyze";
|
||||
import { setCodeQL } from "./codeql";
|
||||
import { Feature } from "./feature-flags";
|
||||
import { Language } from "./languages";
|
||||
@@ -320,3 +325,25 @@ test("getDiffRanges: malformed thunk header", async (t) => {
|
||||
const diffRanges = runGetDiffRanges(2, ["@@ 30 +50,2 @@", "+1", "+2"]);
|
||||
t.deepEqual(diffRanges, undefined);
|
||||
});
|
||||
|
||||
test("resolveQuerySuiteAlias", (t) => {
|
||||
// default query suite names should resolve to something language-specific ending in `.qls`.
|
||||
for (const suite of defaultSuites) {
|
||||
const resolved = resolveQuerySuiteAlias(Language.go, suite);
|
||||
t.assert(
|
||||
resolved.endsWith(".qls"),
|
||||
"Resolved default suite doesn't end in .qls",
|
||||
);
|
||||
t.assert(
|
||||
resolved.indexOf(Language.go) >= 0,
|
||||
"Resolved default suite doesn't contain language name",
|
||||
);
|
||||
}
|
||||
|
||||
// other inputs should be returned unchanged
|
||||
const names = ["foo", "bar", "codeql/go-queries@1.0"];
|
||||
|
||||
for (const name of names) {
|
||||
t.deepEqual(resolveQuerySuiteAlias(Language.go, name), name);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -561,7 +561,8 @@ extensions:
|
||||
return diffRangeDir;
|
||||
}
|
||||
|
||||
const defaultSuites: Set<string> = new Set([
|
||||
// A set of default query suite names that are understood by the CLI.
|
||||
export const defaultSuites: Set<string> = new Set([
|
||||
"security-experimental",
|
||||
"security-extended",
|
||||
"security-and-quality",
|
||||
@@ -569,7 +570,18 @@ const defaultSuites: Set<string> = new Set([
|
||||
"code-scanning",
|
||||
]);
|
||||
|
||||
function resolveQuerySuiteAlias(language: Language, query: string): string {
|
||||
/**
|
||||
* If `query` is the name of a default query suite, it is resolved into the corresponding
|
||||
* query suite name for the given `language`. Otherwise, `query` is returned as is.
|
||||
*
|
||||
* @param language The language for which to resolve the default query suite name.
|
||||
* @param query The string that potentially contains the name of a default query suite.
|
||||
* @returns Returns the resolved query suite name, or the unmodified input.
|
||||
*/
|
||||
export function resolveQuerySuiteAlias(
|
||||
language: Language,
|
||||
query: string,
|
||||
): string {
|
||||
if (defaultSuites.has(query)) {
|
||||
return `${language}-${query}.qls`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user