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
@@ -3,7 +3,7 @@ import fs from 'node:fs/promises';
3
3
  import os from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
6
- import { collectNonIgnoredFiles, flattenMonorepoContext, rewriteActorJsonPaths,
6
+ import { collectNonIgnoredFiles, collectSourceFiles, flattenMonorepoContext, rewriteActorJsonPaths,
7
7
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8
8
  // @ts-ignore: editor-only TS6059 — test/tsconfig.json's rootDir doesn't span bin/, but the root
9
9
  // tsconfig (used for the real build and for eslint's type-aware linting) has no such restriction.
@@ -43,54 +43,81 @@ describe('build-from-local helpers', () => {
43
43
  });
44
44
  });
45
45
  describe('flattenMonorepoContext', () => {
46
- it('filters the .actor/ overlay through the same secret-pattern check as the rest of the context', async () => {
46
+ it("overlays the actor's own .actor/ files at the flattened root", async () => {
47
+ // Simulates flattening from a monorepo with an actors/<name>/.actor structure.
47
48
  const repoRoot = await mkTempDir('apify-test-tools-repo-');
48
49
  tempDirs.push(repoRoot);
49
- initGitRepo(repoRoot);
50
50
  const absActorDir = path.join(repoRoot, 'actors', 'owner_actor');
51
+ const actorJsonPath = path.join(absActorDir, '.actor', 'actor.json');
52
+ const inputSchemaPath = path.join(absActorDir, '.actor', 'INPUT_SCHEMA.json');
53
+ const mainSrcPath = path.join(absActorDir, 'src', 'main.ts');
54
+ const packageJsonPath = path.join(repoRoot, 'package.json');
51
55
  await fs.mkdir(path.join(absActorDir, '.actor'), { recursive: true });
52
- await fs.writeFile(path.join(absActorDir, '.actor', 'actor.json'), JSON.stringify({ actorSpecification: 1, name: 'actor' }));
53
- // A stray secret file inside .actor/ must never survive into the build.
54
- await fs.writeFile(path.join(absActorDir, '.actor', '.env'), 'SECRET=leaked');
55
- await fs.writeFile(path.join(absActorDir, '.actor', 'INPUT_SCHEMA.json'), '{}');
56
- const keptContextFile = path.join(repoRoot, 'package.json');
57
- await fs.writeFile(keptContextFile, '{}');
58
- // Nothing is gitignored here — isolates the assertion to the secret-pattern filter.
59
- vi.spyOn(Utils, 'getGitignoredPaths').mockReturnValue(new Set());
60
- const actorJson = JSON.parse(await fs.readFile(path.join(absActorDir, '.actor', 'actor.json'), 'utf8'));
61
- const { tempDir: flattenedDir, filePaths } = await flattenMonorepoContext('test/actor', absActorDir, repoRoot, actorJson, [keptContextFile], repoRoot);
56
+ await fs.mkdir(path.join(absActorDir, 'src'), { recursive: true });
57
+ await fs.writeFile(actorJsonPath, JSON.stringify({ actorSpecification: 1, name: 'actor' }));
58
+ await fs.writeFile(inputSchemaPath, '{}');
59
+ await fs.writeFile(mainSrcPath, 'console.log(1)');
60
+ await fs.writeFile(packageJsonPath, '{}');
61
+ const keptContextFiles = [packageJsonPath, mainSrcPath, actorJsonPath, inputSchemaPath];
62
+ const actorJson = JSON.parse(await fs.readFile(actorJsonPath, 'utf8'));
63
+ const { tempDir: flattenedDir, filePaths } = await flattenMonorepoContext('test/actor', absActorDir, repoRoot, actorJson, keptContextFiles);
62
64
  tempDirs.push(flattenedDir);
63
- await expect(fs.access(path.join(flattenedDir, '.actor', '.env'))).rejects.toThrow();
64
- await expect(fs.access(path.join(flattenedDir, '.actor', 'INPUT_SCHEMA.json'))).resolves.toBeUndefined();
65
+ const flattenedMainSrcPath = path.join(flattenedDir, 'actors', 'owner_actor', 'src', 'main.ts');
65
66
  await expect(fs.access(path.join(flattenedDir, '.actor', 'actor.json'))).resolves.toBeUndefined();
67
+ await expect(fs.access(path.join(flattenedDir, '.actor', 'INPUT_SCHEMA.json'))).resolves.toBeUndefined();
66
68
  await expect(fs.access(path.join(flattenedDir, 'package.json'))).resolves.toBeUndefined();
67
- // The returned filePaths must match what actually landed on disk — no .env, everything else present.
68
- expect(new Set(filePaths)).toStrictEqual(new Set([
69
- path.join(flattenedDir, 'package.json'),
70
- path.join(flattenedDir, '.actor', 'INPUT_SCHEMA.json'),
71
- path.join(flattenedDir, '.actor', 'actor.json'),
72
- ]));
69
+ await expect(fs.access(flattenedMainSrcPath)).resolves.toBeUndefined();
70
+ expect(filePaths).toContain(path.join(flattenedDir, '.actor', 'actor.json'));
71
+ expect(filePaths).toContain(path.join(flattenedDir, '.actor', 'INPUT_SCHEMA.json'));
72
+ expect(filePaths).toContain(flattenedMainSrcPath);
73
73
  });
74
74
  it("keeps another actor's .actor/ directory intact at its original nested path", async () => {
75
+ // Simulates flattening from a monorepo with an actors/<name>/.actor structure — two
76
+ // sibling actors share the same context, but only one is being flattened here.
75
77
  const repoRoot = await mkTempDir('apify-test-tools-repo-');
76
78
  tempDirs.push(repoRoot);
77
- initGitRepo(repoRoot);
78
79
  const absActorDir = path.join(repoRoot, 'actors', 'owner_actor');
79
- await fs.mkdir(path.join(absActorDir, '.actor'), { recursive: true });
80
- await fs.writeFile(path.join(absActorDir, '.actor', 'actor.json'), JSON.stringify({ actorSpecification: 1, name: 'actor' }));
80
+ const actorJsonPath = path.join(absActorDir, '.actor', 'actor.json');
81
81
  const otherActorDir = path.join(repoRoot, 'actors', 'owner_other-actor');
82
- await fs.mkdir(path.join(otherActorDir, '.actor'), { recursive: true });
83
82
  const otherActorSchemaFile = path.join(otherActorDir, '.actor', 'input_schema.json');
83
+ await fs.mkdir(path.join(absActorDir, '.actor'), { recursive: true });
84
+ await fs.writeFile(actorJsonPath, JSON.stringify({ actorSpecification: 1, name: 'actor' }));
85
+ await fs.mkdir(path.join(otherActorDir, '.actor'), { recursive: true });
84
86
  await fs.writeFile(otherActorSchemaFile, JSON.stringify({ schema: 'other' }));
85
- vi.spyOn(Utils, 'getGitignoredPaths').mockReturnValue(new Set());
86
- const actorJson = JSON.parse(await fs.readFile(path.join(absActorDir, '.actor', 'actor.json'), 'utf8'));
87
- const { tempDir: flattenedDir, filePaths } = await flattenMonorepoContext('test/actor', absActorDir, repoRoot, actorJson, [otherActorSchemaFile], repoRoot);
87
+ // Stands in for collectNonIgnoredFiles's already-filtered output: the current actor's own
88
+ // actor.json (always kept by collectNonIgnoredFiles's .actor/ bypass in the real flow —
89
+ // see the collectSourceFiles test below) plus the other actor's file.
90
+ const keptContextFiles = [actorJsonPath, otherActorSchemaFile];
91
+ const actorJson = JSON.parse(await fs.readFile(actorJsonPath, 'utf8'));
92
+ const { tempDir: flattenedDir, filePaths } = await flattenMonorepoContext('test/actor', absActorDir, repoRoot, actorJson, keptContextFiles);
88
93
  tempDirs.push(flattenedDir);
89
94
  const preservedPath = path.join(flattenedDir, 'actors', 'owner_other-actor', '.actor', 'input_schema.json');
90
95
  await expect(fs.access(preservedPath)).resolves.toBeUndefined();
91
96
  expect(filePaths).toContain(preservedPath);
92
97
  });
93
98
  });
99
+ describe('collectSourceFiles', () => {
100
+ it("always collects the actor's own .actor/actor.json for a monorepo actor, since flattenMonorepoContext depends on it", async () => {
101
+ const repoRoot = await mkTempDir('apify-test-tools-collect-source-');
102
+ tempDirs.push(repoRoot);
103
+ initGitRepo(repoRoot);
104
+ const originalCwd = process.cwd();
105
+ // We simulate the working directory being the repo root, since collectSourceFiles uses relative paths to the repo root.
106
+ Utils.setCwd({ workspace: repoRoot });
107
+ try {
108
+ const cwd = process.cwd();
109
+ const actorDir = path.join(cwd, 'actors', 'owner_actor');
110
+ await fs.mkdir(path.join(actorDir, '.actor'), { recursive: true });
111
+ await fs.writeFile(path.join(actorDir, '.actor', 'actor.json'), JSON.stringify({ actorSpecification: 1, name: 'actor', dockerContextDir: '../../..' }));
112
+ await fs.writeFile(path.join(cwd, 'package.json'), '{}');
113
+ const sourceFiles = await collectSourceFiles('owner/actor', actorDir);
114
+ expect(sourceFiles.map((file) => file.name)).toContain('.actor/actor.json');
115
+ }
116
+ finally {
117
+ process.chdir(originalCwd);
118
+ }
119
+ });
120
+ });
94
121
  describe('rewriteActorJsonPaths', () => {
95
122
  it('rewrites path fields that escape .actor/ relative to the new flattened location', async () => {
96
123
  const repoRoot = await mkTempDir('apify-test-tools-rewrite-');
@@ -114,64 +141,6 @@ describe('build-from-local helpers', () => {
114
141
  });
115
142
  });
116
143
  });
117
- describe('getDockerignoredPaths', () => {
118
- const tempDirs = [];
119
- afterEach(async () => {
120
- vi.mocked(spawnSync).mockClear();
121
- await Promise.all(tempDirs.splice(0).map(async (dir) => fs.rm(dir, { recursive: true, force: true })));
122
- });
123
- it('returns an empty set without calling git when given no paths', () => {
124
- const result = Utils.getDockerignoredPaths('/does/not/matter', []);
125
- expect(result).toStrictEqual(new Set());
126
- expect(spawnSync).not.toHaveBeenCalled();
127
- });
128
- it('returns an empty set when rootDir has no .dockerignore', async () => {
129
- const rootDir = await mkTempDir('apify-test-tools-dockerignore-');
130
- tempDirs.push(rootDir);
131
- initGitRepo(rootDir);
132
- expect(Utils.getDockerignoredPaths(rootDir, ['main.js'])).toStrictEqual(new Set());
133
- });
134
- it('returns the paths that match .dockerignore patterns rooted at rootDir', async () => {
135
- const rootDir = await mkTempDir('apify-test-tools-dockerignore-');
136
- tempDirs.push(rootDir);
137
- initGitRepo(rootDir);
138
- await fs.writeFile(path.join(rootDir, '.dockerignore'), 'test/\n*.log\n');
139
- const result = Utils.getDockerignoredPaths(rootDir, ['main.js', 'test/fixture.json', 'debug.log']);
140
- expect(result).toStrictEqual(new Set(['test/fixture.json', 'debug.log']));
141
- });
142
- it('matches "./"-prefixed patterns, which Docker treats as a no-op but git treats as literal text', async () => {
143
- const rootDir = await mkTempDir('apify-test-tools-dockerignore-');
144
- tempDirs.push(rootDir);
145
- initGitRepo(rootDir);
146
- // The common real-world .dockerignore style: every pattern prefixed with "./",
147
- // including a negation re-including one of the otherwise-matched files.
148
- await fs.writeFile(path.join(rootDir, '.dockerignore'), './node_modules\n./*.log\n!./keep.log\n');
149
- const result = Utils.getDockerignoredPaths(rootDir, [
150
- 'node_modules/foo.js',
151
- 'debug.log',
152
- 'keep.log',
153
- 'main.js',
154
- ]);
155
- expect(result).toStrictEqual(new Set(['node_modules/foo.js', 'debug.log']));
156
- });
157
- it('matches already-tracked files too, since Docker excludes them regardless of git tracking', async () => {
158
- const rootDir = await mkTempDir('apify-test-tools-dockerignore-');
159
- tempDirs.push(rootDir);
160
- initGitRepo(rootDir);
161
- spawnSync('git', ['config', 'user.email', 'test@example.com'], { cwd: rootDir });
162
- spawnSync('git', ['config', 'user.name', 'Test'], { cwd: rootDir });
163
- // Husky hooks are committed to the repo, so this path is tracked by git — by default
164
- // `git check-ignore` never reports a tracked file as ignored, which would otherwise mask
165
- // this exact pattern from matching, unlike a real Docker build which excludes it anyway.
166
- await fs.mkdir(path.join(rootDir, '.husky'));
167
- await fs.writeFile(path.join(rootDir, '.husky', 'pre-commit'), '#!/bin/sh\n');
168
- spawnSync('git', ['add', '.husky/pre-commit'], { cwd: rootDir });
169
- spawnSync('git', ['commit', '-q', '-m', 'add husky hook'], { cwd: rootDir });
170
- await fs.writeFile(path.join(rootDir, '.dockerignore'), './.husky\n');
171
- const result = Utils.getDockerignoredPaths(rootDir, ['.husky/pre-commit', 'main.js']);
172
- expect(result).toStrictEqual(new Set(['.husky/pre-commit']));
173
- });
174
- });
175
144
  describe('getGitignoredPaths', () => {
176
145
  beforeEach(() => {
177
146
  vi.mocked(spawnSync).mockReset();
@@ -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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"}