mirror of
https://github.com/github/codeql-action.git
synced 2026-01-01 04:00:24 +08:00
59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
import test from "ava";
|
|
import * as sinon from "sinon";
|
|
|
|
import * as api from "../api-client";
|
|
import { getRunnerLogger } from "../logging";
|
|
import { parseRepositoryNwo } from "../repository";
|
|
import { setupTests } from "../testing-utils";
|
|
|
|
import * as properties from "./properties";
|
|
|
|
setupTests(test);
|
|
|
|
test("loadPropertiesFromApi throws if response data is not an array", async (t) => {
|
|
sinon.stub(api, "getRepositoryProperties").resolves({
|
|
headers: {},
|
|
status: 200,
|
|
url: "",
|
|
data: {},
|
|
});
|
|
const logger = getRunnerLogger(true);
|
|
const mockRepositoryNwo = parseRepositoryNwo("owner/repo");
|
|
await t.throwsAsync(
|
|
properties.loadPropertiesFromApi(logger, mockRepositoryNwo),
|
|
);
|
|
});
|
|
|
|
test("loadPropertiesFromApi throws if response data contains unexpected objects", async (t) => {
|
|
sinon.stub(api, "getRepositoryProperties").resolves({
|
|
headers: {},
|
|
status: 200,
|
|
url: "",
|
|
data: [{}],
|
|
});
|
|
const logger = getRunnerLogger(true);
|
|
const mockRepositoryNwo = parseRepositoryNwo("owner/repo");
|
|
await t.throwsAsync(
|
|
properties.loadPropertiesFromApi(logger, mockRepositoryNwo),
|
|
);
|
|
});
|
|
|
|
test("loadPropertiesFromApi loads known properties", async (t) => {
|
|
sinon.stub(api, "getRepositoryProperties").resolves({
|
|
headers: {},
|
|
status: 200,
|
|
url: "",
|
|
data: [
|
|
{ property_name: "github-codeql-extra-queries", value: "+queries" },
|
|
{ property_name: "unknown-property", value: "something" },
|
|
] satisfies properties.RepositoryProperty[],
|
|
});
|
|
const logger = getRunnerLogger(true);
|
|
const mockRepositoryNwo = parseRepositoryNwo("owner/repo");
|
|
const response = await properties.loadPropertiesFromApi(
|
|
logger,
|
|
mockRepositoryNwo,
|
|
);
|
|
t.deepEqual(response, { "github-codeql-extra-queries": "+queries" });
|
|
});
|