apify-test-tools 0.10.1-beta.6 → 0.10.1-beta.7

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 (57) hide show
  1. package/bin/build-from-local.ts +19 -27
  2. package/bin/build.ts +1 -1
  3. package/bin/diff-changes.ts +26 -35
  4. package/bin/dockerignore.ts +24 -17
  5. package/bin/types.ts +7 -3
  6. package/bin/utils/config/actor-json.ts +49 -8
  7. package/bin/utils/config/load-config.ts +4 -24
  8. package/bin/utils/path/repo-relative.ts +27 -4
  9. package/dist/bin/build-from-local.d.ts +3 -2
  10. package/dist/bin/build-from-local.d.ts.map +1 -1
  11. package/dist/bin/build-from-local.js +16 -23
  12. package/dist/bin/build-from-local.js.map +1 -1
  13. package/dist/bin/build.js +1 -1
  14. package/dist/bin/build.js.map +1 -1
  15. package/dist/bin/diff-changes.d.ts.map +1 -1
  16. package/dist/bin/diff-changes.js +26 -29
  17. package/dist/bin/diff-changes.js.map +1 -1
  18. package/dist/bin/dockerignore.d.ts +11 -10
  19. package/dist/bin/dockerignore.d.ts.map +1 -1
  20. package/dist/bin/dockerignore.js +24 -15
  21. package/dist/bin/dockerignore.js.map +1 -1
  22. package/dist/bin/types.d.ts +6 -3
  23. package/dist/bin/types.d.ts.map +1 -1
  24. package/dist/bin/utils/config/actor-json.d.ts.map +1 -1
  25. package/dist/bin/utils/config/actor-json.js +35 -4
  26. package/dist/bin/utils/config/actor-json.js.map +1 -1
  27. package/dist/bin/utils/config/load-config.d.ts +1 -11
  28. package/dist/bin/utils/config/load-config.d.ts.map +1 -1
  29. package/dist/bin/utils/config/load-config.js +1 -10
  30. package/dist/bin/utils/config/load-config.js.map +1 -1
  31. package/dist/bin/utils/path/repo-relative.d.ts +4 -0
  32. package/dist/bin/utils/path/repo-relative.d.ts.map +1 -1
  33. package/dist/bin/utils/path/repo-relative.js +24 -5
  34. package/dist/bin/utils/path/repo-relative.js.map +1 -1
  35. package/dist/test/unit/bin/actor-filtering.test.js +8 -2
  36. package/dist/test/unit/bin/actor-filtering.test.js.map +1 -1
  37. package/dist/test/unit/bin/build-from-local.test.js +53 -5
  38. package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
  39. package/dist/test/unit/bin/diff-changes.test.js +98 -132
  40. package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
  41. package/dist/test/unit/bin/dockerignore.test.js +27 -24
  42. package/dist/test/unit/bin/dockerignore.test.js.map +1 -1
  43. package/dist/test/unit/bin/utils/config/load-config.test.js +40 -4
  44. package/dist/test/unit/bin/utils/config/load-config.test.js.map +1 -1
  45. package/dist/test/unit/bin/utils/path/repo-relative.test.js +5 -0
  46. package/dist/test/unit/bin/utils/path/repo-relative.test.js.map +1 -1
  47. package/dist/test/unit/should-built-and-test.test.js +55 -116
  48. package/dist/test/unit/should-built-and-test.test.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/test/unit/bin/actor-filtering.test.ts +8 -2
  52. package/test/unit/bin/build-from-local.test.ts +54 -8
  53. package/test/unit/bin/diff-changes.test.ts +133 -133
  54. package/test/unit/bin/dockerignore.test.ts +28 -28
  55. package/test/unit/bin/utils/config/load-config.test.ts +54 -4
  56. package/test/unit/bin/utils/path/repo-relative.test.ts +6 -0
  57. package/test/unit/should-built-and-test.test.ts +98 -121
@@ -45,6 +45,9 @@ export class AbstractPath {
45
45
  }
46
46
  export class RelativeDir extends AbstractPath {
47
47
  static ROOT = new RelativeDir('.');
48
+ isRoot() {
49
+ return this.path === RelativeDir.ROOT.path;
50
+ }
48
51
  joinDir(relativePath) {
49
52
  return new RelativeDir(this.join(relativePath));
50
53
  }
@@ -53,10 +56,23 @@ export class RelativeDir extends AbstractPath {
53
56
  assertNamesFile(relativePath);
54
57
  return new RelativeFile(this.join(relativePath));
55
58
  }
59
+ relativePathTo(filePath) {
60
+ // mainly for matching against .dockerignore since paths consumed by it are relative to the docker context dir
61
+ return posix.relative(this.path, filePath);
62
+ }
63
+ containsPath(filePath) {
64
+ try {
65
+ // should be OK even if not a directory (e.g. a file)
66
+ return this.contains(new RelativeDir(filePath));
67
+ }
68
+ catch {
69
+ return false;
70
+ }
71
+ }
56
72
  // True when `other` is this directory itself or lies inside it.
57
73
  contains(other) {
58
74
  // the root contains every path
59
- if (this.path === '.')
75
+ if (this.isRoot())
60
76
  return true;
61
77
  return this.isEqualTo(other) || other.path.startsWith(`${this.path}/`);
62
78
  }
@@ -113,16 +129,19 @@ export class RelativeFile extends AbstractPath {
113
129
  isWithin(scope) {
114
130
  return scope.contains(this);
115
131
  }
132
+ exists() {
133
+ // `stat`, not `lstat`: a symlink must resolve to its target, matching what reading it does.
134
+ return statSync(this.path, { throwIfNoEntry: false })?.isFile() ?? false;
135
+ }
116
136
  // Throws unless this path exists and is a file. Paths resolve against the process working
117
137
  // directory, which is the repo root.
118
138
  assertIsFile() {
119
- // `stat`, not `lstat`: a symlink must resolve to its target, matching what reading it does.
139
+ if (this.exists())
140
+ return this;
120
141
  const stats = statSync(this.path, { throwIfNoEntry: false });
121
142
  if (!stats)
122
143
  throw new Error(`Expected file "${this}" to exist.`);
123
- if (!stats.isFile())
124
- throw new Error(`Expected "${this}" to be a file.`);
125
- return this;
144
+ throw new Error(`Expected "${this}" to be a file.`);
126
145
  }
127
146
  }
128
147
  export class ExistingFile extends RelativeFile {
@@ -1 +1 @@
1
- {"version":3,"file":"repo-relative.js","sourceRoot":"","sources":["../../../../bin/utils/path/repo-relative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo-relative.js","sourceRoot":"","sources":["../../../../bin/utils/path/repo-relative.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
  import { selectActors } from '../../../bin/actor-filtering.js';
3
+ import { ExistingDir, ExistingFile, RelativeDir } from '../../../bin/utils/path/repo-relative.js';
3
4
  const actor = (actorFullName) => ({
4
5
  actorFullName,
5
- folder: actorFullName.split('/')[1],
6
+ folder: new ExistingDir('.'),
6
7
  tokenEnvVar: 'TOKEN',
7
- dockerContextDir: '.',
8
+ actorJson: {
9
+ // kind of a hack, but its not supposed to be read here
10
+ file: new ExistingFile('package.json'),
11
+ dockerContextDir: RelativeDir.ROOT,
12
+ },
13
+ dockerContextDir: new RelativeDir('.'),
8
14
  contextPaths: [],
9
15
  });
10
16
  const configs = [actor('owner/a'), actor('owner/b'), actor('owner/c')];
@@ -1 +1 @@
1
- {"version":3,"file":"actor-filtering.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/actor-filtering.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,MAAM,KAAK,GAAG,CAAC,aAAqB,EAAe,EAAE,CAAC,CAAC;IACnD,aAAa;IACb,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO;IACpB,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,MAAM,KAAK,GAAG,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AAE5E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC3E,SAAS;YACT,SAAS;YACT,SAAS;SACZ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC/F,SAAS;YACT,SAAS;SACZ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACpH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACxG,SAAS;SACZ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC3E,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CACrF,4EAA4E,CAC/E,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"actor-filtering.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/actor-filtering.test.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { collectNonIgnoredFiles, collectSourceFiles, flattenMonorepoContext, rew
8
8
  // tsconfig (used for the real build and for eslint's type-aware linting) has no such restriction.
9
9
  } from '../../../bin/build-from-local.js';
10
10
  import * as Utils from '../../../bin/utils.js';
11
+ import { ExistingDir, ExistingFile, RelativeDir } from '../../../bin/utils/path/repo-relative.js';
11
12
  const mkTempDir = async (prefix) => fs.mkdtemp(path.join(os.tmpdir(), prefix));
12
13
  describe('build-from-local helpers', () => {
13
14
  const tempDirs = [];
@@ -21,12 +22,48 @@ describe('build-from-local helpers', () => {
21
22
  tempDirs.push(rootDir);
22
23
  await fs.writeFile(path.join(rootDir, 'main.js'), 'console.log(1)');
23
24
  await fs.writeFile(path.join(rootDir, '.env'), 'SECRET=1');
25
+ await fs.writeFile(path.join(rootDir, 'docker-ignored.txt'), 'ignored');
26
+ await fs.writeFile(path.join(rootDir, '.dockerignore'), 'docker-ignored.txt\n');
24
27
  await fs.mkdir(path.join(rootDir, 'sub'));
25
28
  await fs.writeFile(path.join(rootDir, 'sub', 'ignored.log'), 'log');
26
- vi.spyOn(Utils, 'listRepoFilePaths').mockResolvedValue(['main.js', '.env', 'sub/ignored.log']);
29
+ vi.spyOn(Utils, 'listRepoFilePaths').mockResolvedValue([
30
+ 'main.js',
31
+ '.env',
32
+ 'docker-ignored.txt',
33
+ 'sub/ignored.log',
34
+ ]);
27
35
  vi.spyOn(Utils, 'getGitignoredPaths').mockImplementation(async (relativePaths) => new Set(relativePaths.filter((p) => p.endsWith('.log'))));
28
- const result = await collectNonIgnoredFiles(rootDir, rootDir);
29
- expect(result).toStrictEqual([path.join(rootDir, 'main.js')]);
36
+ const originalCwd = process.cwd();
37
+ process.chdir(rootDir);
38
+ try {
39
+ expect(await collectNonIgnoredFiles(RelativeDir.ROOT, rootDir)).toStrictEqual([
40
+ path.join(rootDir, 'main.js'),
41
+ ]);
42
+ }
43
+ finally {
44
+ process.chdir(originalCwd);
45
+ }
46
+ });
47
+ it('matches .dockerignore relative to a nested Docker context', async () => {
48
+ const rootDir = await mkTempDir('apify-test-tools-nested-context-');
49
+ tempDirs.push(rootDir);
50
+ await fs.mkdir(path.join(rootDir, 'actors', 'shopify'), { recursive: true });
51
+ await fs.writeFile(path.join(rootDir, 'actors', 'shopify', '.dockerignore'), 'dist/\n');
52
+ vi.spyOn(Utils, 'listRepoFilePaths').mockResolvedValue([
53
+ 'actors/shopify/dist/bundle.js',
54
+ 'actors/shopify/src/main.ts',
55
+ ]);
56
+ vi.spyOn(Utils, 'getGitignoredPaths').mockResolvedValue(new Set());
57
+ const originalCwd = process.cwd();
58
+ process.chdir(rootDir);
59
+ try {
60
+ expect(await collectNonIgnoredFiles(new RelativeDir('actors/shopify'), rootDir)).toStrictEqual([
61
+ path.join(rootDir, 'actors', 'shopify', 'src', 'main.ts'),
62
+ ]);
63
+ }
64
+ finally {
65
+ process.chdir(originalCwd);
66
+ }
30
67
  });
31
68
  });
32
69
  describe('flattenMonorepoContext', () => {
@@ -100,8 +137,19 @@ describe('build-from-local helpers', () => {
100
137
  'actors/owner_actor/.actor/actor.json',
101
138
  'package.json',
102
139
  ]);
103
- vi.spyOn(Utils, 'getGitignoredPaths').mockResolvedValue(new Set(['actors/owner_actor/.actor/actor.json']));
104
- const sourceFiles = await collectSourceFiles('owner/actor', actorDir);
140
+ vi.spyOn(Utils, 'getGitignoredPaths').mockResolvedValue(new Set());
141
+ const actorConfig = {
142
+ actorFullName: 'owner/actor',
143
+ folder: new ExistingDir('actors/owner_actor'),
144
+ tokenEnvVar: 'APIFY_TOKEN',
145
+ actorJson: {
146
+ file: new ExistingFile('actors/owner_actor/.actor/actor.json'),
147
+ dockerContextDir: RelativeDir.ROOT,
148
+ },
149
+ dockerContextDir: RelativeDir.ROOT,
150
+ contextPaths: [RelativeDir.ROOT],
151
+ };
152
+ const sourceFiles = await collectSourceFiles(actorConfig);
105
153
  expect(sourceFiles.map((file) => file.name)).toContain('.actor/actor.json');
106
154
  }
107
155
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"build-from-local.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/build-from-local.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-from-local.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/build-from-local.test.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,44 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest';
2
5
  import { getChangedActors } from '../../../bin/diff-changes.js';
3
6
  import * as DiffJsonSchema from '../../../bin/diff-json-schema.js';
4
7
  import * as Dockerignore from '../../../bin/dockerignore.js';
5
8
  import { logger } from '../../../bin/logger.js';
6
- const miniActor = {
7
- actorFullName: 'foo/bar',
8
- folder: 'actors/foo_bar',
9
- tokenEnvVar: 'APIFY_TOKEN_FOO',
10
- dockerContextDir: '',
11
- contextPaths: [''],
12
- };
13
- const standaloneActor = {
14
- actorFullName: 'owner/standalone',
15
- folder: 'standalone-actors/standalone',
16
- tokenEnvVar: 'APIFY_TOKEN_OWNER',
17
- dockerContextDir: 'standalone-actors/standalone',
18
- contextPaths: ['standalone-actors/standalone'],
9
+ import { ExistingDir, RelativeDir, RelativeFile } from '../../../bin/utils/path/repo-relative.js';
10
+ const originalCwd = process.cwd();
11
+ const fixtureRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'apify-diff-changes-'));
12
+ process.chdir(fixtureRoot);
13
+ fs.writeFileSync('package.json', '{}');
14
+ const actorConfig = (actorFullName, folder, tokenEnvVar, dockerContextDir, contextPaths) => {
15
+ const folderPath = folder || '.';
16
+ fs.mkdirSync(folderPath, { recursive: true });
17
+ return {
18
+ actorFullName,
19
+ folder: new ExistingDir(folderPath),
20
+ tokenEnvVar,
21
+ actorJson: {
22
+ file: new RelativeFile(path.join(folderPath, '.actor/actor.json')),
23
+ dockerContextDir: new RelativeDir(dockerContextDir || '.'),
24
+ changelog: new RelativeFile('CHANGELOG.md'),
25
+ },
26
+ dockerContextDir: new RelativeDir(dockerContextDir || '.'),
27
+ contextPaths: contextPaths.map((contextPath) => new RelativeDir(contextPath || '.')),
28
+ };
19
29
  };
30
+ afterAll(() => {
31
+ process.chdir(originalCwd);
32
+ fs.rmSync(fixtureRoot, { recursive: true, force: true });
33
+ });
34
+ const miniActor = actorConfig('foo/bar', 'actors/foo_bar', 'APIFY_TOKEN_FOO', '', ['']);
35
+ const standaloneActor = actorConfig('owner/standalone', 'standalone-actors/standalone', 'APIFY_TOKEN_OWNER', 'standalone-actors/standalone', ['standalone-actors/standalone']);
20
36
  const actorConfigs = [miniActor, standaloneActor];
21
- const amazonActor = {
22
- actorFullName: 'junglee/amazon-crawler',
23
- folder: 'actors/junglee_Amazon-crawler',
24
- tokenEnvVar: 'APIFY_TOKEN_JUNGLEE',
25
- dockerContextDir: '',
26
- contextPaths: ['actors/junglee_Amazon-crawler', 'code', 'shared'],
27
- };
37
+ const amazonActor = actorConfig('junglee/amazon-crawler', 'actors/junglee_Amazon-crawler', 'APIFY_TOKEN_JUNGLEE', '', [
38
+ 'actors/junglee_Amazon-crawler',
39
+ 'code',
40
+ 'shared',
41
+ ]);
28
42
  const commits = [{ sha: 'Commit1', author: '', date: '', message: '' }];
29
43
  describe('getChangedActors', () => {
30
44
  beforeEach(() => {
@@ -41,6 +55,14 @@ describe('getChangedActors', () => {
41
55
  });
42
56
  expect(result).toEqual([]);
43
57
  });
58
+ it('does not ignore source files whose names contain an ignored file name', async () => {
59
+ const result = await getChangedActors({
60
+ filepathsChanged: ['actors/foo_bar/src/.gitignore-helper.ts'],
61
+ actorConfigs,
62
+ commits,
63
+ });
64
+ expect(result).toEqual([miniActor]);
65
+ });
44
66
  it('returns the actor when a functional file in its folder changes', async () => {
45
67
  const result = await getChangedActors({
46
68
  filepathsChanged: ['actors/foo_bar/src/main.ts'],
@@ -88,7 +110,6 @@ describe('getChangedActors', () => {
88
110
  expect(result).toEqual([]);
89
111
  });
90
112
  it('returns actor when JSON file has functional changes', async () => {
91
- vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(false);
92
113
  const result = await getChangedActors({
93
114
  filepathsChanged: ['actors/foo_bar/.actor/actor.json'],
94
115
  actorConfigs,
@@ -113,9 +134,10 @@ describe('getChangedActors', () => {
113
134
  filepathsChanged: ['actors/foo_bar/.actor/input_schema.json'],
114
135
  actorConfigs,
115
136
  commits,
116
- isLatest: true,
137
+ isLatest: false,
117
138
  });
118
- expect(result).toEqual([miniActor]);
139
+ expect(result).toEqual([]);
140
+ expect(DiffJsonSchema.isCosmeticOnlyJsonSchemaChange).toHaveBeenCalledWith(commits, 'actors/foo_bar/.actor/input_schema.json');
119
141
  });
120
142
  it('does not trigger narrow-context actor when shared file changes', async () => {
121
143
  const result = await getChangedActors({
@@ -145,6 +167,28 @@ describe('getChangedActors', () => {
145
167
  });
146
168
  expect(result).toEqual([]);
147
169
  });
170
+ it('treats any changelog filename as cosmetic regardless of configured paths', async () => {
171
+ const result = await getChangedActors({
172
+ filepathsChanged: ['docs/CHANGELOG.md'],
173
+ actorConfigs: [miniActor, standaloneActor],
174
+ commits,
175
+ isLatest: true,
176
+ });
177
+ expect(result).toEqual([miniActor, standaloneActor]);
178
+ });
179
+ it('does not special-case a configured readme outside the actor context', async () => {
180
+ const configuredActor = {
181
+ ...standaloneActor,
182
+ actorJson: { ...standaloneActor.actorJson, readme: new RelativeFile('docs/guide.md') },
183
+ };
184
+ const result = await getChangedActors({
185
+ filepathsChanged: ['docs/guide.md'],
186
+ actorConfigs: [configuredActor],
187
+ commits,
188
+ isLatest: true,
189
+ });
190
+ expect(result).toEqual([]);
191
+ });
148
192
  it('triggers narrow-context actor when its own folder changes', async () => {
149
193
  const result = await getChangedActors({
150
194
  filepathsChanged: ['standalone-actors/standalone/src/main.ts'],
@@ -172,13 +216,7 @@ describe('getChangedActors', () => {
172
216
  expect(result).toContainEqual(standaloneActor);
173
217
  });
174
218
  it('matches folder where folder name differs from actor name', async () => {
175
- const ownerlessActor = {
176
- actorFullName: 'myteam/shopify-scraper',
177
- folder: 'actors/shopify',
178
- tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
179
- dockerContextDir: '',
180
- contextPaths: [''],
181
- };
219
+ const ownerlessActor = actorConfig('myteam/shopify-scraper', 'actors/shopify', 'APIFY_TOKEN_MYTEAM', '', ['']);
182
220
  const result = await getChangedActors({
183
221
  filepathsChanged: ['actors/shopify/src/main.ts'],
184
222
  actorConfigs: [ownerlessActor],
@@ -187,13 +225,7 @@ describe('getChangedActors', () => {
187
225
  expect(result).toEqual([ownerlessActor]);
188
226
  });
189
227
  it('in single-actor repo, .actor/ changes trigger builds', async () => {
190
- const rootActor = {
191
- actorFullName: 'myteam/my-actor',
192
- folder: '',
193
- tokenEnvVar: 'BUILDER_APIFY_TOKEN',
194
- dockerContextDir: '',
195
- contextPaths: [''],
196
- };
228
+ const rootActor = actorConfig('myteam/my-actor', '', 'BUILDER_APIFY_TOKEN', '', ['']);
197
229
  const result = await getChangedActors({
198
230
  filepathsChanged: ['.actor/actor.json'],
199
231
  actorConfigs: [rootActor],
@@ -209,22 +241,19 @@ describe('getChangedActors', () => {
209
241
  });
210
242
  expect(result).toEqual([miniActor]);
211
243
  });
212
- it('file paths are matched case-insensitively', async () => {
244
+ it('file paths are matched case-sensitively', async () => {
245
+ const narrowActor = actorConfig('foo/bar', 'actors/foo_bar', 'APIFY_TOKEN_FOO', 'actors/foo_bar', [
246
+ 'actors/foo_bar',
247
+ ]);
213
248
  const result = await getChangedActors({
214
249
  filepathsChanged: ['Actors/FOO_BAR/Main.ts'],
215
- actorConfigs,
250
+ actorConfigs: [narrowActor],
216
251
  commits,
217
252
  });
218
- expect(result).toEqual([miniActor]);
253
+ expect(result).toEqual([]);
219
254
  });
220
255
  it('triggers actor with contextPaths override when file matches an override path', async () => {
221
- const overrideActor = {
222
- actorFullName: 'team/override-actor',
223
- folder: 'actors/override',
224
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
225
- dockerContextDir: 'actors/override',
226
- contextPaths: ['actors/override', 'packages'],
227
- };
256
+ const overrideActor = actorConfig('team/override-actor', 'actors/override', 'APIFY_TOKEN_TEAM', 'actors/override', ['actors/override', 'packages']);
228
257
  const result = await getChangedActors({
229
258
  filepathsChanged: ['packages/shared/utils.ts'],
230
259
  actorConfigs: [overrideActor],
@@ -233,13 +262,7 @@ describe('getChangedActors', () => {
233
262
  expect(result).toEqual([overrideActor]);
234
263
  });
235
264
  it('does not trigger actor with contextPaths override when file is outside all override paths', async () => {
236
- const overrideActor = {
237
- actorFullName: 'team/override-actor',
238
- folder: 'actors/override',
239
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
240
- dockerContextDir: 'actors/override',
241
- contextPaths: ['actors/override', 'packages'],
242
- };
265
+ const overrideActor = actorConfig('team/override-actor', 'actors/override', 'APIFY_TOKEN_TEAM', 'actors/override', ['actors/override', 'packages']);
243
266
  const result = await getChangedActors({
244
267
  filepathsChanged: ['other-dir/file.ts'],
245
268
  actorConfigs: [overrideActor],
@@ -248,20 +271,8 @@ describe('getChangedActors', () => {
248
271
  expect(result).toEqual([]);
249
272
  });
250
273
  it('broad-context actor skips files in sibling actor folders', async () => {
251
- const actorA = {
252
- actorFullName: 'team/actor-a',
253
- folder: 'actors/a',
254
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
255
- dockerContextDir: '',
256
- contextPaths: [''],
257
- };
258
- const actorB = {
259
- actorFullName: 'team/actor-b',
260
- folder: 'actors/b',
261
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
262
- dockerContextDir: '',
263
- contextPaths: [''],
264
- };
274
+ const actorA = actorConfig('team/actor-a', 'actors/a', 'APIFY_TOKEN_TEAM', '', ['']);
275
+ const actorB = actorConfig('team/actor-b', 'actors/b', 'APIFY_TOKEN_TEAM', '', ['']);
265
276
  const result = await getChangedActors({
266
277
  filepathsChanged: ['actors/b/src/main.ts'],
267
278
  actorConfigs: [actorA, actorB],
@@ -269,21 +280,11 @@ describe('getChangedActors', () => {
269
280
  });
270
281
  expect(result).toEqual([actorB]);
271
282
  });
272
- it('root actor (folder="") is excluded from sibling actor folder files', async () => {
273
- const rootActor = {
274
- actorFullName: 'team/root',
275
- folder: '',
276
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
277
- dockerContextDir: '',
278
- contextPaths: [''],
279
- };
280
- const childActor = {
281
- actorFullName: 'team/child',
282
- folder: 'actors/child',
283
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
284
- dockerContextDir: 'actors/child',
285
- contextPaths: ['actors/child'],
286
- };
283
+ it('root actor is excluded from sibling actor folder files', async () => {
284
+ const rootActor = actorConfig('team/root', '', 'APIFY_TOKEN_TEAM', '', ['']);
285
+ const childActor = actorConfig('team/child', 'actors/child', 'APIFY_TOKEN_TEAM', 'actors/child', [
286
+ 'actors/child',
287
+ ]);
287
288
  const result = await getChangedActors({
288
289
  filepathsChanged: ['actors/child/src/main.ts'],
289
290
  actorConfigs: [rootActor, childActor],
@@ -292,21 +293,11 @@ describe('getChangedActors', () => {
292
293
  expect(result).not.toContainEqual(rootActor);
293
294
  expect(result).toContainEqual(childActor);
294
295
  });
295
- it('root actor (folder="") sees files outside any actor folder', async () => {
296
- const rootActor = {
297
- actorFullName: 'team/root',
298
- folder: '',
299
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
300
- dockerContextDir: '',
301
- contextPaths: [''],
302
- };
303
- const childActor = {
304
- actorFullName: 'team/child',
305
- folder: 'actors/child',
306
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
307
- dockerContextDir: 'actors/child',
308
- contextPaths: ['actors/child'],
309
- };
296
+ it('root actor sees files outside any actor folder', async () => {
297
+ const rootActor = actorConfig('team/root', '', 'APIFY_TOKEN_TEAM', '', ['']);
298
+ const childActor = actorConfig('team/child', 'actors/child', 'APIFY_TOKEN_TEAM', 'actors/child', [
299
+ 'actors/child',
300
+ ]);
310
301
  const result = await getChangedActors({
311
302
  filepathsChanged: ['lib/shared-utils.ts'],
312
303
  actorConfigs: [rootActor, childActor],
@@ -334,7 +325,6 @@ describe('getChangedActors', () => {
334
325
  expect(result).toEqual([miniActor]);
335
326
  });
336
327
  it('JSON file in context but outside actor folder is functional (not checked for cosmetic)', async () => {
337
- vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(true);
338
328
  const result = await getChangedActors({
339
329
  filepathsChanged: ['lib/config.json'],
340
330
  actorConfigs: [miniActor],
@@ -360,7 +350,7 @@ describe('getChangedActors', () => {
360
350
  });
361
351
  expect(result).toEqual([miniActor]);
362
352
  });
363
- it('hoists a standalone actor own top-level dev file relative to its context before checking the ignore list', async () => {
353
+ it('ignores a standalone actor top-level dev file relative to its context', async () => {
364
354
  const result = await getChangedActors({
365
355
  filepathsChanged: ['standalone-actors/standalone/.eslintrc'],
366
356
  actorConfigs,
@@ -370,7 +360,7 @@ describe('getChangedActors', () => {
370
360
  });
371
361
  it('does not special-case code/ and shared/ prefixes anymore — must be declared via overrideActorContext', async () => {
372
362
  const result = await getChangedActors({
373
- filepathsChanged: ['code/.eslintrc'],
363
+ filepathsChanged: ['code/some/code.ts'],
374
364
  actorConfigs: [miniActor],
375
365
  commits,
376
366
  });
@@ -417,20 +407,8 @@ describe('getChangedActors logging', () => {
417
407
  expect(logger.info).toHaveBeenCalledWith('[DIFF]: Actors to be built and tested: foo/bar');
418
408
  });
419
409
  it('logs a single "shared" group when two actors are triggered by the exact same file', async () => {
420
- const actorA = {
421
- actorFullName: 'team/actor-a',
422
- folder: 'actors/a',
423
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
424
- dockerContextDir: '',
425
- contextPaths: ['', 'shared'],
426
- };
427
- const actorB = {
428
- actorFullName: 'team/actor-b',
429
- folder: 'actors/b',
430
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
431
- dockerContextDir: '',
432
- contextPaths: ['', 'shared'],
433
- };
410
+ const actorA = actorConfig('team/actor-a', 'actors/a', 'APIFY_TOKEN_TEAM', '', ['', 'shared']);
411
+ const actorB = actorConfig('team/actor-b', 'actors/b', 'APIFY_TOKEN_TEAM', '', ['', 'shared']);
434
412
  await getChangedActors({
435
413
  filepathsChanged: ['shared/shared.ts'],
436
414
  actorConfigs: [actorA, actorB],
@@ -441,26 +419,14 @@ describe('getChangedActors logging', () => {
441
419
  expect(logger.info).toHaveBeenCalledWith('[DIFF]: Actors to be built and tested: team/actor-a, team/actor-b');
442
420
  });
443
421
  it('logs shared and specific groups in descending-size order for partial overlap across actors', async () => {
444
- const actorA = {
445
- actorFullName: 'team/actor-a',
446
- folder: 'actors/a',
447
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
448
- dockerContextDir: '',
449
- contextPaths: [''],
450
- };
451
- const actorB = {
452
- actorFullName: 'team/actor-b',
453
- folder: 'actors/b',
454
- tokenEnvVar: 'APIFY_TOKEN_TEAM',
455
- dockerContextDir: '',
456
- contextPaths: [''],
457
- };
422
+ const actorA = actorConfig('team/actor-a', 'actors/a', 'APIFY_TOKEN_TEAM', '', ['']);
423
+ const actorB = actorConfig('team/actor-b', 'actors/b', 'APIFY_TOKEN_TEAM', '', ['']);
458
424
  await getChangedActors({
459
425
  filepathsChanged: ['shared.ts', 'actors/a/a-only.ts', 'actors/b/b-only.ts'],
460
426
  actorConfigs: [actorA, actorB],
461
427
  commits,
462
428
  });
463
- const errorCalls = logger.info.mock.calls.map((call) => call[0]);
429
+ const errorCalls = vi.mocked(logger.info).mock.calls.map((call) => call[0]);
464
430
  expect(errorCalls).toEqual([
465
431
  '[DIFF]: Shared changes for actors team/actor-a, team/actor-b: shared.ts',
466
432
  '[DIFF]: Changes specific to actor team/actor-a: actors/a/a-only.ts',
@@ -470,7 +436,7 @@ describe('getChangedActors logging', () => {
470
436
  });
471
437
  it('logs no group lines when zero actors changed', async () => {
472
438
  await getChangedActors({
473
- filepathsChanged: ['.gitignore', 'README.md'],
439
+ filepathsChanged: ['.gitignore', '.prettierrc'],
474
440
  actorConfigs,
475
441
  commits,
476
442
  });