apify-test-tools 0.8.6 → 0.9.0-beta.1

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 (79) hide show
  1. package/README.md +83 -13
  2. package/bin/build-from-local.ts +35 -34
  3. package/bin/build.ts +55 -59
  4. package/bin/diff-changes.ts +166 -125
  5. package/bin/dockerignore.ts +50 -0
  6. package/bin/main.ts +7 -7
  7. package/bin/path-utils.ts +13 -0
  8. package/bin/test-report.ts +5 -5
  9. package/bin/types.ts +17 -5
  10. package/bin/utils.ts +122 -95
  11. package/dist/bin/build-from-local.d.ts +2 -2
  12. package/dist/bin/build-from-local.d.ts.map +1 -1
  13. package/dist/bin/build-from-local.js +33 -28
  14. package/dist/bin/build-from-local.js.map +1 -1
  15. package/dist/bin/build.d.ts +5 -8
  16. package/dist/bin/build.d.ts.map +1 -1
  17. package/dist/bin/build.js +49 -56
  18. package/dist/bin/build.js.map +1 -1
  19. package/dist/bin/diff-changes.d.ts +0 -6
  20. package/dist/bin/diff-changes.d.ts.map +1 -1
  21. package/dist/bin/diff-changes.js +129 -89
  22. package/dist/bin/diff-changes.js.map +1 -1
  23. package/dist/bin/dockerignore.d.ts +17 -0
  24. package/dist/bin/dockerignore.d.ts.map +1 -0
  25. package/dist/bin/dockerignore.js +41 -0
  26. package/dist/bin/dockerignore.js.map +1 -0
  27. package/dist/bin/main.js +7 -7
  28. package/dist/bin/main.js.map +1 -1
  29. package/dist/bin/path-utils.d.ts +4 -0
  30. package/dist/bin/path-utils.d.ts.map +1 -0
  31. package/dist/bin/path-utils.js +9 -0
  32. package/dist/bin/path-utils.js.map +1 -0
  33. package/dist/bin/test-report.js +3 -3
  34. package/dist/bin/test-report.js.map +1 -1
  35. package/dist/bin/types.d.ts +15 -4
  36. package/dist/bin/types.d.ts.map +1 -1
  37. package/dist/bin/utils.d.ts +2 -19
  38. package/dist/bin/utils.d.ts.map +1 -1
  39. package/dist/bin/utils.js +82 -81
  40. package/dist/bin/utils.js.map +1 -1
  41. package/dist/lib/lib.d.ts +10 -4
  42. package/dist/lib/lib.d.ts.map +1 -1
  43. package/dist/lib/lib.js +28 -22
  44. package/dist/lib/lib.js.map +1 -1
  45. package/dist/lib/types.d.ts +2 -2
  46. package/dist/lib/types.d.ts.map +1 -1
  47. package/dist/lib/utils.d.ts +1 -1
  48. package/dist/lib/utils.d.ts.map +1 -1
  49. package/dist/lib/utils.js +4 -4
  50. package/dist/lib/utils.js.map +1 -1
  51. package/dist/test/unit/bin/build-from-local.test.js +55 -86
  52. package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
  53. package/dist/test/unit/bin/diff-changes.test.js +358 -36
  54. package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
  55. package/dist/test/unit/bin/dockerignore.test.d.ts +2 -0
  56. package/dist/test/unit/bin/dockerignore.test.d.ts.map +1 -0
  57. package/dist/test/unit/bin/dockerignore.test.js +102 -0
  58. package/dist/test/unit/bin/dockerignore.test.js.map +1 -0
  59. package/dist/test/unit/bin/path-utils.test.d.ts +2 -0
  60. package/dist/test/unit/bin/path-utils.test.d.ts.map +1 -0
  61. package/dist/test/unit/bin/path-utils.test.js +14 -0
  62. package/dist/test/unit/bin/path-utils.test.js.map +1 -0
  63. package/dist/test/unit/bin/utils.test.d.ts +2 -0
  64. package/dist/test/unit/bin/utils.test.d.ts.map +1 -0
  65. package/dist/test/unit/bin/utils.test.js +293 -0
  66. package/dist/test/unit/bin/utils.test.js.map +1 -0
  67. package/dist/test/unit/should-built-and-test.test.js +83 -32
  68. package/dist/test/unit/should-built-and-test.test.js.map +1 -1
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/lib/lib.ts +28 -22
  71. package/lib/types.ts +2 -2
  72. package/lib/utils.ts +4 -4
  73. package/package.json +62 -61
  74. package/test/unit/bin/build-from-local.test.ts +62 -121
  75. package/test/unit/bin/diff-changes.test.ts +397 -41
  76. package/test/unit/bin/dockerignore.test.ts +123 -0
  77. package/test/unit/bin/path-utils.test.ts +17 -0
  78. package/test/unit/bin/utils.test.ts +343 -0
  79. 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,293 @@
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 validConfig = (actors) => JSON.stringify({ actors });
11
+ const actorJson = (fields = {}) => JSON.stringify(fields);
12
+ const expectFileRead = (filePath) => {
13
+ expect(fsMock.readFile).toHaveBeenCalledWith(filePath, expect.anything());
14
+ };
15
+ const mockFiles = (files) => {
16
+ fsMock.readFile.mockImplementation(async (filePath) => {
17
+ if (filePath in files)
18
+ return Promise.resolve(files[filePath]);
19
+ return Promise.reject(new Error(`ENOENT: ${filePath}`));
20
+ });
21
+ };
22
+ describe('readConfigFile', () => {
23
+ it('returns correct ActorConfig[] for a valid config', async () => {
24
+ mockFiles({
25
+ [CONFIG_FILE_NAME]: validConfig([
26
+ {
27
+ folder: 'actors/shopify',
28
+ actorFullName: 'myteam/shopify-scraper',
29
+ tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
30
+ },
31
+ ]),
32
+ 'actors/shopify/.actor/actor.json': actorJson({ dockerContextDir: '../../..' }),
33
+ });
34
+ const result = await readConfigFile();
35
+ expectFileRead('actors/shopify/.actor/actor.json');
36
+ expect(result).toEqual([
37
+ {
38
+ actorFullName: 'myteam/shopify-scraper',
39
+ folder: 'actors/shopify',
40
+ tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
41
+ dockerContextDir: '',
42
+ contextPaths: [''],
43
+ },
44
+ ]);
45
+ });
46
+ it('normalizes folder "." to ""', async () => {
47
+ mockFiles({
48
+ [CONFIG_FILE_NAME]: validConfig([
49
+ { folder: '.', actorFullName: 'apify/my-actor', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
50
+ ]),
51
+ '.actor/actor.json': actorJson({}),
52
+ });
53
+ const result = await readConfigFile();
54
+ expect(result[0].folder).toBe('');
55
+ expectFileRead('.actor/actor.json');
56
+ });
57
+ it('defaults dockerContextDir to actor folder when absent from actor.json', async () => {
58
+ mockFiles({
59
+ [CONFIG_FILE_NAME]: validConfig([
60
+ { folder: 'actors/web-scraper', actorFullName: 'apify/web-scraper', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
61
+ ]),
62
+ 'actors/web-scraper/.actor/actor.json': actorJson({}),
63
+ });
64
+ const result = await readConfigFile();
65
+ expect(result[0].dockerContextDir).toBe('actors/web-scraper');
66
+ expect(result[0].contextPaths).toEqual(['actors/web-scraper']);
67
+ });
68
+ it('resolves dockerContextDir relative to .actor/ folder', async () => {
69
+ mockFiles({
70
+ [CONFIG_FILE_NAME]: validConfig([
71
+ { folder: 'actors/shopify', actorFullName: 'myteam/shopify', tokenEnvVar: 'APIFY_TOKEN' },
72
+ ]),
73
+ 'actors/shopify/.actor/actor.json': actorJson({ dockerContextDir: '../../..' }),
74
+ });
75
+ const result = await readConfigFile();
76
+ expect(result[0].dockerContextDir).toBe('');
77
+ });
78
+ it('resolves contextPaths from overrideActorContext', async () => {
79
+ mockFiles({
80
+ [CONFIG_FILE_NAME]: validConfig([
81
+ {
82
+ folder: 'actors/shopify',
83
+ actorFullName: 'myteam/shopify',
84
+ tokenEnvVar: 'APIFY_TOKEN',
85
+ overrideActorContext: ['actors/shopify', 'packages'],
86
+ },
87
+ ]),
88
+ 'actors/shopify/.actor/actor.json': actorJson({ dockerContextDir: '../../..' }),
89
+ });
90
+ const result = await readConfigFile();
91
+ expect(result[0].contextPaths).toEqual(['actors/shopify', 'packages']);
92
+ });
93
+ it('handles multiple actors', async () => {
94
+ mockFiles({
95
+ [CONFIG_FILE_NAME]: validConfig([
96
+ { folder: 'actors/web-scraper', actorFullName: 'apify/web-scraper', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
97
+ {
98
+ folder: 'actors/email-sender',
99
+ actorFullName: 'other-team/email-sender',
100
+ tokenEnvVar: 'APIFY_TOKEN_OTHER_TEAM',
101
+ },
102
+ ]),
103
+ 'actors/web-scraper/.actor/actor.json': actorJson({}),
104
+ 'actors/email-sender/.actor/actor.json': actorJson({}),
105
+ });
106
+ const result = await readConfigFile();
107
+ expect(result).toHaveLength(2);
108
+ expect(result[0].actorFullName).toBe('apify/web-scraper');
109
+ expect(result[1].actorFullName).toBe('other-team/email-sender');
110
+ });
111
+ it('throws when config file is missing', async () => {
112
+ fsMock.readFile.mockRejectedValue(new Error('ENOENT'));
113
+ await expect(readConfigFile()).rejects.toThrow('not found');
114
+ });
115
+ it('throws when config file contains invalid JSON', async () => {
116
+ fsMock.readFile.mockResolvedValue('{bad json');
117
+ await expect(readConfigFile()).rejects.toThrow('invalid JSON');
118
+ });
119
+ it('throws when actors array is missing', async () => {
120
+ fsMock.readFile.mockResolvedValue(JSON.stringify({ notActors: [] }));
121
+ await expect(readConfigFile()).rejects.toThrow('"actors" array');
122
+ });
123
+ it('throws on duplicate folders', async () => {
124
+ mockFiles({
125
+ [CONFIG_FILE_NAME]: validConfig([
126
+ { folder: 'actors/shopify', actorFullName: 'apify/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
127
+ { folder: 'actors/shopify', actorFullName: 'other/shopify', tokenEnvVar: 'APIFY_TOKEN_OTHER' },
128
+ ]),
129
+ 'actors/shopify/.actor/actor.json': actorJson({}),
130
+ });
131
+ await expect(readConfigFile()).rejects.toThrow('Duplicate folder');
132
+ });
133
+ it('throws on duplicate folders after normalization ("." and "")', async () => {
134
+ mockFiles({
135
+ [CONFIG_FILE_NAME]: validConfig([
136
+ { folder: '.', actorFullName: 'apify/actor-a', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
137
+ { folder: '', actorFullName: 'other/actor-b', tokenEnvVar: 'APIFY_TOKEN_OTHER' },
138
+ ]),
139
+ '.actor/actor.json': actorJson({}),
140
+ });
141
+ await expect(readConfigFile()).rejects.toThrow('Duplicate folder');
142
+ });
143
+ it('throws when actor.json is missing', async () => {
144
+ mockFiles({
145
+ [CONFIG_FILE_NAME]: validConfig([
146
+ { folder: 'actors/shopify', actorFullName: 'apify/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
147
+ ]),
148
+ });
149
+ await expect(readConfigFile()).rejects.toThrow('Cannot read');
150
+ });
151
+ it('throws when folder is missing', async () => {
152
+ mockFiles({
153
+ [CONFIG_FILE_NAME]: validConfig([{ actorFullName: 'apify/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' }]),
154
+ });
155
+ await expect(readConfigFile()).rejects.toThrow(/Invalid "folder"/);
156
+ });
157
+ it('throws when folder is not a string', async () => {
158
+ mockFiles({
159
+ [CONFIG_FILE_NAME]: validConfig([
160
+ { folder: 123, actorFullName: 'apify/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
161
+ ]),
162
+ });
163
+ await expect(readConfigFile()).rejects.toThrow(/Invalid "folder"/);
164
+ });
165
+ it('throws when actorFullName is missing', async () => {
166
+ mockFiles({
167
+ [CONFIG_FILE_NAME]: validConfig([{ folder: 'actors/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' }]),
168
+ 'actors/shopify/.actor/actor.json': actorJson({}),
169
+ });
170
+ await expect(readConfigFile()).rejects.toThrow('Invalid "actorFullName"');
171
+ });
172
+ it('throws when actorFullName has no slash', async () => {
173
+ mockFiles({
174
+ [CONFIG_FILE_NAME]: validConfig([
175
+ { folder: 'actors/shopify', actorFullName: 'shopify-scraper', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
176
+ ]),
177
+ 'actors/shopify/.actor/actor.json': actorJson({}),
178
+ });
179
+ await expect(readConfigFile()).rejects.toThrow('Invalid "actorFullName"');
180
+ });
181
+ it('throws when actorFullName has empty parts', async () => {
182
+ mockFiles({
183
+ [CONFIG_FILE_NAME]: validConfig([
184
+ { folder: 'actors/shopify', actorFullName: '/shopify', tokenEnvVar: 'APIFY_TOKEN_APIFY' },
185
+ ]),
186
+ 'actors/shopify/.actor/actor.json': actorJson({}),
187
+ });
188
+ await expect(readConfigFile()).rejects.toThrow('Invalid "actorFullName"');
189
+ });
190
+ it('throws when overrideActorContext is not an array', async () => {
191
+ mockFiles({
192
+ [CONFIG_FILE_NAME]: validConfig([
193
+ {
194
+ folder: 'actors/shopify',
195
+ actorFullName: 'myteam/shopify',
196
+ tokenEnvVar: 'APIFY_TOKEN',
197
+ overrideActorContext: 'packages',
198
+ },
199
+ ]),
200
+ 'actors/shopify/.actor/actor.json': actorJson({}),
201
+ });
202
+ await expect(readConfigFile()).rejects.toThrow('Invalid "overrideActorContext"');
203
+ });
204
+ it('throws when overrideActorContext contains non-strings', async () => {
205
+ mockFiles({
206
+ [CONFIG_FILE_NAME]: validConfig([
207
+ {
208
+ folder: 'actors/shopify',
209
+ actorFullName: 'myteam/shopify',
210
+ tokenEnvVar: 'APIFY_TOKEN',
211
+ overrideActorContext: [123],
212
+ },
213
+ ]),
214
+ 'actors/shopify/.actor/actor.json': actorJson({}),
215
+ });
216
+ await expect(readConfigFile()).rejects.toThrow('Invalid "overrideActorContext"');
217
+ });
218
+ it('throws when overrideActorContext entries overlap (one is a prefix of another)', async () => {
219
+ mockFiles({
220
+ [CONFIG_FILE_NAME]: validConfig([
221
+ {
222
+ folder: 'actors/shopify',
223
+ actorFullName: 'myteam/shopify',
224
+ tokenEnvVar: 'APIFY_TOKEN',
225
+ overrideActorContext: ['actors/shopify', 'actors'],
226
+ },
227
+ ]),
228
+ 'actors/shopify/.actor/actor.json': actorJson({}),
229
+ });
230
+ await expect(readConfigFile()).rejects.toThrow(/overlap/);
231
+ });
232
+ it('throws when overrideActorContext contains the repo root alongside another entry', async () => {
233
+ mockFiles({
234
+ [CONFIG_FILE_NAME]: validConfig([
235
+ {
236
+ folder: 'actors/shopify',
237
+ actorFullName: 'myteam/shopify',
238
+ tokenEnvVar: 'APIFY_TOKEN',
239
+ overrideActorContext: ['', 'actors/shopify'],
240
+ },
241
+ ]),
242
+ 'actors/shopify/.actor/actor.json': actorJson({}),
243
+ });
244
+ await expect(readConfigFile()).rejects.toThrow(/overlap/);
245
+ });
246
+ it('adds the actor own folder automatically when overrideActorContext does not cover it', async () => {
247
+ mockFiles({
248
+ [CONFIG_FILE_NAME]: validConfig([
249
+ {
250
+ folder: 'actors/shopify',
251
+ actorFullName: 'myteam/shopify',
252
+ tokenEnvVar: 'APIFY_TOKEN',
253
+ overrideActorContext: ['code', 'shared'],
254
+ },
255
+ ]),
256
+ 'actors/shopify/.actor/actor.json': actorJson({}),
257
+ });
258
+ const result = await readConfigFile();
259
+ expect(result[0].contextPaths).toEqual(['code', 'shared', 'actors/shopify']);
260
+ });
261
+ it('strips trailing slashes from folder and overrideActorContext entries', async () => {
262
+ mockFiles({
263
+ [CONFIG_FILE_NAME]: validConfig([
264
+ {
265
+ folder: 'actors/shopify/',
266
+ actorFullName: 'myteam/shopify',
267
+ tokenEnvVar: 'APIFY_TOKEN',
268
+ overrideActorContext: ['actors/shopify/', 'packages/'],
269
+ },
270
+ ]),
271
+ 'actors/shopify/.actor/actor.json': actorJson({}),
272
+ });
273
+ const result = await readConfigFile();
274
+ expect(result[0].folder).toBe('actors/shopify');
275
+ expect(result[0].contextPaths).toEqual(['actors/shopify', 'packages']);
276
+ });
277
+ it('allows overrideActorContext with disjoint sibling paths that all reach the actor folder via one entry', async () => {
278
+ mockFiles({
279
+ [CONFIG_FILE_NAME]: validConfig([
280
+ {
281
+ folder: 'actors/shopify',
282
+ actorFullName: 'myteam/shopify',
283
+ tokenEnvVar: 'APIFY_TOKEN',
284
+ overrideActorContext: ['actors/shopify', 'code', 'shared'],
285
+ },
286
+ ]),
287
+ 'actors/shopify/.actor/actor.json': actorJson({}),
288
+ });
289
+ const result = await readConfigFile();
290
+ expect(result[0].contextPaths).toEqual(['actors/shopify', 'code', 'shared']);
291
+ });
292
+ });
293
+ //# 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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"}