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.
Files changed (147) hide show
  1. package/.github/actions/checkout-restore-dependencies/action.yaml +4 -3
  2. package/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +7 -2
  3. package/.github/workflows/public_platform-tests.yaml +0 -1
  4. package/.github/workflows-package-version +1 -1
  5. package/CHANGELOG.md +6 -0
  6. package/CONTRIBUTING.md +13 -3
  7. package/README.md +2 -2
  8. package/bin/build-from-local.ts +8 -7
  9. package/bin/build.ts +22 -21
  10. package/bin/diff-changes.ts +11 -10
  11. package/bin/diff-json-schema.ts +14 -12
  12. package/bin/git.ts +89 -47
  13. package/bin/logger.ts +23 -0
  14. package/bin/main.ts +44 -38
  15. package/bin/output.ts +6 -0
  16. package/bin/slack.ts +8 -7
  17. package/bin/test-report.ts +22 -21
  18. package/bin/types.ts +0 -1
  19. package/bin/utils/config/actor-json.ts +84 -0
  20. package/bin/utils/config/load-config.ts +46 -46
  21. package/bin/utils/config/parser.ts +33 -28
  22. package/bin/utils/config/structures/base.ts +7 -0
  23. package/bin/utils/json-file.ts +11 -14
  24. package/bin/utils/path/repo-relative.ts +156 -0
  25. package/bin/utils/path/schema.ts +18 -0
  26. package/bin/utils.ts +63 -44
  27. package/dist/bin/build-from-local.d.ts +1 -1
  28. package/dist/bin/build-from-local.d.ts.map +1 -1
  29. package/dist/bin/build-from-local.js +8 -7
  30. package/dist/bin/build-from-local.js.map +1 -1
  31. package/dist/bin/build.d.ts.map +1 -1
  32. package/dist/bin/build.js +22 -21
  33. package/dist/bin/build.js.map +1 -1
  34. package/dist/bin/diff-changes.d.ts +1 -1
  35. package/dist/bin/diff-changes.d.ts.map +1 -1
  36. package/dist/bin/diff-changes.js +9 -8
  37. package/dist/bin/diff-changes.js.map +1 -1
  38. package/dist/bin/diff-json-schema.d.ts +1 -1
  39. package/dist/bin/diff-json-schema.d.ts.map +1 -1
  40. package/dist/bin/diff-json-schema.js +13 -12
  41. package/dist/bin/diff-json-schema.js.map +1 -1
  42. package/dist/bin/git.d.ts +10 -10
  43. package/dist/bin/git.d.ts.map +1 -1
  44. package/dist/bin/git.js +78 -37
  45. package/dist/bin/git.js.map +1 -1
  46. package/dist/bin/logger.d.ts +11 -0
  47. package/dist/bin/logger.d.ts.map +1 -0
  48. package/dist/bin/logger.js +20 -0
  49. package/dist/bin/logger.js.map +1 -0
  50. package/dist/bin/main.d.ts +1 -1
  51. package/dist/bin/main.js +44 -38
  52. package/dist/bin/main.js.map +1 -1
  53. package/dist/bin/output.d.ts +3 -0
  54. package/dist/bin/output.d.ts.map +1 -0
  55. package/dist/bin/output.js +6 -0
  56. package/dist/bin/output.js.map +1 -0
  57. package/dist/bin/slack.d.ts.map +1 -1
  58. package/dist/bin/slack.js +8 -7
  59. package/dist/bin/slack.js.map +1 -1
  60. package/dist/bin/test-report.d.ts.map +1 -1
  61. package/dist/bin/test-report.js +22 -21
  62. package/dist/bin/test-report.js.map +1 -1
  63. package/dist/bin/types.d.ts +0 -1
  64. package/dist/bin/types.d.ts.map +1 -1
  65. package/dist/bin/utils/config/actor-json.d.ts +14 -0
  66. package/dist/bin/utils/config/actor-json.d.ts.map +1 -0
  67. package/dist/bin/utils/config/actor-json.js +60 -0
  68. package/dist/bin/utils/config/actor-json.js.map +1 -0
  69. package/dist/bin/utils/config/load-config.d.ts +12 -2
  70. package/dist/bin/utils/config/load-config.d.ts.map +1 -1
  71. package/dist/bin/utils/config/load-config.js +32 -31
  72. package/dist/bin/utils/config/load-config.js.map +1 -1
  73. package/dist/bin/utils/config/parser.d.ts +4 -12
  74. package/dist/bin/utils/config/parser.d.ts.map +1 -1
  75. package/dist/bin/utils/config/parser.js +24 -23
  76. package/dist/bin/utils/config/parser.js.map +1 -1
  77. package/dist/bin/utils/config/structures/base.d.ts +5 -0
  78. package/dist/bin/utils/config/structures/base.d.ts.map +1 -1
  79. package/dist/bin/utils/config/structures/base.js.map +1 -1
  80. package/dist/bin/utils/json-file.d.ts +3 -2
  81. package/dist/bin/utils/json-file.d.ts.map +1 -1
  82. package/dist/bin/utils/json-file.js +8 -13
  83. package/dist/bin/utils/json-file.js.map +1 -1
  84. package/dist/bin/utils/path/repo-relative.d.ts +35 -0
  85. package/dist/bin/utils/path/repo-relative.d.ts.map +1 -0
  86. package/dist/bin/utils/path/repo-relative.js +137 -0
  87. package/dist/bin/utils/path/repo-relative.js.map +1 -0
  88. package/dist/bin/utils/path/schema.d.ts +7 -0
  89. package/dist/bin/utils/path/schema.d.ts.map +1 -0
  90. package/dist/bin/utils/path/schema.js +16 -0
  91. package/dist/bin/utils/path/schema.js.map +1 -0
  92. package/dist/bin/utils.d.ts +14 -6
  93. package/dist/bin/utils.d.ts.map +1 -1
  94. package/dist/bin/utils.js +52 -36
  95. package/dist/bin/utils.js.map +1 -1
  96. package/dist/test/unit/bin/build-from-local.test.js +4 -40
  97. package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
  98. package/dist/test/unit/bin/diff-changes.test.js +97 -96
  99. package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
  100. package/dist/test/unit/bin/diff.test.js +52 -48
  101. package/dist/test/unit/bin/diff.test.js.map +1 -1
  102. package/dist/test/unit/bin/git-command.test.d.ts +2 -0
  103. package/dist/test/unit/bin/git-command.test.d.ts.map +1 -0
  104. package/dist/test/unit/bin/git-command.test.js +54 -0
  105. package/dist/test/unit/bin/git-command.test.js.map +1 -0
  106. package/dist/test/unit/bin/git.test.js +211 -94
  107. package/dist/test/unit/bin/git.test.js.map +1 -1
  108. package/dist/test/unit/bin/logger.test.d.ts +2 -0
  109. package/dist/test/unit/bin/logger.test.d.ts.map +1 -0
  110. package/dist/test/unit/bin/logger.test.js +44 -0
  111. package/dist/test/unit/bin/logger.test.js.map +1 -0
  112. package/dist/test/unit/bin/logging.test.d.ts +2 -0
  113. package/dist/test/unit/bin/logging.test.d.ts.map +1 -0
  114. package/dist/test/unit/bin/logging.test.js +43 -0
  115. package/dist/test/unit/bin/logging.test.js.map +1 -0
  116. package/dist/test/unit/bin/utils/config/load-config.test.js +47 -25
  117. package/dist/test/unit/bin/utils/config/load-config.test.js.map +1 -1
  118. package/dist/test/unit/bin/utils/config/parser.test.js +64 -19
  119. package/dist/test/unit/bin/utils/config/parser.test.js.map +1 -1
  120. package/dist/test/unit/bin/utils/files.test.js +16 -27
  121. package/dist/test/unit/bin/utils/files.test.js.map +1 -1
  122. package/dist/test/unit/bin/utils/path/repo-relative.test.d.ts +2 -0
  123. package/dist/test/unit/bin/utils/path/repo-relative.test.d.ts.map +1 -0
  124. package/dist/test/unit/bin/utils/path/repo-relative.test.js +196 -0
  125. package/dist/test/unit/bin/utils/path/repo-relative.test.js.map +1 -0
  126. package/dist/test/unit/bin/utils/path/schema.test.d.ts +2 -0
  127. package/dist/test/unit/bin/utils/path/schema.test.d.ts.map +1 -0
  128. package/dist/test/unit/bin/utils/path/schema.test.js +52 -0
  129. package/dist/test/unit/bin/utils/path/schema.test.js.map +1 -0
  130. package/dist/test/unit/should-built-and-test.test.js +40 -38
  131. package/dist/test/unit/should-built-and-test.test.js.map +1 -1
  132. package/dist/tsconfig.tsbuildinfo +1 -1
  133. package/eslint.config.mjs +9 -1
  134. package/package.json +5 -5
  135. package/test/unit/bin/build-from-local.test.ts +4 -54
  136. package/test/unit/bin/diff-changes.test.ts +97 -96
  137. package/test/unit/bin/diff.test.ts +53 -48
  138. package/test/unit/bin/git-command.test.ts +71 -0
  139. package/test/unit/bin/git.test.ts +246 -91
  140. package/test/unit/bin/logger.test.ts +55 -0
  141. package/test/unit/bin/logging.test.ts +52 -0
  142. package/test/unit/bin/utils/config/load-config.test.ts +63 -26
  143. package/test/unit/bin/utils/config/parser.test.ts +81 -27
  144. package/test/unit/bin/utils/files.test.ts +19 -33
  145. package/test/unit/bin/utils/path/repo-relative.test.ts +250 -0
  146. package/test/unit/bin/utils/path/schema.test.ts +65 -0
  147. 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(`git log --pretty=format:'%H»¦«%aN<%aE>»¦«%aD»¦«%s' main..feature-branch`);
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(`git log --pretty=format:'%H»¦«%aN<%aE>»¦«%aD»¦«%s' main..feature-branch`);
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(`git log --pretty=format:'%H»¦«%aN<%aE>»¦«%aD»¦«%s' main..feature-branch`);
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, 'spawnCommandInGhWorkspace').mockReturnValue('file1.txt\nfolder/file2.txt');
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(`git diff --name-only ${firstSha}~..${lastSha}`);
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(() => getChangedFiles([])).toThrow('Cannot get changed files: the commit list is empty');
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(`git diff --name-only ${onlySha}~..${onlySha}`);
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.mockReturnValue('');
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, 'spawnCommandInGhWorkspace');
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((cmd) => {
126
- if (cmd.includes('--merges'))
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(`git log --merges --pretty=format:%H ${targetBranch}..${sourceBranch}`);
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((cmd) => {
135
- if (cmd.includes('--merges'))
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 (cmd.includes('--pretty=format:%P'))
140
+ if (args.includes('--pretty=format:%P'))
138
141
  return `${branchParentSha} ${targetParentSha}`;
139
- if (cmd.startsWith(`git merge-base ${branchParentSha}`))
140
- return branchParentSha; // not ancestor
141
- if (cmd.startsWith(`git merge-base ${targetParentSha}`))
142
- return targetParentSha; // is ancestor
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
- const differentMergeBase = '0'.repeat(40);
150
- gitCommandSpy.mockImplementation((cmd) => {
151
- if (cmd.includes('--merges'))
155
+ gitCommandSpy.mockImplementation(async (args) => {
156
+ if (args.includes('--merges'))
152
157
  return mergeSha;
153
- if (cmd.includes('--pretty=format:%P'))
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 (cmd.startsWith('git merge-base'))
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, 'spawnCommandInGhWorkspace');
199
+ gitCommandSpy = vi.spyOn(Utils, 'runGitCommand');
169
200
  });
170
- it('should return files touched by non-merge commits', () => {
171
- gitCommandSpy.mockReturnValue('README.md\n\nactors/foo_bar/src/main.ts\n');
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(`git log --no-merges --name-only --pretty=format: ${targetBranch}..${sourceBranch}`);
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.mockReturnValue('');
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, 'spawnCommandInGhWorkspace').mockReturnValue('master');
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('should throw on a detached HEAD', () => {
210
- vi.spyOn(Utils, 'spawnCommandInGhWorkspace').mockReturnValue('HEAD');
211
- expect(() => getCurrentBranch()).toThrow('HEAD is detached');
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, 'spawnCommandInGhWorkspace').mockImplementation((cmd) => {
239
- if (cmd.startsWith('git rev-parse --verify'))
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 (cmd.startsWith('git merge-base'))
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, 'spawnCommandInGhWorkspace');
249
- expect(() => resolveReleaseBaseCommit('0'.repeat(40))).toThrow('the branch was just created');
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.spyOn(Utils, 'spawnCommandInGhWorkspace').mockReturnValue('');
254
- expect(() => resolveReleaseBaseCommit(baseSha)).toThrow('is not in the local git history');
255
- });
256
- it('should throw when the base commit is not an ancestor of HEAD (force push)', () => {
257
- vi.spyOn(Utils, 'spawnCommandInGhWorkspace').mockImplementation((cmd) => {
258
- if (cmd.startsWith('git rev-parse --verify'))
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 (cmd.startsWith('git merge-base'))
330
+ if (args[0] === 'merge-base')
261
331
  return 'c'.repeat(40);
262
332
  return '';
263
333
  });
264
- expect(() => resolveReleaseBaseCommit(baseSha)).toThrow('is not an ancestor of HEAD');
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(() => resolveReleaseBaseCommit('not-a-sha')).toThrow('Invalid base commit SHA');
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 gitCommandSpy;
367
+ let gitRunSpy;
276
368
  beforeEach(() => {
277
- gitCommandSpy = vi.spyOn(Utils, 'spawnCommandInGhWorkspace').mockImplementation((cmd) => {
278
- if (cmd === 'git rev-parse HEAD')
369
+ gitRunSpy = vi.spyOn(Utils, 'runGitCommand').mockImplementation(async (args) => {
370
+ if (args[0] === 'rev-parse')
279
371
  return headSha;
280
- if (cmd.startsWith('git log'))
372
+ if (args[0] === 'log')
281
373
  return `${mergeCommit}\n${mergedBranchCommit}`;
282
- if (cmd.startsWith('git diff --name-only'))
374
+ if (args.includes('--name-only'))
283
375
  return 'actors/foo/src/main.ts\nCHANGELOG.md';
284
- if (cmd === 'git')
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(gitCommandSpy).toHaveBeenCalledWith(`git diff --name-only ${baseSha} HEAD`);
301
- expect(gitCommandSpy).toHaveBeenCalledWith(`git log --pretty=format:'%H»¦«%aN<%aE>»¦«%aD»¦«%s' ${baseSha}..HEAD`);
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('should return null when HEAD is the base commit', () => {
304
- expect(getReleaseChanges(headSha)).toBeNull();
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logger.test.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logging.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/bin/logging.test.ts"],"names":[],"mappings":""}