Add analysis-kinds input and parse it

This commit is contained in:
Michael B. Gale
2025-08-27 18:15:47 +01:00
parent d062f2b421
commit e0104a269f
16 changed files with 169 additions and 6 deletions

36
src/analyses.test.ts Normal file
View File

@@ -0,0 +1,36 @@
import test from "ava";
import {
AnalysisKind,
parseAnalysisKinds,
supportedAnalysisKinds,
} from "./analyses";
import { ConfigurationError } from "./util";
test("All known analysis kinds can be parsed successfully", async (t) => {
for (const analysisKind of supportedAnalysisKinds) {
t.deepEqual(await parseAnalysisKinds(analysisKind), [analysisKind]);
}
});
test("Parsing analysis kinds returns unique results", async (t) => {
const analysisKinds = await parseAnalysisKinds(
"code-scanning,code-quality,code-scanning",
);
t.deepEqual(analysisKinds, [
AnalysisKind.CodeScanning,
AnalysisKind.CodeQuality,
]);
});
test("Parsing an unknown analysis kind fails with a configuration error", async (t) => {
await t.throwsAsync(parseAnalysisKinds("code-scanning,foo"), {
instanceOf: ConfigurationError,
});
});
test("Parsing analysis kinds requires at least one analysis kind", async (t) => {
await t.throwsAsync(parseAnalysisKinds(","), {
instanceOf: ConfigurationError,
});
});