apify-test-tools 0.10.1-beta.2 → 0.10.1-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/actions/checkout-restore-dependencies/action.yaml +4 -3
- package/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +7 -2
- package/.github/workflows/public_platform-tests.yaml +0 -1
- package/.github/workflows-package-version +1 -1
- package/CHANGELOG.md +6 -0
- package/CONTRIBUTING.md +13 -3
- package/README.md +2 -2
- package/bin/build-from-local.ts +8 -7
- package/bin/build.ts +22 -21
- package/bin/diff-changes.ts +11 -10
- package/bin/diff-json-schema.ts +14 -12
- package/bin/git.ts +89 -47
- package/bin/logger.ts +23 -0
- package/bin/main.ts +44 -38
- package/bin/output.ts +6 -0
- package/bin/slack.ts +8 -7
- package/bin/test-report.ts +22 -21
- package/bin/types.ts +0 -1
- package/bin/utils/config/actor-json.ts +84 -0
- package/bin/utils/config/load-config.ts +46 -46
- package/bin/utils/config/parser.ts +33 -28
- package/bin/utils/config/structures/base.ts +7 -0
- package/bin/utils/json-file.ts +11 -14
- package/bin/utils/path/repo-relative.ts +156 -0
- package/bin/utils/path/schema.ts +18 -0
- package/bin/utils.ts +63 -44
- package/dist/bin/build-from-local.d.ts +1 -1
- package/dist/bin/build-from-local.d.ts.map +1 -1
- package/dist/bin/build-from-local.js +8 -7
- package/dist/bin/build-from-local.js.map +1 -1
- package/dist/bin/build.d.ts.map +1 -1
- package/dist/bin/build.js +22 -21
- package/dist/bin/build.js.map +1 -1
- package/dist/bin/diff-changes.d.ts +1 -1
- package/dist/bin/diff-changes.d.ts.map +1 -1
- package/dist/bin/diff-changes.js +9 -8
- package/dist/bin/diff-changes.js.map +1 -1
- package/dist/bin/diff-json-schema.d.ts +1 -1
- package/dist/bin/diff-json-schema.d.ts.map +1 -1
- package/dist/bin/diff-json-schema.js +13 -12
- package/dist/bin/diff-json-schema.js.map +1 -1
- package/dist/bin/git.d.ts +10 -10
- package/dist/bin/git.d.ts.map +1 -1
- package/dist/bin/git.js +78 -37
- package/dist/bin/git.js.map +1 -1
- package/dist/bin/logger.d.ts +11 -0
- package/dist/bin/logger.d.ts.map +1 -0
- package/dist/bin/logger.js +20 -0
- package/dist/bin/logger.js.map +1 -0
- package/dist/bin/main.d.ts +1 -1
- package/dist/bin/main.js +44 -38
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/output.d.ts +3 -0
- package/dist/bin/output.d.ts.map +1 -0
- package/dist/bin/output.js +6 -0
- package/dist/bin/output.js.map +1 -0
- package/dist/bin/slack.d.ts.map +1 -1
- package/dist/bin/slack.js +8 -7
- package/dist/bin/slack.js.map +1 -1
- package/dist/bin/test-report.d.ts.map +1 -1
- package/dist/bin/test-report.js +22 -21
- package/dist/bin/test-report.js.map +1 -1
- package/dist/bin/types.d.ts +0 -1
- package/dist/bin/types.d.ts.map +1 -1
- package/dist/bin/utils/config/actor-json.d.ts +14 -0
- package/dist/bin/utils/config/actor-json.d.ts.map +1 -0
- package/dist/bin/utils/config/actor-json.js +60 -0
- package/dist/bin/utils/config/actor-json.js.map +1 -0
- package/dist/bin/utils/config/load-config.d.ts +12 -2
- package/dist/bin/utils/config/load-config.d.ts.map +1 -1
- package/dist/bin/utils/config/load-config.js +32 -31
- package/dist/bin/utils/config/load-config.js.map +1 -1
- package/dist/bin/utils/config/parser.d.ts +4 -12
- package/dist/bin/utils/config/parser.d.ts.map +1 -1
- package/dist/bin/utils/config/parser.js +24 -23
- package/dist/bin/utils/config/parser.js.map +1 -1
- package/dist/bin/utils/config/structures/base.d.ts +5 -0
- package/dist/bin/utils/config/structures/base.d.ts.map +1 -1
- package/dist/bin/utils/config/structures/base.js.map +1 -1
- package/dist/bin/utils/json-file.d.ts +3 -2
- package/dist/bin/utils/json-file.d.ts.map +1 -1
- package/dist/bin/utils/json-file.js +8 -13
- package/dist/bin/utils/json-file.js.map +1 -1
- package/dist/bin/utils/path/repo-relative.d.ts +35 -0
- package/dist/bin/utils/path/repo-relative.d.ts.map +1 -0
- package/dist/bin/utils/path/repo-relative.js +137 -0
- package/dist/bin/utils/path/repo-relative.js.map +1 -0
- package/dist/bin/utils/path/schema.d.ts +7 -0
- package/dist/bin/utils/path/schema.d.ts.map +1 -0
- package/dist/bin/utils/path/schema.js +16 -0
- package/dist/bin/utils/path/schema.js.map +1 -0
- package/dist/bin/utils.d.ts +14 -6
- package/dist/bin/utils.d.ts.map +1 -1
- package/dist/bin/utils.js +52 -36
- package/dist/bin/utils.js.map +1 -1
- package/dist/test/unit/bin/build-from-local.test.js +4 -40
- package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
- package/dist/test/unit/bin/diff-changes.test.js +97 -96
- package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
- package/dist/test/unit/bin/diff.test.js +52 -48
- package/dist/test/unit/bin/diff.test.js.map +1 -1
- package/dist/test/unit/bin/git-command.test.d.ts +2 -0
- package/dist/test/unit/bin/git-command.test.d.ts.map +1 -0
- package/dist/test/unit/bin/git-command.test.js +54 -0
- package/dist/test/unit/bin/git-command.test.js.map +1 -0
- package/dist/test/unit/bin/git.test.js +211 -94
- package/dist/test/unit/bin/git.test.js.map +1 -1
- package/dist/test/unit/bin/logger.test.d.ts +2 -0
- package/dist/test/unit/bin/logger.test.d.ts.map +1 -0
- package/dist/test/unit/bin/logger.test.js +44 -0
- package/dist/test/unit/bin/logger.test.js.map +1 -0
- package/dist/test/unit/bin/logging.test.d.ts +2 -0
- package/dist/test/unit/bin/logging.test.d.ts.map +1 -0
- package/dist/test/unit/bin/logging.test.js +43 -0
- package/dist/test/unit/bin/logging.test.js.map +1 -0
- package/dist/test/unit/bin/utils/config/load-config.test.js +47 -25
- package/dist/test/unit/bin/utils/config/load-config.test.js.map +1 -1
- package/dist/test/unit/bin/utils/config/parser.test.js +64 -19
- package/dist/test/unit/bin/utils/config/parser.test.js.map +1 -1
- package/dist/test/unit/bin/utils/files.test.js +16 -27
- package/dist/test/unit/bin/utils/files.test.js.map +1 -1
- package/dist/test/unit/bin/utils/path/repo-relative.test.d.ts +2 -0
- package/dist/test/unit/bin/utils/path/repo-relative.test.d.ts.map +1 -0
- package/dist/test/unit/bin/utils/path/repo-relative.test.js +196 -0
- package/dist/test/unit/bin/utils/path/repo-relative.test.js.map +1 -0
- package/dist/test/unit/bin/utils/path/schema.test.d.ts +2 -0
- package/dist/test/unit/bin/utils/path/schema.test.d.ts.map +1 -0
- package/dist/test/unit/bin/utils/path/schema.test.js +52 -0
- package/dist/test/unit/bin/utils/path/schema.test.js.map +1 -0
- package/dist/test/unit/should-built-and-test.test.js +40 -38
- package/dist/test/unit/should-built-and-test.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.mjs +9 -1
- package/package.json +5 -5
- package/test/unit/bin/build-from-local.test.ts +4 -54
- package/test/unit/bin/diff-changes.test.ts +97 -96
- package/test/unit/bin/diff.test.ts +53 -48
- package/test/unit/bin/git-command.test.ts +71 -0
- package/test/unit/bin/git.test.ts +246 -91
- package/test/unit/bin/logger.test.ts +55 -0
- package/test/unit/bin/logging.test.ts +52 -0
- package/test/unit/bin/utils/config/load-config.test.ts +63 -26
- package/test/unit/bin/utils/config/parser.test.ts +81 -27
- package/test/unit/bin/utils/files.test.ts +19 -33
- package/test/unit/bin/utils/path/repo-relative.test.ts +250 -0
- package/test/unit/bin/utils/path/schema.test.ts +65 -0
- package/test/unit/should-built-and-test.test.ts +40 -38
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { getBranchOnlyChangedFiles, getChangedFiles, getCommits, getCurrentBranch, getReleaseChanges, getRepoName, hasMergeFromTarget, normalizeRepoUrl, parseBaseCommit, resolveReleaseBaseCommit, } from '../../../bin/git.js';
|
|
2
|
+
import { getBranchOnlyChangedFiles, getChangedFiles, getCommits, getCurrentBranch, getReleaseChanges, getRepoName, hasMergeFromTarget, normalizeRepoUrl, parseBaseCommit, resolveReleaseBaseCommit, resolveRepoUrl, } from '../../../bin/git.js';
|
|
3
3
|
import * as Utils from '../../../bin/utils.js';
|
|
4
4
|
describe('getCommits', () => {
|
|
5
5
|
const sourceBranch = 'feature-branch';
|
|
@@ -12,13 +12,11 @@ describe('getCommits', () => {
|
|
|
12
12
|
const commit3 = `${sha3}»¦«Author1»¦«Date3»¦«Third Change On Feature`;
|
|
13
13
|
let gitCommandSpy;
|
|
14
14
|
beforeEach(() => {
|
|
15
|
-
gitCommandSpy = vi
|
|
16
|
-
.spyOn(Utils, 'spawnCommandInGhWorkspace')
|
|
17
|
-
.mockReturnValue(`${commit3}\n${commit2}\n${commit1}`);
|
|
15
|
+
gitCommandSpy = vi.spyOn(Utils, 'runGitCommand').mockResolvedValue(`${commit3}\n${commit2}\n${commit1}`);
|
|
18
16
|
});
|
|
19
|
-
it('should return commits between source and target branches', () => {
|
|
17
|
+
it('should return commits between source and target branches', async () => {
|
|
20
18
|
// Act
|
|
21
|
-
const commits = getCommits({ sourceBranch, targetBranch });
|
|
19
|
+
const commits = await getCommits({ sourceBranch, targetBranch });
|
|
22
20
|
// Assert
|
|
23
21
|
expect(commits).toStrictEqual([
|
|
24
22
|
{ sha: sha1, author: 'Author1', date: 'Date1', message: 'First Change On Feature' },
|
|
@@ -26,22 +24,22 @@ describe('getCommits', () => {
|
|
|
26
24
|
{ sha: sha3, author: 'Author1', date: 'Date3', message: 'Third Change On Feature' },
|
|
27
25
|
]);
|
|
28
26
|
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
29
|
-
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
27
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['log', '--pretty=format:%H»¦«%aN<%aE>»¦«%aD»¦«%s', 'main..feature-branch'], { operation: 'list commits reachable from the source ref but absent from the target ref' });
|
|
30
28
|
});
|
|
31
|
-
it('should return commits after the base commit if provided', () => {
|
|
29
|
+
it('should return commits after the base commit if provided', async () => {
|
|
32
30
|
// Act
|
|
33
|
-
const commits = getCommits({ sourceBranch, targetBranch, baseCommit: sha1 });
|
|
31
|
+
const commits = await getCommits({ sourceBranch, targetBranch, baseCommit: sha1 });
|
|
34
32
|
// Assert
|
|
35
33
|
expect(commits).toStrictEqual([
|
|
36
34
|
{ sha: sha2, author: 'Author1', date: 'Date2', message: 'Second Change On Feature' },
|
|
37
35
|
{ sha: sha3, author: 'Author1', date: 'Date3', message: 'Third Change On Feature' },
|
|
38
36
|
]);
|
|
39
37
|
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
40
|
-
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
38
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['log', '--pretty=format:%H»¦«%aN<%aE>»¦«%aD»¦«%s', 'main..feature-branch'], { operation: 'list commits reachable from the source ref but absent from the target ref' });
|
|
41
39
|
});
|
|
42
|
-
it('should ignore the base commit and return all commits when it is the branch HEAD (rerun or force push)', () => {
|
|
40
|
+
it('should ignore the base commit and return all commits when it is the branch HEAD (rerun or force push)', async () => {
|
|
43
41
|
// Act
|
|
44
|
-
const commits = getCommits({ sourceBranch, targetBranch, baseCommit: sha3 });
|
|
42
|
+
const commits = await getCommits({ sourceBranch, targetBranch, baseCommit: sha3 });
|
|
45
43
|
// Assert
|
|
46
44
|
expect(commits).toStrictEqual([
|
|
47
45
|
{ sha: sha1, author: 'Author1', date: 'Date1', message: 'First Change On Feature' },
|
|
@@ -49,9 +47,9 @@ describe('getCommits', () => {
|
|
|
49
47
|
{ sha: sha3, author: 'Author1', date: 'Date3', message: 'Third Change On Feature' },
|
|
50
48
|
]);
|
|
51
49
|
});
|
|
52
|
-
it('should return all commits if base commit is not found', () => {
|
|
50
|
+
it('should return all commits if base commit is not found', async () => {
|
|
53
51
|
// Act
|
|
54
|
-
const commits = getCommits({ sourceBranch, targetBranch, baseCommit: 'a'.repeat(40) });
|
|
52
|
+
const commits = await getCommits({ sourceBranch, targetBranch, baseCommit: 'a'.repeat(40) });
|
|
55
53
|
// Assert
|
|
56
54
|
expect(commits).toStrictEqual([
|
|
57
55
|
{ sha: sha1, author: 'Author1', date: 'Date1', message: 'First Change On Feature' },
|
|
@@ -59,15 +57,15 @@ describe('getCommits', () => {
|
|
|
59
57
|
{ sha: sha3, author: 'Author1', date: 'Date3', message: 'Third Change On Feature' },
|
|
60
58
|
]);
|
|
61
59
|
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
62
|
-
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
60
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['log', '--pretty=format:%H»¦«%aN<%aE>»¦«%aD»¦«%s', 'main..feature-branch'], { operation: 'list commits reachable from the source ref but absent from the target ref' });
|
|
63
61
|
});
|
|
64
62
|
});
|
|
65
63
|
describe('getChangedFiles', () => {
|
|
66
64
|
let gitCommandSpy;
|
|
67
65
|
beforeEach(() => {
|
|
68
|
-
gitCommandSpy = vi.spyOn(Utils, '
|
|
66
|
+
gitCommandSpy = vi.spyOn(Utils, 'runGitCommand').mockResolvedValue('file1.txt\nfolder/file2.txt');
|
|
69
67
|
});
|
|
70
|
-
it('should return changed files between commits', () => {
|
|
68
|
+
it('should return changed files between commits', async () => {
|
|
71
69
|
// Arrange
|
|
72
70
|
const firstSha = '1'.repeat(40);
|
|
73
71
|
const lastSha = '3'.repeat(40);
|
|
@@ -76,37 +74,41 @@ describe('getChangedFiles', () => {
|
|
|
76
74
|
{ sha: lastSha, author: '', date: '', message: '' },
|
|
77
75
|
];
|
|
78
76
|
// Act
|
|
79
|
-
const changedFiles = getChangedFiles(commits);
|
|
77
|
+
const changedFiles = await getChangedFiles(commits);
|
|
80
78
|
// Assert
|
|
81
79
|
expect(changedFiles).toStrictEqual(['file1.txt', 'folder/file2.txt']);
|
|
82
80
|
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
83
|
-
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
81
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['diff', '--name-only', `${firstSha}~..${lastSha}`], {
|
|
82
|
+
operation: 'get the list of changed files between commits',
|
|
83
|
+
});
|
|
84
84
|
});
|
|
85
|
-
it('should throw without running git when the commit list is empty', () => {
|
|
85
|
+
it('should throw without running git when the commit list is empty', async () => {
|
|
86
86
|
// Act & Assert
|
|
87
|
-
expect(
|
|
87
|
+
await expect(getChangedFiles([])).rejects.toThrow('Cannot get changed files: the commit list is empty');
|
|
88
88
|
expect(gitCommandSpy).not.toHaveBeenCalled();
|
|
89
89
|
});
|
|
90
|
-
it('should handle only one commit', () => {
|
|
90
|
+
it('should handle only one commit', async () => {
|
|
91
91
|
// Arrange
|
|
92
92
|
const onlySha = '1'.repeat(40);
|
|
93
93
|
const commits = [{ sha: onlySha, author: '', date: '', message: '' }];
|
|
94
94
|
// Act
|
|
95
|
-
const changedFiles = getChangedFiles(commits);
|
|
95
|
+
const changedFiles = await getChangedFiles(commits);
|
|
96
96
|
// Assert
|
|
97
97
|
expect(changedFiles).toStrictEqual(['file1.txt', 'folder/file2.txt']);
|
|
98
98
|
expect(gitCommandSpy).toHaveBeenCalledTimes(1);
|
|
99
|
-
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
99
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['diff', '--name-only', `${onlySha}~..${onlySha}`], {
|
|
100
|
+
operation: 'get the list of changed files between commits',
|
|
101
|
+
});
|
|
100
102
|
});
|
|
101
|
-
it('should return an empty list when the net diff is empty (e.g. a commit and its revert)', () => {
|
|
103
|
+
it('should return an empty list when the net diff is empty (e.g. a commit and its revert)', async () => {
|
|
102
104
|
// Arrange
|
|
103
|
-
gitCommandSpy.
|
|
105
|
+
gitCommandSpy.mockResolvedValue('');
|
|
104
106
|
const commits = [
|
|
105
107
|
{ sha: '1'.repeat(40), author: '', date: '', message: '' },
|
|
106
108
|
{ sha: '2'.repeat(40), author: '', date: '', message: '' },
|
|
107
109
|
];
|
|
108
110
|
// Act
|
|
109
|
-
const changedFiles = getChangedFiles(commits);
|
|
111
|
+
const changedFiles = await getChangedFiles(commits);
|
|
110
112
|
// Assert
|
|
111
113
|
expect(changedFiles).toStrictEqual([]);
|
|
112
114
|
});
|
|
@@ -117,47 +119,76 @@ describe('hasMergeFromTarget', () => {
|
|
|
117
119
|
const mergeSha = 'f'.repeat(40);
|
|
118
120
|
const branchParentSha = 'b'.repeat(40);
|
|
119
121
|
const targetParentSha = 't'.repeat(40);
|
|
122
|
+
const differentMergeBase = '0'.repeat(40);
|
|
120
123
|
let gitCommandSpy;
|
|
121
124
|
beforeEach(() => {
|
|
122
|
-
gitCommandSpy = vi.spyOn(Utils, '
|
|
125
|
+
gitCommandSpy = vi.spyOn(Utils, 'runGitCommand');
|
|
123
126
|
});
|
|
124
|
-
it('should return false when there are no merge commits on the branch', () => {
|
|
125
|
-
gitCommandSpy.mockImplementation((
|
|
126
|
-
if (
|
|
127
|
+
it('should return false when there are no merge commits on the branch', async () => {
|
|
128
|
+
gitCommandSpy.mockImplementation(async (args) => {
|
|
129
|
+
if (args.includes('--merges'))
|
|
127
130
|
return '';
|
|
128
131
|
return '';
|
|
129
132
|
});
|
|
130
|
-
expect(hasMergeFromTarget(sourceBranch, targetBranch)).toBe(false);
|
|
131
|
-
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
133
|
+
await expect(hasMergeFromTarget(sourceBranch, targetBranch)).resolves.toBe(false);
|
|
134
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['log', '--merges', '--pretty=format:%H', `${targetBranch}..${sourceBranch}`], { operation: 'find merge commits on the source branch that are absent from the target branch' });
|
|
132
135
|
});
|
|
133
|
-
it('should return true when a merge commit has a parent reachable from targetBranch', () => {
|
|
134
|
-
gitCommandSpy.mockImplementation((
|
|
135
|
-
if (
|
|
136
|
+
it('should return true when a merge commit has a parent reachable from targetBranch', async () => {
|
|
137
|
+
gitCommandSpy.mockImplementation(async (args) => {
|
|
138
|
+
if (args.includes('--merges'))
|
|
136
139
|
return mergeSha;
|
|
137
|
-
if (
|
|
140
|
+
if (args.includes('--pretty=format:%P'))
|
|
138
141
|
return `${branchParentSha} ${targetParentSha}`;
|
|
139
|
-
if (
|
|
140
|
-
return
|
|
141
|
-
if (
|
|
142
|
-
return targetParentSha;
|
|
142
|
+
if (args[0] === 'merge-base' && args[1] === branchParentSha)
|
|
143
|
+
return differentMergeBase;
|
|
144
|
+
if (args[0] === 'merge-base' && args[1] === targetParentSha)
|
|
145
|
+
return targetParentSha;
|
|
143
146
|
return '';
|
|
144
147
|
});
|
|
145
|
-
expect(hasMergeFromTarget(sourceBranch, targetBranch)).toBe(true);
|
|
148
|
+
await expect(hasMergeFromTarget(sourceBranch, targetBranch)).resolves.toBe(true);
|
|
149
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['merge-base', targetParentSha, targetBranch], {
|
|
150
|
+
operation: 'check whether a merge parent is reachable from the target branch',
|
|
151
|
+
});
|
|
146
152
|
});
|
|
147
|
-
it('should return false when the merge commit parent is not reachable from targetBranch (unrelated branch merge)', () => {
|
|
153
|
+
it('should return false when the merge commit parent is not reachable from targetBranch (unrelated branch merge)', async () => {
|
|
148
154
|
const unrelatedSha = 'e'.repeat(40);
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (cmd.includes('--merges'))
|
|
155
|
+
gitCommandSpy.mockImplementation(async (args) => {
|
|
156
|
+
if (args.includes('--merges'))
|
|
152
157
|
return mergeSha;
|
|
153
|
-
if (
|
|
158
|
+
if (args.includes('--pretty=format:%P'))
|
|
154
159
|
return `${branchParentSha} ${unrelatedSha}`;
|
|
155
160
|
// merge-base returns something other than the parent — not an ancestor
|
|
156
|
-
if (
|
|
161
|
+
if (args[0] === 'merge-base')
|
|
157
162
|
return differentMergeBase;
|
|
158
163
|
return '';
|
|
159
164
|
});
|
|
160
|
-
expect(hasMergeFromTarget(sourceBranch, targetBranch)).toBe(false);
|
|
165
|
+
await expect(hasMergeFromTarget(sourceBranch, targetBranch)).resolves.toBe(false);
|
|
166
|
+
});
|
|
167
|
+
it('continues after merge-base reports unrelated histories', async () => {
|
|
168
|
+
gitCommandSpy.mockImplementation(async (args) => {
|
|
169
|
+
if (args.includes('--merges'))
|
|
170
|
+
return mergeSha;
|
|
171
|
+
if (args.includes('--pretty=format:%P'))
|
|
172
|
+
return `${branchParentSha} ${targetParentSha}`;
|
|
173
|
+
if (args[0] === 'merge-base' && args[1] === branchParentSha) {
|
|
174
|
+
throw new Utils.GitCommandError(args, Object.assign(new Error('no common ancestor'), { code: 1 }));
|
|
175
|
+
}
|
|
176
|
+
if (args[0] === 'merge-base' && args[1] === targetParentSha)
|
|
177
|
+
return targetParentSha;
|
|
178
|
+
return '';
|
|
179
|
+
});
|
|
180
|
+
await expect(hasMergeFromTarget(sourceBranch, targetBranch)).resolves.toBe(true);
|
|
181
|
+
});
|
|
182
|
+
it('propagates unexpected Git failures', async () => {
|
|
183
|
+
gitCommandSpy.mockImplementation(async (args, options) => {
|
|
184
|
+
if (args.includes('--merges'))
|
|
185
|
+
return mergeSha;
|
|
186
|
+
if (args.includes('--pretty=format:%P'))
|
|
187
|
+
return `${branchParentSha} ${targetParentSha}`;
|
|
188
|
+
throw new Utils.GitCommandError(args, Object.assign(new Error('Git failed'), { code: 128 }), options?.operation);
|
|
189
|
+
});
|
|
190
|
+
await expect(hasMergeFromTarget(sourceBranch, targetBranch)).rejects.toThrow('Failed to check whether a merge parent is reachable from the target branch.\n' +
|
|
191
|
+
'Command: git "merge-base"');
|
|
161
192
|
});
|
|
162
193
|
});
|
|
163
194
|
describe('getBranchOnlyChangedFiles', () => {
|
|
@@ -165,17 +196,17 @@ describe('getBranchOnlyChangedFiles', () => {
|
|
|
165
196
|
const targetBranch = 'main';
|
|
166
197
|
let gitCommandSpy;
|
|
167
198
|
beforeEach(() => {
|
|
168
|
-
gitCommandSpy = vi.spyOn(Utils, '
|
|
199
|
+
gitCommandSpy = vi.spyOn(Utils, 'runGitCommand');
|
|
169
200
|
});
|
|
170
|
-
it('should return files touched by non-merge commits', () => {
|
|
171
|
-
gitCommandSpy.
|
|
172
|
-
const result = getBranchOnlyChangedFiles(sourceBranch, targetBranch);
|
|
201
|
+
it('should return files touched by non-merge commits', async () => {
|
|
202
|
+
gitCommandSpy.mockResolvedValue('README.md\n\nactors/foo_bar/src/main.ts\n');
|
|
203
|
+
const result = await getBranchOnlyChangedFiles(sourceBranch, targetBranch);
|
|
173
204
|
expect(result).toStrictEqual(['README.md', 'actors/foo_bar/src/main.ts']);
|
|
174
|
-
expect(gitCommandSpy).toHaveBeenCalledWith(
|
|
205
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['log', '--no-merges', '--name-only', '--pretty=format:', `${targetBranch}..${sourceBranch}`], { operation: 'list files changed by non-merge commits on the source branch' });
|
|
175
206
|
});
|
|
176
|
-
it('should return empty array when there are no non-merge commits', () => {
|
|
177
|
-
gitCommandSpy.
|
|
178
|
-
expect(getBranchOnlyChangedFiles(sourceBranch, targetBranch)).toStrictEqual([]);
|
|
207
|
+
it('should return empty array when there are no non-merge commits', async () => {
|
|
208
|
+
gitCommandSpy.mockResolvedValue('');
|
|
209
|
+
await expect(getBranchOnlyChangedFiles(sourceBranch, targetBranch)).resolves.toStrictEqual([]);
|
|
179
210
|
});
|
|
180
211
|
});
|
|
181
212
|
const VALID_SHA = 'a'.repeat(40);
|
|
@@ -202,13 +233,38 @@ describe('parseBaseCommit', () => {
|
|
|
202
233
|
});
|
|
203
234
|
});
|
|
204
235
|
describe('getCurrentBranch', () => {
|
|
205
|
-
it('should return the checked-out branch', () => {
|
|
206
|
-
vi.spyOn(Utils, '
|
|
207
|
-
expect(getCurrentBranch()).toBe('master');
|
|
236
|
+
it('should return the checked-out branch', async () => {
|
|
237
|
+
const gitCommandSpy = vi.spyOn(Utils, 'runGitCommand').mockResolvedValue('master');
|
|
238
|
+
await expect(getCurrentBranch()).resolves.toBe('master');
|
|
239
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['rev-parse', '--abbrev-ref', 'HEAD'], {
|
|
240
|
+
operation: 'determine the current branch for release',
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
it('should throw on a detached HEAD', async () => {
|
|
244
|
+
vi.spyOn(Utils, 'runGitCommand').mockResolvedValue('HEAD');
|
|
245
|
+
await expect(getCurrentBranch()).rejects.toThrow('HEAD is detached');
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
describe('resolveRepoUrl', () => {
|
|
249
|
+
it('reads and rewrites the origin URL when no URL is supplied', async () => {
|
|
250
|
+
const gitCommandSpy = vi
|
|
251
|
+
.spyOn(Utils, 'runGitCommand')
|
|
252
|
+
.mockResolvedValue('https://github.com/apify/example.git');
|
|
253
|
+
await expect(resolveRepoUrl(undefined)).resolves.toStrictEqual({
|
|
254
|
+
repoUrl: 'git@github.com:apify/example.git',
|
|
255
|
+
shouldVerifyRepoUrl: true,
|
|
256
|
+
});
|
|
257
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['remote', 'get-url', 'origin'], {
|
|
258
|
+
operation: 'read the origin repository URL',
|
|
259
|
+
});
|
|
208
260
|
});
|
|
209
|
-
it('
|
|
210
|
-
vi.spyOn(Utils, '
|
|
211
|
-
expect(()
|
|
261
|
+
it('uses an explicit URL without reading Git', async () => {
|
|
262
|
+
const gitCommandSpy = vi.spyOn(Utils, 'runGitCommand');
|
|
263
|
+
await expect(resolveRepoUrl('git@github.com:other/example.git')).resolves.toStrictEqual({
|
|
264
|
+
repoUrl: 'git@github.com:other/example.git',
|
|
265
|
+
shouldVerifyRepoUrl: false,
|
|
266
|
+
});
|
|
267
|
+
expect(gitCommandSpy).not.toHaveBeenCalled();
|
|
212
268
|
});
|
|
213
269
|
});
|
|
214
270
|
describe('normalizeRepoUrl', () => {
|
|
@@ -234,37 +290,73 @@ describe('getRepoName', () => {
|
|
|
234
290
|
});
|
|
235
291
|
describe('resolveReleaseBaseCommit', () => {
|
|
236
292
|
const baseSha = 'b'.repeat(40);
|
|
237
|
-
it('should return the base commit when it is an ancestor of HEAD', () => {
|
|
238
|
-
vi.spyOn(Utils, '
|
|
239
|
-
if (
|
|
293
|
+
it('should return the base commit when it is an ancestor of HEAD', async () => {
|
|
294
|
+
const gitCommandSpy = vi.spyOn(Utils, 'runGitCommand').mockImplementation(async (args) => {
|
|
295
|
+
if (args[0] === 'rev-parse')
|
|
240
296
|
return baseSha;
|
|
241
|
-
if (
|
|
297
|
+
if (args[0] === 'merge-base')
|
|
242
298
|
return baseSha;
|
|
243
299
|
return '';
|
|
244
300
|
});
|
|
245
|
-
expect(resolveReleaseBaseCommit(baseSha)).toBe(baseSha);
|
|
301
|
+
await expect(resolveReleaseBaseCommit(baseSha)).resolves.toBe(baseSha);
|
|
302
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['rev-parse', '--verify', '--quiet', `${baseSha}^{commit}`], {
|
|
303
|
+
operation: 'verify the release base commit in local Git history',
|
|
304
|
+
});
|
|
305
|
+
expect(gitCommandSpy).toHaveBeenCalledWith(['merge-base', baseSha, 'HEAD'], {
|
|
306
|
+
operation: 'check whether the release base commit is an ancestor of HEAD',
|
|
307
|
+
});
|
|
246
308
|
});
|
|
247
|
-
it('should throw on the all-zeros SHA of a newly created branch', () => {
|
|
248
|
-
const spy = vi.spyOn(Utils, '
|
|
249
|
-
expect(
|
|
309
|
+
it('should throw on the all-zeros SHA of a newly created branch', async () => {
|
|
310
|
+
const spy = vi.spyOn(Utils, 'runGitCommand');
|
|
311
|
+
await expect(resolveReleaseBaseCommit('0'.repeat(40))).rejects.toThrow('the branch was just created');
|
|
250
312
|
expect(spy).not.toHaveBeenCalled();
|
|
251
313
|
});
|
|
252
|
-
it('should throw when the base commit is missing from the local history', () => {
|
|
253
|
-
vi
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
314
|
+
it('should throw when the base commit is missing from the local history', async () => {
|
|
315
|
+
const spy = vi
|
|
316
|
+
.spyOn(Utils, 'runGitCommand')
|
|
317
|
+
.mockRejectedValue(new Utils.GitCommandError(['rev-parse', '--verify', '--quiet', `${baseSha}^{commit}`], Object.assign(new Error('missing'), { code: 1 })));
|
|
318
|
+
await expect(resolveReleaseBaseCommit(baseSha)).rejects.toThrow('is not in the local git history');
|
|
319
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
320
|
+
});
|
|
321
|
+
it('should throw when rev-parse returns an empty result', async () => {
|
|
322
|
+
const spy = vi.spyOn(Utils, 'runGitCommand').mockResolvedValue('');
|
|
323
|
+
await expect(resolveReleaseBaseCommit(baseSha)).rejects.toThrow('is not in the local git history');
|
|
324
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
325
|
+
});
|
|
326
|
+
it('should throw when the base commit is not an ancestor of HEAD (force push)', async () => {
|
|
327
|
+
vi.spyOn(Utils, 'runGitCommand').mockImplementation(async (args) => {
|
|
328
|
+
if (args[0] === 'rev-parse')
|
|
259
329
|
return baseSha;
|
|
260
|
-
if (
|
|
330
|
+
if (args[0] === 'merge-base')
|
|
261
331
|
return 'c'.repeat(40);
|
|
262
332
|
return '';
|
|
263
333
|
});
|
|
264
|
-
expect(
|
|
334
|
+
await expect(resolveReleaseBaseCommit(baseSha)).rejects.toThrow('is not an ancestor of HEAD');
|
|
335
|
+
});
|
|
336
|
+
it('should throw when merge-base reports no common ancestor', async () => {
|
|
337
|
+
vi.spyOn(Utils, 'runGitCommand').mockImplementation(async (args) => {
|
|
338
|
+
if (args[0] === 'rev-parse')
|
|
339
|
+
return baseSha;
|
|
340
|
+
throw new Utils.GitCommandError(args, Object.assign(new Error('no common ancestor'), { code: 1 }));
|
|
341
|
+
});
|
|
342
|
+
await expect(resolveReleaseBaseCommit(baseSha)).rejects.toThrow('is not an ancestor of HEAD');
|
|
343
|
+
});
|
|
344
|
+
it('explains an unexpected merge-base failure', async () => {
|
|
345
|
+
vi.spyOn(Utils, 'runGitCommand').mockImplementation(async (args, options) => {
|
|
346
|
+
if (args[0] === 'rev-parse')
|
|
347
|
+
return baseSha;
|
|
348
|
+
throw new Utils.GitCommandError(args, Object.assign(new Error('Git failed'), { code: 128 }), options?.operation);
|
|
349
|
+
});
|
|
350
|
+
await expect(resolveReleaseBaseCommit(baseSha)).rejects.toThrow('Failed to check whether the release base commit is an ancestor of HEAD.\n' +
|
|
351
|
+
`Command: git "merge-base" "${baseSha}" "HEAD"\nGit error: Git failed`);
|
|
352
|
+
});
|
|
353
|
+
it('should propagate unexpected Git failures', async () => {
|
|
354
|
+
vi.spyOn(Utils, 'runGitCommand').mockRejectedValue(new Utils.GitCommandError(['rev-parse', '--verify', '--quiet', `${baseSha}^{commit}`], Object.assign(new Error('Git failed'), { code: 128 }), 'verify the release base commit in local Git history'));
|
|
355
|
+
await expect(resolveReleaseBaseCommit(baseSha)).rejects.toThrow('Failed to verify the release base commit in local Git history.\n' +
|
|
356
|
+
`Command: git "rev-parse" "--verify" "--quiet" "${baseSha}^{commit}"\nGit error: Git failed`);
|
|
265
357
|
});
|
|
266
|
-
it('should throw on an invalid SHA', () => {
|
|
267
|
-
expect(
|
|
358
|
+
it('should throw on an invalid SHA', async () => {
|
|
359
|
+
await expect(resolveReleaseBaseCommit('not-a-sha')).rejects.toThrow('Invalid base commit SHA');
|
|
268
360
|
});
|
|
269
361
|
});
|
|
270
362
|
describe('getReleaseChanges', () => {
|
|
@@ -272,22 +364,22 @@ describe('getReleaseChanges', () => {
|
|
|
272
364
|
const headSha = 'd'.repeat(40);
|
|
273
365
|
const mergedBranchCommit = `${'1'.repeat(40)}»¦«Dev<dev@example.com>»¦«Date1»¦«feat: branch change`;
|
|
274
366
|
const mergeCommit = `${headSha}»¦«Dev<dev@example.com>»¦«Date2»¦«Merge pull request #1`;
|
|
275
|
-
let
|
|
367
|
+
let gitRunSpy;
|
|
276
368
|
beforeEach(() => {
|
|
277
|
-
|
|
278
|
-
if (
|
|
369
|
+
gitRunSpy = vi.spyOn(Utils, 'runGitCommand').mockImplementation(async (args) => {
|
|
370
|
+
if (args[0] === 'rev-parse')
|
|
279
371
|
return headSha;
|
|
280
|
-
if (
|
|
372
|
+
if (args[0] === 'log')
|
|
281
373
|
return `${mergeCommit}\n${mergedBranchCommit}`;
|
|
282
|
-
if (
|
|
374
|
+
if (args.includes('--name-only'))
|
|
283
375
|
return 'actors/foo/src/main.ts\nCHANGELOG.md';
|
|
284
|
-
if (
|
|
376
|
+
if (args[0] === 'diff')
|
|
285
377
|
return 'diff --git a/CHANGELOG.md b/CHANGELOG.md\n--- a/CHANGELOG.md\n+++ b/CHANGELOG.md\n@@ -1 +1,2 @@\n+- Added foo\n # Changelog';
|
|
286
378
|
return '';
|
|
287
379
|
});
|
|
288
380
|
});
|
|
289
|
-
it('should diff the range directly and return the commits oldest first', () => {
|
|
290
|
-
const changes = getReleaseChanges(baseSha);
|
|
381
|
+
it('should diff the range directly and return the commits oldest first', async () => {
|
|
382
|
+
const changes = await getReleaseChanges(baseSha);
|
|
291
383
|
expect(changes).toStrictEqual({
|
|
292
384
|
commits: [
|
|
293
385
|
{ sha: '1'.repeat(40), author: 'Dev<dev@example.com>', date: 'Date1', message: 'feat: branch change' },
|
|
@@ -297,11 +389,36 @@ describe('getReleaseChanges', () => {
|
|
|
297
389
|
changelog: '- Added foo',
|
|
298
390
|
});
|
|
299
391
|
// Not from the parent of the oldest commit, which may predate the base commit for merge commits
|
|
300
|
-
expect(
|
|
301
|
-
|
|
392
|
+
expect(gitRunSpy).toHaveBeenCalledWith(['rev-parse', 'HEAD'], {
|
|
393
|
+
operation: 'identify the current release commit',
|
|
394
|
+
});
|
|
395
|
+
expect(gitRunSpy).toHaveBeenCalledWith(['diff', '--name-only', baseSha, 'HEAD'], {
|
|
396
|
+
operation: 'list files changed since the last release',
|
|
397
|
+
});
|
|
398
|
+
expect(gitRunSpy).toHaveBeenCalledWith(['log', '--pretty=format:%H»¦«%aN<%aE>»¦«%aD»¦«%s', `${baseSha}..HEAD`], { operation: 'list commits reachable from the source ref but absent from the target ref' });
|
|
399
|
+
expect(gitRunSpy).toHaveBeenCalledWith(['diff', baseSha, 'HEAD', '--', 'CHANGELOG.md'], {
|
|
400
|
+
operation: 'read changelog changes since the last release',
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
it('should return null when HEAD is the base commit', async () => {
|
|
404
|
+
await expect(getReleaseChanges(headSha)).resolves.toBeNull();
|
|
405
|
+
expect(gitRunSpy).toHaveBeenCalledOnce();
|
|
406
|
+
expect(gitRunSpy).toHaveBeenCalledWith(['rev-parse', 'HEAD'], {
|
|
407
|
+
operation: 'identify the current release commit',
|
|
408
|
+
});
|
|
302
409
|
});
|
|
303
|
-
it('
|
|
304
|
-
|
|
410
|
+
it('skips the changelog diff when CHANGELOG.md did not change', async () => {
|
|
411
|
+
gitRunSpy.mockImplementation(async (args) => {
|
|
412
|
+
if (args[0] === 'rev-parse')
|
|
413
|
+
return headSha;
|
|
414
|
+
if (args[0] === 'log')
|
|
415
|
+
return `${mergeCommit}\n${mergedBranchCommit}`;
|
|
416
|
+
if (args.includes('--name-only'))
|
|
417
|
+
return 'actors/foo/src/main.ts';
|
|
418
|
+
return '';
|
|
419
|
+
});
|
|
420
|
+
await expect(getReleaseChanges(baseSha)).resolves.toMatchObject({ changelog: null });
|
|
421
|
+
expect(gitRunSpy).not.toHaveBeenCalledWith(['diff', baseSha, 'HEAD', '--', 'CHANGELOG.md']);
|
|
305
422
|
});
|
|
306
423
|
});
|
|
307
424
|
//# sourceMappingURL=git.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/git.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/git.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/bin/logger.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
2
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
+
import { logger, logLevels } from '../../../bin/logger.js';
|
|
4
|
+
import { writeJson } from '../../../bin/output.js';
|
|
5
|
+
describe('logger and CLI output', () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
logger.setLevel('info');
|
|
8
|
+
vi.spyOn(process.stderr, 'write').mockReturnValue(true);
|
|
9
|
+
vi.spyOn(process.stdout, 'write').mockReturnValue(true);
|
|
10
|
+
});
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
logger.setLevel('info');
|
|
13
|
+
vi.restoreAllMocks();
|
|
14
|
+
});
|
|
15
|
+
it.each(logLevels)('filters diagnostics at the %s level without writing to stdout', (level) => {
|
|
16
|
+
logger.setLevel(level);
|
|
17
|
+
logger.debug('debug');
|
|
18
|
+
logger.info('info');
|
|
19
|
+
logger.warn('warn');
|
|
20
|
+
logger.error('error');
|
|
21
|
+
expect(vi.mocked(process.stderr.write).mock.calls.map(([message]) => message)).toEqual(logLevels.slice(logLevels.indexOf(level), -1).map((message) => `${message}\n`));
|
|
22
|
+
expect(process.stdout.write).not.toHaveBeenCalled();
|
|
23
|
+
});
|
|
24
|
+
it('defaults to info and preserves formatting, multiple arguments and blank lines', () => {
|
|
25
|
+
logger.debug('hidden');
|
|
26
|
+
logger.info('actor %s: %d', 'owner/name', 3);
|
|
27
|
+
logger.warn('warning', { actor: 'owner/name' });
|
|
28
|
+
logger.error(new Error('failed'));
|
|
29
|
+
logger.info();
|
|
30
|
+
expect(process.stderr.write).toHaveBeenCalledTimes(4);
|
|
31
|
+
expect(process.stderr.write).toHaveBeenNthCalledWith(1, 'actor owner/name: 3\n');
|
|
32
|
+
expect(process.stderr.write).toHaveBeenNthCalledWith(2, "warning { actor: 'owner/name' }\n");
|
|
33
|
+
expect(process.stderr.write).toHaveBeenNthCalledWith(3, expect.stringContaining('Error: failed'));
|
|
34
|
+
expect(process.stderr.write).toHaveBeenNthCalledWith(4, '\n');
|
|
35
|
+
});
|
|
36
|
+
it('writes newline-terminated JSON to stdout even when logging is silent', () => {
|
|
37
|
+
logger.setLevel('silent');
|
|
38
|
+
logger.error('hidden');
|
|
39
|
+
writeJson([{ actor: 'owner/name' }]);
|
|
40
|
+
expect(process.stdout.write).toHaveBeenCalledExactlyOnceWith('[{"actor":"owner/name"}]\n');
|
|
41
|
+
expect(process.stderr.write).not.toHaveBeenCalled();
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=logger.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/logger.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/bin/logging.test.ts"],"names":[],"mappings":""}
|