apify-test-tools 0.8.7-beta.1 → 0.8.7-beta.3

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 (97) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +83 -13
  3. package/bin/actor-filtering.ts +21 -0
  4. package/bin/build-from-local.ts +35 -34
  5. package/bin/build.ts +55 -59
  6. package/bin/diff-changes.ts +166 -125
  7. package/bin/dockerignore.ts +50 -0
  8. package/bin/git.ts +5 -1
  9. package/bin/main.ts +66 -62
  10. package/bin/path-utils.ts +13 -0
  11. package/bin/test-report.ts +5 -5
  12. package/bin/types.ts +19 -5
  13. package/bin/utils.ts +124 -96
  14. package/dist/bin/actor-filtering.d.ts +13 -0
  15. package/dist/bin/actor-filtering.d.ts.map +1 -0
  16. package/dist/bin/actor-filtering.js +19 -0
  17. package/dist/bin/actor-filtering.js.map +1 -0
  18. package/dist/bin/build-from-local.d.ts +2 -2
  19. package/dist/bin/build-from-local.d.ts.map +1 -1
  20. package/dist/bin/build-from-local.js +33 -28
  21. package/dist/bin/build-from-local.js.map +1 -1
  22. package/dist/bin/build.d.ts +5 -8
  23. package/dist/bin/build.d.ts.map +1 -1
  24. package/dist/bin/build.js +49 -56
  25. package/dist/bin/build.js.map +1 -1
  26. package/dist/bin/diff-changes.d.ts +0 -6
  27. package/dist/bin/diff-changes.d.ts.map +1 -1
  28. package/dist/bin/diff-changes.js +129 -89
  29. package/dist/bin/diff-changes.js.map +1 -1
  30. package/dist/bin/dockerignore.d.ts +17 -0
  31. package/dist/bin/dockerignore.d.ts.map +1 -0
  32. package/dist/bin/dockerignore.js +41 -0
  33. package/dist/bin/dockerignore.js.map +1 -0
  34. package/dist/bin/git.d.ts +1 -1
  35. package/dist/bin/git.d.ts.map +1 -1
  36. package/dist/bin/git.js +1 -1
  37. package/dist/bin/git.js.map +1 -1
  38. package/dist/bin/main.d.ts +20 -1
  39. package/dist/bin/main.d.ts.map +1 -1
  40. package/dist/bin/main.js +57 -38
  41. package/dist/bin/main.js.map +1 -1
  42. package/dist/bin/path-utils.d.ts +4 -0
  43. package/dist/bin/path-utils.d.ts.map +1 -0
  44. package/dist/bin/path-utils.js +9 -0
  45. package/dist/bin/path-utils.js.map +1 -0
  46. package/dist/bin/test-report.js +3 -3
  47. package/dist/bin/test-report.js.map +1 -1
  48. package/dist/bin/types.d.ts +17 -4
  49. package/dist/bin/types.d.ts.map +1 -1
  50. package/dist/bin/utils.d.ts +5 -19
  51. package/dist/bin/utils.d.ts.map +1 -1
  52. package/dist/bin/utils.js +84 -82
  53. package/dist/bin/utils.js.map +1 -1
  54. package/dist/lib/lib.d.ts +10 -4
  55. package/dist/lib/lib.d.ts.map +1 -1
  56. package/dist/lib/lib.js +28 -22
  57. package/dist/lib/lib.js.map +1 -1
  58. package/dist/lib/types.d.ts +2 -2
  59. package/dist/lib/types.d.ts.map +1 -1
  60. package/dist/lib/utils.d.ts +1 -1
  61. package/dist/lib/utils.d.ts.map +1 -1
  62. package/dist/lib/utils.js +4 -4
  63. package/dist/lib/utils.js.map +1 -1
  64. package/dist/test/unit/bin/actor-filtering.test.d.ts +2 -0
  65. package/dist/test/unit/bin/actor-filtering.test.d.ts.map +1 -0
  66. package/dist/test/unit/bin/actor-filtering.test.js +41 -0
  67. package/dist/test/unit/bin/actor-filtering.test.js.map +1 -0
  68. package/dist/test/unit/bin/build-from-local.test.js +55 -86
  69. package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
  70. package/dist/test/unit/bin/diff-changes.test.js +358 -36
  71. package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
  72. package/dist/test/unit/bin/dockerignore.test.d.ts +2 -0
  73. package/dist/test/unit/bin/dockerignore.test.d.ts.map +1 -0
  74. package/dist/test/unit/bin/dockerignore.test.js +102 -0
  75. package/dist/test/unit/bin/dockerignore.test.js.map +1 -0
  76. package/dist/test/unit/bin/path-utils.test.d.ts +2 -0
  77. package/dist/test/unit/bin/path-utils.test.d.ts.map +1 -0
  78. package/dist/test/unit/bin/path-utils.test.js +14 -0
  79. package/dist/test/unit/bin/path-utils.test.js.map +1 -0
  80. package/dist/test/unit/bin/utils.test.d.ts +2 -0
  81. package/dist/test/unit/bin/utils.test.d.ts.map +1 -0
  82. package/dist/test/unit/bin/utils.test.js +321 -0
  83. package/dist/test/unit/bin/utils.test.js.map +1 -0
  84. package/dist/test/unit/should-built-and-test.test.js +83 -32
  85. package/dist/test/unit/should-built-and-test.test.js.map +1 -1
  86. package/dist/tsconfig.tsbuildinfo +1 -1
  87. package/lib/lib.ts +28 -23
  88. package/lib/types.ts +2 -2
  89. package/lib/utils.ts +4 -4
  90. package/package.json +6 -5
  91. package/test/unit/bin/actor-filtering.test.ts +52 -0
  92. package/test/unit/bin/build-from-local.test.ts +62 -121
  93. package/test/unit/bin/diff-changes.test.ts +397 -41
  94. package/test/unit/bin/dockerignore.test.ts +123 -0
  95. package/test/unit/bin/path-utils.test.ts +17 -0
  96. package/test/unit/bin/utils.test.ts +381 -0
  97. package/test/unit/should-built-and-test.test.ts +89 -32
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-utils.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/path-utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/F,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,+FAA+F,EAAE,GAAG,EAAE;QACrG,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACnF,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6FAA6F,EAAE,GAAG,EAAE;QACnG,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/bin/utils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,321 @@
1
+ import { afterEach, describe, expect, it, vi } from 'vitest';
2
+ import { CONFIG_FILE_NAME, readConfigFile } from '../../../bin/utils.js';
3
+ const { fsMock } = vi.hoisted(() => ({
4
+ fsMock: {
5
+ readFile: vi.fn(),
6
+ },
7
+ }));
8
+ vi.mock('node:fs/promises', () => ({ default: fsMock }));
9
+ afterEach(() => vi.restoreAllMocks());
10
+ const emptyActorSelection = { actors: [], ignore: [] };
11
+ const validConfig = (actors) => JSON.stringify({ actors });
12
+ const actorJson = (fields = {}) => JSON.stringify(fields);
13
+ const expectFileRead = (filePath) => {
14
+ expect(fsMock.readFile).toHaveBeenCalledWith(filePath, expect.anything());
15
+ };
16
+ const mockFiles = (files) => {
17
+ fsMock.readFile.mockImplementation(async (filePath) => {
18
+ if (filePath in files)
19
+ return Promise.resolve(files[filePath]);
20
+ return Promise.reject(new Error(`ENOENT: ${filePath}`));
21
+ });
22
+ };
23
+ describe('readConfigFile', () => {
24
+ it('returns correct ActorConfig[] for a valid config', async () => {
25
+ mockFiles({
26
+ [CONFIG_FILE_NAME]: validConfig([
27
+ {
28
+ folder: 'actors/shopify',
29
+ actorFullName: 'myteam/shopify-scraper',
30
+ tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
31
+ },
32
+ ]),
33
+ 'actors/shopify/.actor/actor.json': actorJson({ dockerContextDir: '../../..' }),
34
+ });
35
+ const result = await readConfigFile(emptyActorSelection);
36
+ expectFileRead('actors/shopify/.actor/actor.json');
37
+ expect(result).toEqual([
38
+ {
39
+ actorFullName: 'myteam/shopify-scraper',
40
+ folder: 'actors/shopify',
41
+ tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
42
+ dockerContextDir: '',
43
+ contextPaths: [''],
44
+ },
45
+ ]);
46
+ });
47
+ it('normalizes folder "." to ""', async () => {
48
+ mockFiles({
49
+ [CONFIG_FILE_NAME]: validConfig([
50
+ { folder: '.', actorFullName: 'apify/my-actor', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
51
+ ]),
52
+ '.actor/actor.json': actorJson({}),
53
+ });
54
+ const result = await readConfigFile(emptyActorSelection);
55
+ expect(result[0].folder).toBe('');
56
+ expectFileRead('.actor/actor.json');
57
+ });
58
+ it('defaults dockerContextDir to actor folder when absent from actor.json', async () => {
59
+ mockFiles({
60
+ [CONFIG_FILE_NAME]: validConfig([
61
+ { folder: 'actors/web-scraper', actorFullName: 'apify/web-scraper', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
62
+ ]),
63
+ 'actors/web-scraper/.actor/actor.json': actorJson({}),
64
+ });
65
+ const result = await readConfigFile(emptyActorSelection);
66
+ expect(result[0].dockerContextDir).toBe('actors/web-scraper');
67
+ expect(result[0].contextPaths).toEqual(['actors/web-scraper']);
68
+ });
69
+ it('resolves dockerContextDir relative to .actor/ folder', async () => {
70
+ mockFiles({
71
+ [CONFIG_FILE_NAME]: validConfig([
72
+ { folder: 'actors/shopify', actorFullName: 'myteam/shopify', tokenEnvVar: 'APIFY_TOKEN' },
73
+ ]),
74
+ 'actors/shopify/.actor/actor.json': actorJson({ dockerContextDir: '../../..' }),
75
+ });
76
+ const result = await readConfigFile(emptyActorSelection);
77
+ expect(result[0].dockerContextDir).toBe('');
78
+ });
79
+ it('resolves contextPaths from overrideActorContext', async () => {
80
+ mockFiles({
81
+ [CONFIG_FILE_NAME]: validConfig([
82
+ {
83
+ folder: 'actors/shopify',
84
+ actorFullName: 'myteam/shopify',
85
+ tokenEnvVar: 'APIFY_TOKEN',
86
+ overrideActorContext: ['actors/shopify', 'packages'],
87
+ },
88
+ ]),
89
+ 'actors/shopify/.actor/actor.json': actorJson({ dockerContextDir: '../../..' }),
90
+ });
91
+ const result = await readConfigFile(emptyActorSelection);
92
+ expect(result[0].contextPaths).toEqual(['actors/shopify', 'packages']);
93
+ });
94
+ it('handles multiple actors', async () => {
95
+ mockFiles({
96
+ [CONFIG_FILE_NAME]: validConfig([
97
+ { folder: 'actors/web-scraper', actorFullName: 'apify/web-scraper', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
98
+ {
99
+ folder: 'actors/email-sender',
100
+ actorFullName: 'other-team/email-sender',
101
+ tokenEnvVar: 'APIFY_TOKEN_OTHER_TEAM',
102
+ },
103
+ ]),
104
+ 'actors/web-scraper/.actor/actor.json': actorJson({}),
105
+ 'actors/email-sender/.actor/actor.json': actorJson({}),
106
+ });
107
+ const result = await readConfigFile(emptyActorSelection);
108
+ expect(result).toHaveLength(2);
109
+ expect(result[0].actorFullName).toBe('apify/web-scraper');
110
+ expect(result[1].actorFullName).toBe('other-team/email-sender');
111
+ });
112
+ it('throws when config file is missing', async () => {
113
+ fsMock.readFile.mockRejectedValue(new Error('ENOENT'));
114
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('not found');
115
+ });
116
+ it('throws when config file contains invalid JSON', async () => {
117
+ fsMock.readFile.mockResolvedValue('{bad json');
118
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('invalid JSON');
119
+ });
120
+ it('throws when actors array is missing', async () => {
121
+ fsMock.readFile.mockResolvedValue(JSON.stringify({ notActors: [] }));
122
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('"actors" array');
123
+ });
124
+ it('throws on duplicate folders', async () => {
125
+ mockFiles({
126
+ [CONFIG_FILE_NAME]: validConfig([
127
+ { folder: 'actors/shopify', actorFullName: 'apify/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
128
+ { folder: 'actors/shopify', actorFullName: 'other/shopify', tokenEnvVar: 'APIFY_TOKEN_OTHER' },
129
+ ]),
130
+ 'actors/shopify/.actor/actor.json': actorJson({}),
131
+ });
132
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('Duplicate folder');
133
+ });
134
+ it('throws on duplicate folders after normalization ("." and "")', async () => {
135
+ mockFiles({
136
+ [CONFIG_FILE_NAME]: validConfig([
137
+ { folder: '.', actorFullName: 'apify/actor-a', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
138
+ { folder: '', actorFullName: 'other/actor-b', tokenEnvVar: 'APIFY_TOKEN_OTHER' },
139
+ ]),
140
+ '.actor/actor.json': actorJson({}),
141
+ });
142
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('Duplicate folder');
143
+ });
144
+ it('throws when actor.json is missing', async () => {
145
+ mockFiles({
146
+ [CONFIG_FILE_NAME]: validConfig([
147
+ { folder: 'actors/shopify', actorFullName: 'apify/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
148
+ ]),
149
+ });
150
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('Cannot read');
151
+ });
152
+ it('throws when folder is missing', async () => {
153
+ mockFiles({
154
+ [CONFIG_FILE_NAME]: validConfig([{ actorFullName: 'apify/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' }]),
155
+ });
156
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow(/Invalid "folder"/);
157
+ });
158
+ it('throws when folder is not a string', async () => {
159
+ mockFiles({
160
+ [CONFIG_FILE_NAME]: validConfig([
161
+ { folder: 123, actorFullName: 'apify/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
162
+ ]),
163
+ });
164
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow(/Invalid "folder"/);
165
+ });
166
+ it('throws when actorFullName is missing', async () => {
167
+ mockFiles({
168
+ [CONFIG_FILE_NAME]: validConfig([{ folder: 'actors/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' }]),
169
+ 'actors/shopify/.actor/actor.json': actorJson({}),
170
+ });
171
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('Invalid "actorFullName"');
172
+ });
173
+ it('throws when actorFullName has no slash', async () => {
174
+ mockFiles({
175
+ [CONFIG_FILE_NAME]: validConfig([
176
+ { folder: 'actors/shopify', actorFullName: 'shopify-scraper', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
177
+ ]),
178
+ 'actors/shopify/.actor/actor.json': actorJson({}),
179
+ });
180
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('Invalid "actorFullName"');
181
+ });
182
+ it('throws when actorFullName has empty parts', async () => {
183
+ mockFiles({
184
+ [CONFIG_FILE_NAME]: validConfig([
185
+ { folder: 'actors/shopify', actorFullName: '/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
186
+ ]),
187
+ 'actors/shopify/.actor/actor.json': actorJson({}),
188
+ });
189
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('Invalid "actorFullName"');
190
+ });
191
+ it('throws when overrideActorContext is not an array', async () => {
192
+ mockFiles({
193
+ [CONFIG_FILE_NAME]: validConfig([
194
+ {
195
+ folder: 'actors/shopify',
196
+ actorFullName: 'myteam/shopify',
197
+ tokenEnvVar: 'APIFY_TOKEN',
198
+ overrideActorContext: 'packages',
199
+ },
200
+ ]),
201
+ 'actors/shopify/.actor/actor.json': actorJson({}),
202
+ });
203
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('Invalid "overrideActorContext"');
204
+ });
205
+ it('throws when overrideActorContext contains non-strings', async () => {
206
+ mockFiles({
207
+ [CONFIG_FILE_NAME]: validConfig([
208
+ {
209
+ folder: 'actors/shopify',
210
+ actorFullName: 'myteam/shopify',
211
+ tokenEnvVar: 'APIFY_TOKEN',
212
+ overrideActorContext: [123],
213
+ },
214
+ ]),
215
+ 'actors/shopify/.actor/actor.json': actorJson({}),
216
+ });
217
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow('Invalid "overrideActorContext"');
218
+ });
219
+ it('throws when overrideActorContext entries overlap (one is a prefix of another)', async () => {
220
+ mockFiles({
221
+ [CONFIG_FILE_NAME]: validConfig([
222
+ {
223
+ folder: 'actors/shopify',
224
+ actorFullName: 'myteam/shopify',
225
+ tokenEnvVar: 'APIFY_TOKEN',
226
+ overrideActorContext: ['actors/shopify', 'actors'],
227
+ },
228
+ ]),
229
+ 'actors/shopify/.actor/actor.json': actorJson({}),
230
+ });
231
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow(/overlap/);
232
+ });
233
+ it('throws when overrideActorContext contains the repo root alongside another entry', async () => {
234
+ mockFiles({
235
+ [CONFIG_FILE_NAME]: validConfig([
236
+ {
237
+ folder: 'actors/shopify',
238
+ actorFullName: 'myteam/shopify',
239
+ tokenEnvVar: 'APIFY_TOKEN',
240
+ overrideActorContext: ['', 'actors/shopify'],
241
+ },
242
+ ]),
243
+ 'actors/shopify/.actor/actor.json': actorJson({}),
244
+ });
245
+ await expect(readConfigFile(emptyActorSelection)).rejects.toThrow(/overlap/);
246
+ });
247
+ it('adds the actor own folder automatically when overrideActorContext does not cover it', async () => {
248
+ mockFiles({
249
+ [CONFIG_FILE_NAME]: validConfig([
250
+ {
251
+ folder: 'actors/shopify',
252
+ actorFullName: 'myteam/shopify',
253
+ tokenEnvVar: 'APIFY_TOKEN',
254
+ overrideActorContext: ['code', 'shared'],
255
+ },
256
+ ]),
257
+ 'actors/shopify/.actor/actor.json': actorJson({}),
258
+ });
259
+ const result = await readConfigFile(emptyActorSelection);
260
+ expect(result[0].contextPaths).toEqual(['code', 'shared', 'actors/shopify']);
261
+ });
262
+ it('strips trailing slashes from folder and overrideActorContext entries', async () => {
263
+ mockFiles({
264
+ [CONFIG_FILE_NAME]: validConfig([
265
+ {
266
+ folder: 'actors/shopify/',
267
+ actorFullName: 'myteam/shopify',
268
+ tokenEnvVar: 'APIFY_TOKEN',
269
+ overrideActorContext: ['actors/shopify/', 'packages/'],
270
+ },
271
+ ]),
272
+ 'actors/shopify/.actor/actor.json': actorJson({}),
273
+ });
274
+ const result = await readConfigFile(emptyActorSelection);
275
+ expect(result[0].folder).toBe('actors/shopify');
276
+ expect(result[0].contextPaths).toEqual(['actors/shopify', 'packages']);
277
+ });
278
+ it('allows overrideActorContext with disjoint sibling paths that all reach the actor folder via one entry', async () => {
279
+ mockFiles({
280
+ [CONFIG_FILE_NAME]: validConfig([
281
+ {
282
+ folder: 'actors/shopify',
283
+ actorFullName: 'myteam/shopify',
284
+ tokenEnvVar: 'APIFY_TOKEN',
285
+ overrideActorContext: ['actors/shopify', 'code', 'shared'],
286
+ },
287
+ ]),
288
+ 'actors/shopify/.actor/actor.json': actorJson({}),
289
+ });
290
+ const result = await readConfigFile(emptyActorSelection);
291
+ expect(result[0].contextPaths).toEqual(['actors/shopify', 'code', 'shared']);
292
+ });
293
+ describe('actor selection', () => {
294
+ const twoActors = () => mockFiles({
295
+ [CONFIG_FILE_NAME]: validConfig([
296
+ { folder: 'actors/a', actorFullName: 'team/a', tokenEnvVar: 'TOKEN' },
297
+ { folder: 'actors/b', actorFullName: 'team/b', tokenEnvVar: 'TOKEN' },
298
+ ]),
299
+ 'actors/a/.actor/actor.json': actorJson({}),
300
+ 'actors/b/.actor/actor.json': actorJson({}),
301
+ });
302
+ const fullNames = (result) => result.map((c) => c.actorFullName);
303
+ it('returns all actors when the selection is empty', async () => {
304
+ twoActors();
305
+ expect(fullNames(await readConfigFile(emptyActorSelection))).toEqual(['team/a', 'team/b']);
306
+ });
307
+ it('keeps only the selected actors', async () => {
308
+ twoActors();
309
+ expect(fullNames(await readConfigFile({ actors: ['team/a'], ignore: [] }))).toEqual(['team/a']);
310
+ });
311
+ it('drops ignored actors', async () => {
312
+ twoActors();
313
+ expect(fullNames(await readConfigFile({ actors: [], ignore: ['team/a'] }))).toEqual(['team/b']);
314
+ });
315
+ it('throws on an unknown actor name', async () => {
316
+ twoActors();
317
+ await expect(readConfigFile({ actors: ['team/nope'], ignore: [] })).rejects.toThrow('do not exist: team/nope');
318
+ });
319
+ });
320
+ });
321
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/utils.test.ts"],"names":[],"mappings":"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"}
@@ -5,19 +5,25 @@ describe('Should build and test parser', () => {
5
5
  // From https://github.com/apify-store/testing-repo-for-github-actions
6
6
  const ACTOR_CONFIGS = [
7
7
  {
8
- actorName: 'lukaskrivka/testing-github-integration-1',
8
+ actorFullName: 'lukaskrivka/testing-github-integration-1',
9
9
  folder: 'actors/lukaskrivka_testing-github-integration-1',
10
- isStandalone: false,
10
+ tokenEnvVar: 'APIFY_TOKEN_LUKASKRIVKA',
11
+ dockerContextDir: '',
12
+ contextPaths: [''],
11
13
  },
12
14
  {
13
- actorName: 'lukaskrivka/testing-github-integration-2',
15
+ actorFullName: 'lukaskrivka/testing-github-integration-2',
14
16
  folder: 'actors/lukaskrivka_testing-github-integration-2',
15
- isStandalone: false,
17
+ tokenEnvVar: 'APIFY_TOKEN_LUKASKRIVKA',
18
+ dockerContextDir: '',
19
+ contextPaths: [''],
16
20
  },
17
21
  {
18
- actorName: 'lukaskrivka/test-standalone',
22
+ actorFullName: 'lukaskrivka/test-standalone',
19
23
  folder: 'standalone-actors/lukaskrivka_test-standalone',
20
- isStandalone: true,
24
+ tokenEnvVar: 'APIFY_TOKEN_LUKASKRIVKA',
25
+ dockerContextDir: 'standalone-actors/lukaskrivka_test-standalone',
26
+ contextPaths: ['standalone-actors/lukaskrivka_test-standalone'],
21
27
  },
22
28
  ];
23
29
  const commits = [
@@ -40,7 +46,7 @@ describe('Should build and test parser', () => {
40
46
  expect(actorsChanged).toEqual([]);
41
47
  });
42
48
  test('Ignores other ignored files and folders', () => {
43
- const FILES = ['.vscode/', '.gitignore', '.husky/', '.eslintrc', '.editorconfig', '.actor/'];
49
+ const FILES = ['.vscode/', '.gitignore', '.husky/', '.eslintrc', '.editorconfig'];
44
50
  const actorsChanged = getChangedActors({
45
51
  actorConfigs: ACTOR_CONFIGS,
46
52
  isLatest: false,
@@ -49,17 +55,44 @@ describe('Should build and test parser', () => {
49
55
  });
50
56
  expect(actorsChanged).toEqual([]);
51
57
  });
52
- test('Only builds latest for all Actors', () => {
58
+ test('.actor/ changes trigger builds for broad-context actors', () => {
59
+ const FILES = ['.actor/actor.json'];
60
+ const actorsChanged = getChangedActors({
61
+ actorConfigs: ACTOR_CONFIGS,
62
+ isLatest: false,
63
+ filepathsChanged: FILES,
64
+ commits,
65
+ });
66
+ expect(actorsChanged).toEqual(ACTOR_CONFIGS.slice(0, 2));
67
+ });
68
+ test('Root-level changelog is cosmetic for every actor, only on latest', () => {
53
69
  const FILES = ['shared/CHANGELOG.md', 'CHANGELOG.md'];
70
+ const actorsChangedNotLatest = getChangedActors({
71
+ actorConfigs: ACTOR_CONFIGS,
72
+ isLatest: false,
73
+ filepathsChanged: FILES,
74
+ commits,
75
+ });
76
+ expect(actorsChangedNotLatest).toEqual([]);
77
+ const actorsChangedLatest = getChangedActors({
78
+ actorConfigs: ACTOR_CONFIGS,
79
+ isLatest: true,
80
+ filepathsChanged: FILES,
81
+ commits,
82
+ });
83
+ expect(actorsChangedLatest).toEqual(ACTOR_CONFIGS);
84
+ });
85
+ test('A changelog nested inside one actor own folder is excluded for sibling actors, only triggers that actor', () => {
86
+ const FILES = ['actors/lukaskrivka_testing-github-integration-1/CHANGELOG.md'];
54
87
  const actorsChanged = getChangedActors({
55
88
  actorConfigs: ACTOR_CONFIGS,
56
89
  isLatest: true,
57
90
  filepathsChanged: FILES,
58
91
  commits,
59
92
  });
60
- expect(actorsChanged).toEqual(ACTOR_CONFIGS.filter(({ isStandalone }) => !isStandalone));
93
+ expect(actorsChanged).toEqual([ACTOR_CONFIGS[0]]);
61
94
  });
62
- test('Code updated, tests miniactors', () => {
95
+ test('Code updated, tests broad-context actors', () => {
63
96
  const FILES = ['code/src/main.ts', 'package.json'];
64
97
  const actorsChanged = getChangedActors({
65
98
  actorConfigs: ACTOR_CONFIGS,
@@ -67,7 +100,7 @@ describe('Should build and test parser', () => {
67
100
  filepathsChanged: FILES,
68
101
  commits,
69
102
  });
70
- expect(actorsChanged).toEqual(ACTOR_CONFIGS.filter(({ isStandalone }) => !isStandalone));
103
+ expect(actorsChanged).toEqual(ACTOR_CONFIGS.slice(0, 2));
71
104
  });
72
105
  test('Specific Actor functionality configs updated', () => {
73
106
  const FILES = [
@@ -93,7 +126,7 @@ describe('Should build and test parser', () => {
93
126
  });
94
127
  expect(actorsChanged).toEqual(ACTOR_CONFIGS.slice(0, 2));
95
128
  });
96
- test('Miniactor, Code and standalone actor updated,', () => {
129
+ test('Actor folder, shared code and narrow-context actor updated', () => {
97
130
  const FILES = [
98
131
  'actors/lukaskrivka_testing-github-integration-1/.actor/actor.json',
99
132
  'code/src/main.ts',
@@ -170,7 +203,7 @@ describe('Should build and test parser', () => {
170
203
  // Only the second actor (functional change) should be built and tested
171
204
  expect(actorsChanged).toEqual([ACTOR_CONFIGS[1]]);
172
205
  });
173
- test('Standalone actor with cosmetic-only JSON change in PR context skips tests', () => {
206
+ test('Narrow-context actor with cosmetic-only JSON change in PR context skips tests', () => {
174
207
  const FILES = ['standalone-actors/lukaskrivka_test-standalone/.actor/actor.json'];
175
208
  isCosmeticOnlyJsonSchemaSpy.mockReturnValue(true);
176
209
  const actorsChanged = getChangedActors({
@@ -199,49 +232,67 @@ describe('Should build and test parser', () => {
199
232
  const ACTOR_CONFIGS_GOOGLE_MAPS = [
200
233
  {
201
234
  // Edge case of capitals in actor name :)
202
- actorName: 'compass/Google-Maps-Reviews-Scraper',
235
+ actorFullName: 'compass/Google-Maps-Reviews-Scraper',
203
236
  folder: 'actors/compass_Google-Maps-Reviews-Scraper',
204
- isStandalone: false,
237
+ tokenEnvVar: 'APIFY_TOKEN_COMPASS',
238
+ dockerContextDir: '',
239
+ contextPaths: [''],
205
240
  },
206
241
  {
207
- actorName: 'compass/crawler-google-places',
242
+ actorFullName: 'compass/crawler-google-places',
208
243
  folder: 'actors/compass_crawler-google-places',
209
- isStandalone: false,
244
+ tokenEnvVar: 'APIFY_TOKEN_COMPASS',
245
+ dockerContextDir: '',
246
+ contextPaths: [''],
210
247
  },
211
248
  {
212
- actorName: 'compass/easy-google-maps',
249
+ actorFullName: 'compass/easy-google-maps',
213
250
  folder: 'actors/compass_easy-google-maps',
214
- isStandalone: false,
251
+ tokenEnvVar: 'APIFY_TOKEN_COMPASS',
252
+ dockerContextDir: '',
253
+ contextPaths: [''],
215
254
  },
216
255
  {
217
- actorName: 'compass/google-maps-extractor',
256
+ actorFullName: 'compass/google-maps-extractor',
218
257
  folder: 'actors/compass_google-maps-extractor',
219
- isStandalone: false,
258
+ tokenEnvVar: 'APIFY_TOKEN_COMPASS',
259
+ dockerContextDir: '',
260
+ contextPaths: [''],
220
261
  },
221
262
  {
222
- actorName: 'compass/google-places-api',
263
+ actorFullName: 'compass/google-places-api',
223
264
  folder: 'actors/compass_google-places-api',
224
- isStandalone: false,
265
+ tokenEnvVar: 'APIFY_TOKEN_COMPASS',
266
+ dockerContextDir: '',
267
+ contextPaths: [''],
225
268
  },
226
269
  {
227
- actorName: 'lukaskrivka/google-maps-with-contact-details',
270
+ actorFullName: 'lukaskrivka/google-maps-with-contact-details',
228
271
  folder: 'actors/lukaskrivka_google-maps-with-contact-details',
229
- isStandalone: false,
272
+ tokenEnvVar: 'APIFY_TOKEN_LUKASKRIVKA',
273
+ dockerContextDir: '',
274
+ contextPaths: [''],
230
275
  },
231
276
  {
232
- actorName: 'natasha.lekh/gas-prices-scraper',
277
+ actorFullName: 'natasha.lekh/gas-prices-scraper',
233
278
  folder: 'actors/natasha.lekh_gas-prices-scraper',
234
- isStandalone: false,
279
+ tokenEnvVar: 'APIFY_TOKEN_NATASHA_LEKH',
280
+ dockerContextDir: '',
281
+ contextPaths: [''],
235
282
  },
236
283
  {
237
- actorName: 'natasha.lekh/vegan-places-finder',
284
+ actorFullName: 'natasha.lekh/vegan-places-finder',
238
285
  folder: 'actors/natasha.lekh_vegan-places-finder',
239
- isStandalone: false,
286
+ tokenEnvVar: 'APIFY_TOKEN_NATASHA_LEKH',
287
+ dockerContextDir: '',
288
+ contextPaths: [''],
240
289
  },
241
290
  {
242
- actorName: 'lukaskrivka/google-maps-scraper-orchestrator',
291
+ actorFullName: 'lukaskrivka/google-maps-scraper-orchestrator',
243
292
  folder: 'standalone-actors/lukaskrivka_google-maps-scraper-orchestrator',
244
- isStandalone: true,
293
+ tokenEnvVar: 'APIFY_TOKEN_LUKASKRIVKA',
294
+ dockerContextDir: 'standalone-actors/lukaskrivka_google-maps-scraper-orchestrator',
295
+ contextPaths: ['standalone-actors/lukaskrivka_google-maps-scraper-orchestrator'],
245
296
  },
246
297
  ];
247
298
  const actorsChanged = getChangedActors({
@@ -250,7 +301,7 @@ describe('Should build and test parser', () => {
250
301
  filepathsChanged: FILES,
251
302
  commits,
252
303
  });
253
- expect(actorsChanged).toEqual(ACTOR_CONFIGS_GOOGLE_MAPS.filter(({ isStandalone }) => !isStandalone));
304
+ expect(actorsChanged).toEqual(ACTOR_CONFIGS_GOOGLE_MAPS.slice(0, 8));
254
305
  });
255
306
  });
256
307
  //# sourceMappingURL=should-built-and-test.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"should-built-and-test.test.js","sourceRoot":"","sources":["../../../test/unit/should-built-and-test.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"should-built-and-test.test.js","sourceRoot":"","sources":["../../../test/unit/should-built-and-test.test.ts"],"names":[],"mappings":"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"}