-
Notifications
You must be signed in to change notification settings - Fork 0
/
getProjectListing.test.ts
44 lines (39 loc) · 1.75 KB
/
getProjectListing.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { mocked } from "jest-mock";
import { getProjectInfo } from "../src/getProjectInfo";
import { getProjectIssues } from "../src/getProjectIssues";
import { getProjectListing } from "../src/getProjectListing";
import { getProjectVisibility } from "../src/getProjectVisibility";
import type { ProjectInfo } from "../src/interfaces/ProjectInfo";
jest.mock("../src/getProjectInfo");
jest.mock("../src/getProjectIssues");
jest.mock("../src/getProjectVisibility");
const project = { owner: "OWNER", repo: "REPO" };
const info: ProjectInfo = {
name: "NAME",
"short-description": "DESC",
description: "DESCRIPTION",
maintainers: [{ name: "MAINTAINER" }],
links: [{ type: "email", uri: "mailto:test@example.test" }],
};
const issues = [
{ number: 1, title: "1_TITLE", description: "1_DESCRIPTION" },
{ number: 2, title: "2_TITLE", description: "2_DESCRIPTION" },
];
test("getProjectListing gets a value", async () => {
mocked(getProjectInfo).mockResolvedValue(info);
mocked(getProjectIssues).mockResolvedValue(issues);
mocked(getProjectVisibility).mockResolvedValue(true);
await expect(getProjectListing(project)).resolves.toStrictEqual(
Object.assign({}, project, { info, issues })
);
expect(mocked(getProjectInfo).mock.calls.length).toBe(1);
expect(mocked(getProjectInfo).mock.calls[0][0]).toStrictEqual(project);
expect(mocked(getProjectVisibility).mock.calls.length).toBe(1);
expect(mocked(getProjectVisibility).mock.calls[0][0]).toStrictEqual(project);
expect(mocked(getProjectIssues).mock.calls.length).toBe(1);
expect(mocked(getProjectIssues).mock.calls[0][0]).toStrictEqual(project);
expect(mocked(getProjectIssues).mock.calls[0][1]).toBe(true);
expect(mocked(getProjectIssues).mock.calls[0][2]).toEqual(
info["help-issue-label"]
);
});