Skip to content

Commit 7f73f8c

Browse files
committed
Add unit tests for properties module
1 parent 07920e8 commit 7f73f8c

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import test from "ava";
2+
import * as sinon from "sinon";
3+
4+
import * as api from "../api-client";
5+
import { getRunnerLogger } from "../logging";
6+
import { parseRepositoryNwo } from "../repository";
7+
import { setupTests } from "../testing-utils";
8+
9+
import * as properties from "./properties";
10+
11+
setupTests(test);
12+
13+
test("loadPropertiesFromApi throws if response data is not an array", async (t) => {
14+
sinon.stub(api, "getRepositoryProperties").resolves({
15+
headers: {},
16+
status: 200,
17+
url: "",
18+
data: {},
19+
});
20+
const logger = getRunnerLogger(true);
21+
const mockRepositoryNwo = parseRepositoryNwo("owner/repo");
22+
await t.throwsAsync(
23+
properties.loadPropertiesFromApi(logger, mockRepositoryNwo),
24+
);
25+
});
26+
27+
test("loadPropertiesFromApi throws if response data contains unexpected objects", async (t) => {
28+
sinon.stub(api, "getRepositoryProperties").resolves({
29+
headers: {},
30+
status: 200,
31+
url: "",
32+
data: [{}],
33+
});
34+
const logger = getRunnerLogger(true);
35+
const mockRepositoryNwo = parseRepositoryNwo("owner/repo");
36+
await t.throwsAsync(
37+
properties.loadPropertiesFromApi(logger, mockRepositoryNwo),
38+
);
39+
});
40+
41+
test("loadPropertiesFromApi loads known properties", async (t) => {
42+
sinon.stub(api, "getRepositoryProperties").resolves({
43+
headers: {},
44+
status: 200,
45+
url: "",
46+
data: [
47+
{ property_name: "github-codeql-extra-queries", value: "+queries" },
48+
{ property_name: "unknown-property", value: "something" },
49+
] satisfies properties.RepositoryProperty[],
50+
});
51+
const logger = getRunnerLogger(true);
52+
const mockRepositoryNwo = parseRepositoryNwo("owner/repo");
53+
const response = await properties.loadPropertiesFromApi(
54+
logger,
55+
mockRepositoryNwo,
56+
);
57+
t.deepEqual(response, { "github-codeql-extra-queries": "+queries" });
58+
});

0 commit comments

Comments
 (0)