-
Notifications
You must be signed in to change notification settings - Fork 201
/
auto-make-changelog.test.ts
84 lines (68 loc) · 1.81 KB
/
auto-make-changelog.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import { Auto } from "../auto";
import { dummyLog } from "../utils/logger";
import child from "child_process";
jest
.spyOn(child, "execSync")
.mockImplementation()
// @ts-ignore
.mockReturnValue("");
const importMock = jest.fn();
jest.mock("import-cwd", () => (path: string) => importMock(path));
jest.mock("env-ci", () => () => ({ isCi: false, branch: "main" }));
jest.mock("../utils/exec-promise", () => () => Promise.resolve(""));
const defaults = {
owner: "foo",
repo: "bar",
};
process.env.GH_TOKEN = "XXXX";
const search = jest.fn();
jest.mock("cosmiconfig", () => ({
cosmiconfig: () => ({
search,
}),
}));
jest.mock("@octokit/rest", () => {
const Octokit = class MockOctokit {
static plugin = () => Octokit;
authenticate = () => undefined;
search = {
issuesAndPullRequests: () => ({ data: { items: [] } }),
};
repos = {
get: jest.fn().mockReturnValue(Promise.resolve({})),
getLatestRelease: jest.fn().mockReturnValue({ data: { tag_name: "" } }),
};
hook = {
error: () => undefined,
};
};
return { Octokit };
});
// @ts-ignore
jest.mock("gitlog", () => ({
gitlogPromise: () =>
Promise.resolve([
{
rawBody: "foo",
},
{
rawBody: "foo",
},
]),
}));
describe("Auto", () => {
test("should add to changelog", async () => {
const auto = new Auto({
plugins: [],
...defaults,
});
auto.logger = dummyLog();
await auto.loadConfig();
const addToChangelog = jest.fn();
auto.release!.addToChangelog = addToChangelog;
jest.spyOn(auto.release!, "generateReleaseNotes").mockImplementation();
jest.spyOn(auto.release!, "getCommitsInRelease").mockImplementation();
await auto.changelog({ from: "v1.0.0" });
expect(addToChangelog).toHaveBeenCalled();
}, 10000);
});