apify-test-tools 0.10.2-beta.19 → 0.10.2-beta.20

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 (75) hide show
  1. package/.github/cli/apify-test-tools.mjs +114 -114
  2. package/.github/scripts/run-with-apify-tokens.mjs +6 -6
  3. package/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +1 -1
  4. package/.github/workflows/public_platform-tests.yaml +6 -8
  5. package/.github/workflows/public_pr-build-test.yaml +11 -11
  6. package/.github/workflows/public_push-build-latest.yaml +1 -0
  7. package/CHANGELOG.md +1 -0
  8. package/CONTRIBUTING.md +1 -1
  9. package/README.md +10 -6
  10. package/bin/affected-actors.ts +20 -7
  11. package/bin/diff-changes.ts +40 -16
  12. package/bin/main.ts +12 -19
  13. package/bin/run-tests.ts +29 -4
  14. package/bin/test-files-glob.ts +126 -0
  15. package/bin/utils/config/load-config.ts +4 -1
  16. package/bin/utils/config/parser.ts +24 -1
  17. package/dist/bin/affected-actors.d.ts +13 -4
  18. package/dist/bin/affected-actors.d.ts.map +1 -1
  19. package/dist/bin/affected-actors.js +11 -4
  20. package/dist/bin/affected-actors.js.map +1 -1
  21. package/dist/bin/diff-changes.d.ts +12 -3
  22. package/dist/bin/diff-changes.d.ts.map +1 -1
  23. package/dist/bin/diff-changes.js +25 -12
  24. package/dist/bin/diff-changes.js.map +1 -1
  25. package/dist/bin/main.js +11 -17
  26. package/dist/bin/main.js.map +1 -1
  27. package/dist/bin/run-tests.d.ts +3 -3
  28. package/dist/bin/run-tests.d.ts.map +1 -1
  29. package/dist/bin/run-tests.js +24 -2
  30. package/dist/bin/run-tests.js.map +1 -1
  31. package/dist/bin/test-files-glob.d.ts +18 -0
  32. package/dist/bin/test-files-glob.d.ts.map +1 -0
  33. package/dist/bin/test-files-glob.js +108 -0
  34. package/dist/bin/test-files-glob.js.map +1 -0
  35. package/dist/bin/utils/config/load-config.d.ts +3 -0
  36. package/dist/bin/utils/config/load-config.d.ts.map +1 -1
  37. package/dist/bin/utils/config/load-config.js +3 -1
  38. package/dist/bin/utils/config/load-config.js.map +1 -1
  39. package/dist/bin/utils/config/parser.d.ts +9 -0
  40. package/dist/bin/utils/config/parser.d.ts.map +1 -1
  41. package/dist/bin/utils/config/parser.js +13 -1
  42. package/dist/bin/utils/config/parser.js.map +1 -1
  43. package/dist/test/bundle/cli-bundle.test.js +1 -1
  44. package/dist/test/bundle/cli-bundle.test.js.map +1 -1
  45. package/dist/test/e2e/cli-bundle.e2e.test.js +1 -1
  46. package/dist/test/e2e/cli-bundle.e2e.test.js.map +1 -1
  47. package/dist/test/unit/bin/actor-filtering.test.js +7 -0
  48. package/dist/test/unit/bin/actor-filtering.test.js.map +1 -1
  49. package/dist/test/unit/bin/affected-actors-cli.test.js +59 -2
  50. package/dist/test/unit/bin/affected-actors-cli.test.js.map +1 -1
  51. package/dist/test/unit/bin/affected-actors.test.js +18 -6
  52. package/dist/test/unit/bin/affected-actors.test.js.map +1 -1
  53. package/dist/test/unit/bin/diff-changes.test.js +44 -19
  54. package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
  55. package/dist/test/unit/bin/test-cli.test.js +34 -3
  56. package/dist/test/unit/bin/test-cli.test.js.map +1 -1
  57. package/dist/test/unit/bin/test-files-glob.test.d.ts +2 -0
  58. package/dist/test/unit/bin/test-files-glob.test.d.ts.map +1 -0
  59. package/dist/test/unit/bin/test-files-glob.test.js +102 -0
  60. package/dist/test/unit/bin/test-files-glob.test.js.map +1 -0
  61. package/dist/test/unit/bin/utils/config/parser.test.js +16 -1
  62. package/dist/test/unit/bin/utils/config/parser.test.js.map +1 -1
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/docs/cli.md +46 -29
  65. package/docs/workflows.md +53 -20
  66. package/package.json +1 -1
  67. package/test/bundle/cli-bundle.test.ts +1 -1
  68. package/test/e2e/cli-bundle.e2e.test.ts +9 -5
  69. package/test/unit/bin/actor-filtering.test.ts +8 -0
  70. package/test/unit/bin/affected-actors-cli.test.ts +73 -3
  71. package/test/unit/bin/affected-actors.test.ts +49 -10
  72. package/test/unit/bin/diff-changes.test.ts +48 -19
  73. package/test/unit/bin/test-cli.test.ts +41 -3
  74. package/test/unit/bin/test-files-glob.test.ts +118 -0
  75. package/test/unit/bin/utils/config/parser.test.ts +24 -1
@@ -0,0 +1,126 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+
4
+ import picomatch from 'picomatch';
5
+
6
+ /**
7
+ * Test globs are from the repo root, e.g. `test/platform/**`. `get-affected-actors` matches changed files against the
8
+ * config's `platformTestsGlob` and `test` runs the files `--test-files-glob` matches, so both read globs the same way.
9
+ */
10
+ const PICOMATCH_OPTIONS = { nocase: true, dot: true } as const;
11
+
12
+ /** Never walked: they hold no test files of the repo, and node_modules can be huge. */
13
+ const SKIPPED_DIRS = new Set(['node_modules', '.git']);
14
+
15
+ const assertRelativeGlob = (glob: string) => {
16
+ if (path.posix.isAbsolute(glob) || path.win32.isAbsolute(glob)) {
17
+ throw new Error(`Test file globs must be relative to the repo root, got "${glob}".`);
18
+ }
19
+ };
20
+
21
+ /** Tells whether a repo-root-relative path matches the glob. Without a glob, nothing matches. */
22
+ export const createTestFilesMatcher = (glob?: string): ((filePath: string) => boolean) => {
23
+ if (!glob) return () => false;
24
+ assertRelativeGlob(glob);
25
+ const isMatch = picomatch(glob, PICOMATCH_OPTIONS);
26
+ // One argument only: picomatch's second one returns a truthy object, and Array#filter passes the index there
27
+ return (filePath) => isMatch(filePath);
28
+ };
29
+
30
+ interface Listing {
31
+ /** POSIX paths relative to `cwd` */
32
+ files: string[];
33
+ /** What wasn't walked (skipped directories, symlinks), so the folders holding them never count as fully matched */
34
+ skipped: string[];
35
+ }
36
+
37
+ /** Lists the files under `dir`. A missing `dir` has no files. */
38
+ const listFiles = async (cwd: string, dir: string): Promise<Listing> => {
39
+ let entries;
40
+ try {
41
+ entries = await fs.readdir(path.join(cwd, dir), { withFileTypes: true });
42
+ } catch (error) {
43
+ const { code } = error as NodeJS.ErrnoException;
44
+ if (code === 'ENOENT') return { files: [], skipped: [] };
45
+ // A glob without wildcards has the file itself as its base
46
+ if (code === 'ENOTDIR') return { files: [dir], skipped: [] };
47
+ throw error;
48
+ }
49
+ const listing: Listing = { files: [], skipped: [] };
50
+ for (const entry of entries) {
51
+ const entryPath = path.posix.join(dir, entry.name);
52
+ if (entry.isDirectory() && !SKIPPED_DIRS.has(entry.name)) {
53
+ const inner = await listFiles(cwd, entryPath);
54
+ listing.files.push(...inner.files);
55
+ listing.skipped.push(...inner.skipped);
56
+ } else if (entry.isFile()) {
57
+ listing.files.push(entryPath);
58
+ } else {
59
+ listing.skipped.push(entryPath);
60
+ }
61
+ }
62
+ return listing;
63
+ };
64
+
65
+ const isWithin = (dir: string, base: string) => base === '.' || dir === base || dir.startsWith(`${base}/`);
66
+
67
+ /**
68
+ * The directories from `base` down to the file's own directory, `base` first. None when `base` is the file itself,
69
+ * as for a glob without wildcards.
70
+ */
71
+ const dirsFromBase = (file: string, base: string): string[] => {
72
+ const dirs: string[] = [];
73
+ for (let dir = path.posix.dirname(file); isWithin(dir, base); dir = path.posix.dirname(dir)) {
74
+ dirs.unshift(dir);
75
+ if (dir === base || dir === '.') break;
76
+ }
77
+ return dirs;
78
+ };
79
+
80
+ /**
81
+ * Turns the matched files into as few paths as possible: a directory, with a trailing `/`, where the glob matches
82
+ * every file in it, and a single file otherwise. `test/platform/{daily,hourly}/**` gives two paths however many
83
+ * tests the folders hold, so the vitest command line stays short.
84
+ */
85
+ const toCoveringPaths = ({ files, skipped }: Listing, matched: Set<string>, base: string): string[] => {
86
+ const counts = new Map<string, { total: number; matched: number }>();
87
+ for (const file of [...files, ...skipped]) {
88
+ for (const dir of dirsFromBase(file, base)) {
89
+ const count = counts.get(dir) ?? { total: 0, matched: 0 };
90
+ count.total += 1;
91
+ if (matched.has(file)) count.matched += 1;
92
+ counts.set(dir, count);
93
+ }
94
+ }
95
+ const isCovered = (dir: string) => counts.get(dir)!.total === counts.get(dir)!.matched;
96
+ const paths = new Set<string>();
97
+ for (const file of matched) {
98
+ // The highest directory that holds only matched files, so its children are not listed one by one
99
+ const coveredDir = dirsFromBase(file, base).find(isCovered);
100
+ paths.add(coveredDir === undefined ? file : `${coveredDir}/`);
101
+ }
102
+ return [...paths].sort();
103
+ };
104
+
105
+ interface ResolvedTestFiles {
106
+ /** Every file the glob matches, as repo-root-relative POSIX paths, sorted */
107
+ files: string[];
108
+ /**
109
+ * The same files as few paths as possible: directories (ending with `/`) that hold only matched files, and the
110
+ * other matched files one by one. Sorted.
111
+ */
112
+ paths: string[];
113
+ }
114
+
115
+ /**
116
+ * Finds the files the glob matches. `cwd` is the repo root. Only the glob's static base (`test/platform` for
117
+ * `test/platform/{daily,hourly}/**`) is walked.
118
+ */
119
+ export const resolveTestFilesGlob = async (glob: string, cwd: string): Promise<ResolvedTestFiles> => {
120
+ const isMatch = createTestFilesMatcher(glob);
121
+ // normalize turns `./test` into `test`, the way git prints paths
122
+ const base = path.posix.normalize(picomatch.scan(glob).base || '.');
123
+ const listing = await listFiles(cwd, base);
124
+ const files = listing.files.filter(isMatch).sort();
125
+ return { files, paths: toCoveringPaths(listing, new Set(files), base) };
126
+ };
@@ -3,7 +3,7 @@ import type { ActorConfig } from '../../types.js';
3
3
  import { safeReadJsonObjectFile } from '../json-file.js';
4
4
  import { ExistingFile, type RelativeDir } from '../path/repo-relative.js';
5
5
  import { readActorJson } from './actor-json.js';
6
- import { parseConfigFile, parseResolvedConfigFile } from './parser.js';
6
+ import { parseConfigFile, parseRepoSettings, parseResolvedConfigFile, type RepoSettings } from './parser.js';
7
7
  import type { ResolvedActorConfig, ValidatedActorConfig } from './structures/base.js';
8
8
 
9
9
  export const CONFIG_FILE_NAME = 'apify-test-tools.config.json';
@@ -126,3 +126,6 @@ export const readBaseConfigFile = async () => {
126
126
  }) satisfies PathlessConfig,
127
127
  );
128
128
  };
129
+
130
+ /** The settings for the whole repository, such as `platformTestsGlob`, with their defaults filled in. */
131
+ export const readRepoSettings = async (): Promise<RepoSettings> => parseRepoSettings(await readConfigFileContents());
@@ -82,6 +82,28 @@ function verifyConfiguration(body: ValidatedActorConfig[]): void {
82
82
  if (errors.length > 0) throw new Error(errors.join('\n'));
83
83
  }
84
84
 
85
+ /** Which changed files are platform tests, unless the config sets `platformTestsGlob` */
86
+ const DEFAULT_PLATFORM_TESTS_GLOB = 'test/platform/**';
87
+
88
+ /** Settings for the whole repository, next to the Actor entries at the top level of the config. */
89
+ export interface RepoSettings {
90
+ /**
91
+ * Glob from the repo root of the platform test files and their helpers. A change to a matching file is a test
92
+ * change: the tests run, but no release is built for it.
93
+ */
94
+ platformTestsGlob: string;
95
+ }
96
+
97
+ const RepoSettingsSchema = z.object({
98
+ platformTestsGlob: z.string().min(1).default(DEFAULT_PLATFORM_TESTS_GLOB),
99
+ });
100
+
101
+ export function parseRepoSettings(body: Record<string, unknown>): RepoSettings {
102
+ const parsed = RepoSettingsSchema.safeParse(body);
103
+ if (!parsed.success) throw new Error(z.prettifyError(parsed.error));
104
+ return parsed.data;
105
+ }
106
+
85
107
  // eslint-disable-next-line no-underscore-dangle
86
108
  export const _privates = {
87
109
  selectStrategy,
@@ -90,7 +112,8 @@ export const _privates = {
90
112
  };
91
113
 
92
114
  export function parseResolvedConfigFile(body: Record<string, unknown>): ResolvedActorConfig[] {
93
- const { mode, ...rest } = body;
115
+ // The repo settings are read by parseRepoSettings, the strategies only see the Actor entries
116
+ const { mode, platformTestsGlob: _platformTestsGlob, ...rest } = body;
94
117
  const strategy = selectStrategy({ mode });
95
118
  return strategy.parse(rest);
96
119
  }
@@ -12,8 +12,6 @@ interface AffectedActorsOptions {
12
12
  * counts, and it must be an ancestor of HEAD (e.g. the last release).
13
13
  */
14
14
  since?: string;
15
- /** Glob relative to the repo root. Matching files count as changes even when .dockerignore lists them. */
16
- testFilesGlob?: string;
17
15
  actors: string[];
18
16
  ignore: string[];
19
17
  }
@@ -32,15 +30,26 @@ interface AffectedActors {
32
30
  functionallyChangedActors: {
33
31
  actorFullName: string;
34
32
  }[];
35
- /** Actors whose changes are all cosmetic (README, CHANGELOG, cosmetic .actor JSON). They only need a release build. */
33
+ /**
34
+ * Actors with cosmetic changes (README, CHANGELOG, cosmetic .actor JSON) and no functional one. They only need a
35
+ * release build.
36
+ */
36
37
  cosmeticallyChangedActors: {
37
38
  actorFullName: string;
38
39
  }[];
40
+ /**
41
+ * Actors whose platform tests (`platformTestsGlob` in the config) changed in their context, whatever else
42
+ * changed. Their tests need to run, but a test change alone needs no release. An Actor can also be in one of the
43
+ * lists above.
44
+ */
45
+ testChangedActors: {
46
+ actorFullName: string;
47
+ }[];
39
48
  }
40
49
  /**
41
50
  * Finds the Actors whose context changed in the given range. `base` selects the branch's own changes
42
51
  * (a PR), `since` the changes after a known commit (a release, or the last validated commit of a PR).
43
52
  */
44
- export declare const getAffectedActors: ({ base, since: sinceOption, testFilesGlob, actors, ignore, }: AffectedActorsOptions) => Promise<AffectedActors>;
53
+ export declare const getAffectedActors: ({ base, since: sinceOption, actors, ignore, }: AffectedActorsOptions) => Promise<AffectedActors>;
45
54
  export {};
46
55
  //# sourceMappingURL=affected-actors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"affected-actors.d.ts","sourceRoot":"","sources":["../../bin/affected-actors.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAe,MAAM,EAAY,MAAM,YAAY,CAAC;AAMhE,UAAU,qBAAqB;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0GAA0G;IAC1G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,gHAAgH;AAChH,UAAU,cAAc;IACpB,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,0HAA0H;IAC1H,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,yBAAyB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,uHAAuH;IACvH,yBAAyB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1D;AAyFD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAU,8DAMrC,qBAAqB,KAAG,OAAO,CAAC,cAAc,CA+ChD,CAAC"}
1
+ {"version":3,"file":"affected-actors.d.ts","sourceRoot":"","sources":["../../bin/affected-actors.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAe,MAAM,EAAY,MAAM,YAAY,CAAC;AAMhE,UAAU,qBAAqB;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,gHAAgH;AAChH,UAAU,cAAc;IACpB,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,0HAA0H;IAC1H,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,yBAAyB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD;;;OAGG;IACH,yBAAyB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD;;;;OAIG;IACH,iBAAiB,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClD;AA8FD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAU,+CAKrC,qBAAqB,KAAG,OAAO,CAAC,cAAc,CAiDhD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { getChangedActors } from './diff-changes.js';
2
2
  import { findCommitSha, getChangedFilesBetween, getChangelogAdditions, getCommitsBetween, getMergeBase, resolveCommitSha, resolveReleaseBaseCommit, } from './git.js';
3
3
  import { logger } from './logger.js';
4
- import { readConfigFile } from './utils/config/load-config.js';
4
+ import { readConfigFile, readRepoSettings } from './utils/config/load-config.js';
5
5
  // The range always ends at the checked-out commit: check out what you want to inspect
6
6
  const HEAD = 'HEAD';
7
7
  const names = (configs) => configs.map(({ actorFullName }) => ({ actorFullName }));
@@ -63,7 +63,12 @@ const findValidatedSha = async (since, headSha) => {
63
63
  * base's change, which base already validated.
64
64
  */
65
65
  const intersectChangedInBranchVsSince = (branch, sinceValidated) => {
66
- const narrowed = { functional: [], cosmetic: [] };
66
+ const narrowed = {
67
+ functional: [],
68
+ cosmetic: [],
69
+ // The same rule for tests: the branch changed them, and they changed again since they were last validated
70
+ test: branch.test.filter((actor) => sinceValidated.test.includes(actor)),
71
+ };
67
72
  // All checks are done for each Actor separately, that's cleanest and most accurate
68
73
  for (const actor of [...branch.functional, ...branch.cosmetic]) {
69
74
  // base...HEAD
@@ -89,13 +94,14 @@ const intersectChangedInBranchVsSince = (branch, sinceValidated) => {
89
94
  * Finds the Actors whose context changed in the given range. `base` selects the branch's own changes
90
95
  * (a PR), `since` the changes after a known commit (a release, or the last validated commit of a PR).
91
96
  */
92
- export const getAffectedActors = async ({ base, since: sinceOption, testFilesGlob, actors, ignore, }) => {
97
+ export const getAffectedActors = async ({ base, since: sinceOption, actors, ignore, }) => {
93
98
  // An empty --since (e.g. an empty cache file) means the same as not passing it
94
99
  const since = sinceOption || undefined;
95
100
  if (!base && !since) {
96
101
  throw new Error('Pass --base, --since, or both to select the commits to inspect.');
97
102
  }
98
103
  const actorConfigs = await readConfigFile({ actors, ignore });
104
+ const { platformTestsGlob } = await readRepoSettings();
99
105
  const getChangedInRange = async (range) => {
100
106
  const changedFiles = await getChangedFilesBetween(range.fromRef, range.toRef);
101
107
  return {
@@ -104,7 +110,7 @@ export const getAffectedActors = async ({ base, since: sinceOption, testFilesGlo
104
110
  filepathsChanged: changedFiles,
105
111
  actorConfigs,
106
112
  range,
107
- testFilesGlob,
113
+ platformTestsGlob,
108
114
  }),
109
115
  };
110
116
  };
@@ -130,6 +136,7 @@ export const getAffectedActors = async ({ base, since: sinceOption, testFilesGlo
130
136
  changelog: await getChangelogAdditions(rangeVsBase.fromRef, rangeVsBase.toRef, changedFiles),
131
137
  functionallyChangedActors: names(changedActors.functional),
132
138
  cosmeticallyChangedActors: names(changedActors.cosmetic),
139
+ testChangedActors: names(changedActors.test),
133
140
  };
134
141
  };
135
142
  //# sourceMappingURL=affected-actors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"affected-actors.js","sourceRoot":"","sources":["../../bin/affected-actors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"affected-actors.js","sourceRoot":"","sources":["../../bin/affected-actors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjF,sFAAsF;AACtF,MAAM,IAAI,GAAG,MAAM,CAAC;AA6CpB,MAAM,KAAK,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAElG,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAa,EAAE,OAAe,EAA+B,EAAE;IAC3F,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CACP,yBAAyB,KAAK,uEAAuE,CACxG,CAAC;QACF,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;QACzG,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,+BAA+B,GAAG,CAAC,MAAqB,EAAE,cAA6B,EAAiB,EAAE;IAC5G,MAAM,QAAQ,GAAkB;QAC5B,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,0GAA0G;QAC1G,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC3E,CAAC;IACF,mFAAmF;IACnF,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,cAAc;QACd,MAAM,2BAA2B,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtE,cAAc;QACd,MAAM,wBAAwB,GAAG,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE3E,uEAAuE;QACvE,MAAM,YAAY,GAAG,wBAAwB,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEzF,uGAAuG;QACvG,IAAI,CAAC,YAAY;YAAE,SAAS;QAE5B,8EAA8E;QAC9E,IAAI,2BAA2B,IAAI,wBAAwB,EAAE,CAAC;YAC1D,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACpC,IAAI,EACJ,KAAK,EAAE,WAAW,EAClB,MAAM,EACN,MAAM,GACc,EAA2B,EAAE;IACjD,+EAA+E;IAC/E,MAAM,KAAK,GAAG,WAAW,IAAI,SAAS,CAAC;IACvC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACvD,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAe,EAAE,EAAE;QAChD,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO;YACH,YAAY;YACZ,aAAa,EAAE,MAAM,gBAAgB,CAAC;gBAClC,gBAAgB,EAAE,YAAY;gBAC9B,YAAY;gBACZ,KAAK;gBACL,iBAAiB;aACpB,CAAC;SACL,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAa;QAC1B,2DAA2D;QAC3D,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,wBAAwB,CAAC,KAAM,CAAC;QACvF,KAAK,EAAE,OAAO;KACjB,CAAC;IAEF,6FAA6F;IAC7F,kGAAkG;IAClG,MAAM,YAAY,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,YAAY,GAAG,YAAY,IAAI,WAAW,CAAC,OAAO,CAAC;IAEzD,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC5F,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACjH,yHAAyH;IACzH,MAAM,aAAa,GAAG,+BAA+B,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IAEzF,OAAO;QACH,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC;QACxE,YAAY;QACZ,SAAS,EAAE,MAAM,qBAAqB,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;QAC5F,yBAAyB,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;QAC1D,yBAAyB,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC;QACxD,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;KAC/C,CAAC;AACN,CAAC,CAAC"}
@@ -4,15 +4,24 @@ interface ShouldBuildAndTestOptions {
4
4
  actorConfigs: ActorConfig[];
5
5
  /** The range the files changed in, to compare `.actor` JSON files across. */
6
6
  range: GitRange;
7
- testFilesGlob?: string;
7
+ /**
8
+ * Glob of the platform test files, from the repo root (`platformTestsGlob` in the config). A change to a matching
9
+ * file is a test change, even when .dockerignore lists it.
10
+ */
11
+ platformTestsGlob?: string;
8
12
  }
9
13
  export interface ChangedActors {
10
14
  /** Actors with at least one functional change. They need a new build and tests. */
11
15
  functional: ActorConfig[];
12
- /** Actors whose changes are all cosmetic. They only need a new build when released. */
16
+ /** Actors with cosmetic changes and no functional one. They only need a new build when released. */
13
17
  cosmetic: ActorConfig[];
18
+ /**
19
+ * Actors with at least one platform test change, whatever else changed. Their tests need to run, but test changes
20
+ * alone need no release. An Actor can be in this list and in one of the others.
21
+ */
22
+ test: ActorConfig[];
14
23
  }
15
24
  /** Finds the Actors the changed files belong to, split by the most impactful change each Actor has. */
16
- export declare const getChangedActors: ({ filepathsChanged, actorConfigs, range, testFilesGlob, }: ShouldBuildAndTestOptions) => Promise<ChangedActors>;
25
+ export declare const getChangedActors: ({ filepathsChanged, actorConfigs, range, platformTestsGlob, }: ShouldBuildAndTestOptions) => Promise<ChangedActors>;
17
26
  export {};
18
27
  //# sourceMappingURL=diff-changes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-changes.d.ts","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGxD,UAAU,yBAAyB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,KAAK,EAAE,QAAQ,CAAC;IAEhB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAwJD,MAAM,WAAW,aAAa;IAC1B,mFAAmF;IACnF,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,uFAAuF;IACvF,QAAQ,EAAE,WAAW,EAAE,CAAC;CAC3B;AAED,uGAAuG;AACvG,eAAO,MAAM,gBAAgB,GAAU,2DAKpC,yBAAyB,KAAG,OAAO,CAAC,aAAa,CAuDnD,CAAC"}
1
+ {"version":3,"file":"diff-changes.d.ts","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGxD,UAAU,yBAAyB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,KAAK,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAiKD,MAAM,WAAW,aAAa;IAC1B,mFAAmF;IACnF,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,oGAAoG;IACpG,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB;;;OAGG;IACH,IAAI,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,uGAAuG;AACvG,eAAO,MAAM,gBAAgB,GAAU,+DAKpC,yBAAyB,KAAG,OAAO,CAAC,aAAa,CA+DnD,CAAC"}
@@ -1,7 +1,7 @@
1
- import picomatch from 'picomatch';
2
1
  import { isCosmeticOnlyJsonSchemaChange } from './diff-json-schema.js';
3
2
  import { loadDockerIgnore } from './dockerignore.js';
4
3
  import { logger } from './logger.js';
4
+ import { createTestFilesMatcher } from './test-files-glob.js';
5
5
  import { RelativeFile } from './utils/path/repo-relative.js';
6
6
  const IGNORED_TOP_LEVEL_FILES = [
7
7
  '.vscode/',
@@ -24,11 +24,13 @@ const isIgnoredTopLevelFile = (filePath, contextPath) => {
24
24
  * not one per actor, so it applies to every actor regardless of context/folder.
25
25
  * 2. Context matching (actorConfig.contextPaths) → outside-context if no match
26
26
  * 3. Hardcoded ignore list, checked against the path hoisted relative to the matched context entry → ignored
27
- * 4. .dockerignore filtering (patterns relative to dockerContextDir), skipped for the actor's own `.actor/`
28
- * dir and for test files → ignored if matched
29
- * 5. README.md by filename → cosmetic if inside the actor's own folder, otherwise ignored
30
- * 6. .json inside the actor's own `.actor/` dir with only cosmetic schema diffs → cosmetic (semantically verified)
31
- * 7. Everything else → functional
27
+ * 4. Platform test files (`platformTestsGlob`) → test, even when .dockerignore lists them. A test change needs the
28
+ * tests to run, but no release.
29
+ * 5. .dockerignore filtering (patterns relative to dockerContextDir), skipped for the actor's own `.actor/`
30
+ * dir → ignored if matched
31
+ * 6. README.md by filename → cosmetic if inside the actor's own folder, otherwise ignored
32
+ * 7. .json inside the actor's own `.actor/` dir with only cosmetic schema diffs → cosmetic (semantically verified)
33
+ * 8. Everything else → functional
32
34
  */
33
35
  const classifyFileChange = async (changedFile, actorConfig, range, dockerIgnoreMatcher, isTestFile) => {
34
36
  const lowercaseFilePath = changedFile.path.toLowerCase();
@@ -45,12 +47,15 @@ const classifyFileChange = async (changedFile, actorConfig, range, dockerIgnoreM
45
47
  if (isIgnoredTopLevelFile(changedFile, matchedContext)) {
46
48
  return { impact: 'ignored' };
47
49
  }
50
+ // Test files are often in .dockerignore, but a change to them must still run the tests
51
+ if (isTestFile(changedFile.path)) {
52
+ return { impact: 'test' };
53
+ }
48
54
  const isUnderActorDotDir = actorConfig.actorJson.file.parent.contains(changedFile);
49
55
  // .actor/ can legitimately be listed in .dockerignore (the Apify platform evaluates it before
50
56
  // the Docker build, so excluding it from the build context is a valid caching optimization) —
51
57
  // that shouldn't cause changes to .actor/ itself to be ignored here.
52
- // Test files are often in .dockerignore too, but a change to them must still build and test.
53
- if (!isUnderActorDotDir && !isTestFile(changedFile.path) && dockerIgnoreMatcher(changedFile.path)) {
58
+ if (!isUnderActorDotDir && dockerIgnoreMatcher(changedFile.path)) {
54
59
  return { impact: 'ignored' };
55
60
  }
56
61
  const isInActorFolder = changedFile.isWithin(actorConfig.folder);
@@ -119,10 +124,10 @@ const logChangeGroups = (groups) => {
119
124
  }
120
125
  };
121
126
  /** Finds the Actors the changed files belong to, split by the most impactful change each Actor has. */
122
- export const getChangedActors = async ({ filepathsChanged, actorConfigs, range, testFilesGlob, }) => {
127
+ export const getChangedActors = async ({ filepathsChanged, actorConfigs, range, platformTestsGlob, }) => {
123
128
  const actorsChangedMap = new Map();
124
129
  const testFilesInContext = new Set();
125
- const isTestFile = testFilesGlob ? picomatch(testFilesGlob, { nocase: true, dot: true }) : () => false;
130
+ const isTestFile = createTestFilesMatcher(platformTestsGlob);
126
131
  for (const actorConfig of actorConfigs) {
127
132
  const dockerIgnoreMatcher = loadDockerIgnore(actorConfig.dockerContextDir);
128
133
  for (const originalFilePath of filepathsChanged) {
@@ -140,9 +145,13 @@ export const getChangedActors = async ({ filepathsChanged, actorConfigs, range,
140
145
  actorConfig,
141
146
  files: [],
142
147
  hasFunctionalChange: false,
148
+ hasCosmeticChange: false,
149
+ hasTestChange: false,
143
150
  };
144
151
  entry.files.push(originalFilePath);
145
152
  entry.hasFunctionalChange ||= change.impact === 'functional';
153
+ entry.hasCosmeticChange ||= change.impact === 'cosmetic';
154
+ entry.hasTestChange ||= change.impact === 'test';
146
155
  actorsChangedMap.set(actorConfig.folder.path, entry);
147
156
  }
148
157
  }
@@ -155,10 +164,14 @@ export const getChangedActors = async ({ filepathsChanged, actorConfigs, range,
155
164
  }
156
165
  const entries = Array.from(actorsChangedMap.values());
157
166
  const functional = entries.filter((entry) => entry.hasFunctionalChange).map((entry) => entry.actorConfig);
158
- const cosmetic = entries.filter((entry) => !entry.hasFunctionalChange).map((entry) => entry.actorConfig);
167
+ const cosmetic = entries
168
+ .filter((entry) => !entry.hasFunctionalChange && entry.hasCosmeticChange)
169
+ .map((entry) => entry.actorConfig);
170
+ const test = entries.filter((entry) => entry.hasTestChange).map((entry) => entry.actorConfig);
159
171
  const names = (configs) => configs.map((config) => config.actorFullName).join(', ') || 'none';
160
172
  logger.info(`[DIFF]: Actors with functional changes: ${names(functional)}`);
161
173
  logger.info(`[DIFF]: Actors with only cosmetic changes: ${names(cosmetic)}`);
162
- return { functional, cosmetic };
174
+ logger.info(`[DIFF]: Actors with platform test changes: ${names(test)}`);
175
+ return { functional, cosmetic, test };
163
176
  };
164
177
  //# sourceMappingURL=diff-changes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-changes.js","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-changes.js","sourceRoot":"","sources":["../../bin/diff-changes.ts"],"names":[],"mappings":"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"}
package/dist/bin/main.js CHANGED
@@ -48,10 +48,6 @@ const affectedRangeOptions = {
48
48
  type: 'string',
49
49
  describe: 'Only count commits after this one. Ignored with --base if it is not on the branch',
50
50
  },
51
- 'test-files-glob': {
52
- type: 'string',
53
- describe: 'Glob (from the repo root) of test files that count as changes even when .dockerignore lists them',
54
- },
55
51
  };
56
52
  /**
57
53
  * For commands that change something (builds, deletes, Slack posts). A dry run still does every read and check
@@ -89,14 +85,18 @@ const envVarsSyncOptions = {
89
85
  };
90
86
  /** Flags of `test`, which runs the repository's vitest on the Actors piped in, e.g. the builds from `build`. */
91
87
  const testOptions = {
88
+ 'test-files-glob': {
89
+ type: 'string',
90
+ default: 'test/platform/**',
91
+ describe: 'Glob (from the repo root) of the test files to run. Quote it, so the shell does not expand it',
92
+ },
92
93
  'vitest-output-file': { type: 'string', describe: "Also keep vitest's own JSON report there, e.g. to upload it" },
93
94
  reporter: {
94
95
  type: 'string',
95
96
  describe: 'Vitest reporter (https://vitest.dev/guide/reporters) to add to `default` and `json`, which are always on, ' +
96
97
  'e.g. github-actions. Repeat it for more',
97
- // A plain string, not `array: true`: yargs would fill an array option with the arguments after it too, so
98
- // `test --reporter github-actions test/platform` would take the test path as a reporter. A repeated flag
99
- // still comes as an array, a single one as a string, so both are normalized to an array.
98
+ // A plain string, not `array: true`: yargs would fill an array option with the arguments after it too. A
99
+ // repeated flag still comes as an array, a single one as a string, so both are normalized to an array.
100
100
  coerce: (value) => (value === undefined ? [] : [value].flat()),
101
101
  },
102
102
  };
@@ -154,16 +154,9 @@ await yargs()
154
154
  .command('get-affected-actors', 'Find the Actors whose context changed in a commit range ending at the checked-out HEAD', (y) => y.options(affectedRangeOptions).options(actorSelectionOptions), async (args) => {
155
155
  writeJson(await getAffectedActors(args));
156
156
  })
157
- .command('test [filters..]', 'Run the tests of the Actors listed on stdin (builds from build, or get-actor-configs for default builds), and print a report for notify', (y) => y
158
- .positional('filters', {
159
- type: 'string',
160
- array: true,
161
- default: ['test/platform'],
162
- describe: 'Test files to run, as vitest filters',
163
- })
164
- .options(testOptions), async (args) => {
157
+ .command('test', 'Run the tests of the Actors listed on stdin (builds from build, or get-actor-configs for default builds), and print a report for notify', (y) => y.options(testOptions), async (args) => {
165
158
  const report = await runTests({
166
- filters: args.filters,
159
+ testFilesGlob: args.testFilesGlob,
167
160
  targets: parseTestTargets(await readStdin()),
168
161
  vitestOutputFile: args.vitestOutputFile,
169
162
  reporters: args.reporter,
@@ -187,7 +180,8 @@ await yargs()
187
180
  .command('build', 'Build the Actors listed on stdin, as {"actors": [{"actorFullName": ...}]}, from the checked-out branch', (y) => y.options(buildOptions).options(repoUrlOptions).options(envVarsSyncOptions).options(dryRunOptions), async (args) => {
188
181
  const input = parseBuildInput(await readStdin());
189
182
  const names = input.actors.map(({ actorFullName }) => actorFullName);
190
- // An empty --actors selects every Actor, but an empty list here means there is nothing to build
183
+ // An empty --actors selects every Actor, but an empty list here means there is nothing to build. The configs
184
+ // are picked by name, so an Actor listed twice (e.g. in two lists of get-affected-actors) is built once
191
185
  const actorConfigs = names.length > 0 ? await readConfigFile({ actors: names, ignore: [] }) : [];
192
186
  const builds = await buildActors({
193
187
  actorConfigs,
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../bin/main.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,gFAAgF;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,IAA8C,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEzG;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,cAAc,GAAG;IACnB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CACU,CAAC;AAE7C;;;MAGM;AACN,MAAM,qBAAqB,GAAG;IAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAc,EAAE;IAChE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAc,EAAE;CACxB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,oBAAoB,GAAG;IACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,wDAAwD,EAAE;IAC5F,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,mFAAmF;KAChG;IACD,iBAAiB,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,kGAAkG;KAC/G;CACuC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,aAAa,GAAG;IAClB,SAAS,EAAE;QACP,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,wFAAwF;KACrG;CACuC,CAAC;AAE7C,qEAAqE;AACrE,MAAM,YAAY,GAAG;IACjB,gBAAgB,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,mCAAmC,uBAAuB,oCAAoC;QACxG,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACtB,IAAI,KAAK,KAAK,uBAAuB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CACX,8CAA8C,uBAAuB,WAAW,KAAK,GAAG,CAC3F,CAAC;YACN,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ;CACuC,CAAC;AAE7C,8GAA8G;AAC9G,MAAM,kBAAkB,GAAG;IACvB,0BAA0B,EAAE;QACxB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,2EAA2E;KACxF;CACuC,CAAC;AAE7C,gHAAgH;AAChH,MAAM,WAAW,GAAG;IAChB,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,6DAA6D,EAAE;IACjH,QAAQ,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,QAAQ,EACJ,4GAA4G;YAC5G,yCAAyC;QAC7C,0GAA0G;QAC1G,yGAAyG;QACzG,yFAAyF;QACzF,MAAM,EAAE,CAAC,KAAoC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;KAChG;CACuC,CAAC;AAE7C;;;GAGG;AACH,MAAM,aAAa,GAAG;IAClB,eAAe,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,0BAA0B;QACpC,oGAAoG;QACpG,MAAM,EAAE,CAAC,KAAwB,EAAE,EAAE;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ;IACD,EAAE,EAAE;QACA,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,SAAkB;QAC3B,QAAQ,EAAE,oDAAoD;KACjE;IACD,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,uEAAuE;KACpF;IACD,SAAS,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,yDAAyD;KACtE;IACD,UAAU,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,yFAAyF;KACtG;CACuC,CAAC;AAE7C,gDAAgD;AAChD,MAAM,aAAa,GAAG;IAClB,WAAW,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,qEAAqE;KAClF;CACuC,CAAC;AAE7C,MAAM,KAAK,EAAE;KACR,UAAU,CAAC,qBAAqB,CAAC;KACjC,OAAO,CAAC,aAAa,CAAC;KACtB,UAAU,CAAC,WAAW,CAAC;KACvB,OAAO,CACJ,mBAAmB,EACnB,EAAE,EACF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EACvC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IACzB,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,SAAS,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC,CACJ;KACA,OAAO,CACJ,qBAAqB,EACrB,wFAAwF,EACxF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EACrE,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,SAAS,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC,CACJ;KACA,OAAO,CACJ,kBAAkB,EAClB,yIAAyI,EACzI,CAAC,CAAC,EAAE,EAAE,CACF,CAAC;KACI,UAAU,CAAC,SAAS,EAAE;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,CAAC,eAAe,CAAC;IAC1B,QAAQ,EAAE,sCAAsC;CACnD,CAAC;KACD,OAAO,CAAC,WAAW,CAAC,EAC7B,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,gBAAgB,CAAC,MAAM,SAAS,EAAE,CAAC;QAC5C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,SAAS,EAAE,IAAI,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,gGAAgG;IAChG,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC9C,CAAC,CACJ;KACA,OAAO,CACJ,QAAQ,EACR,sGAAsG,EACtG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EACtD,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,MAAM,CAAC;QACT,KAAK,EAAE,gBAAgB,CAAC,MAAM,SAAS,EAAE,CAAC;QAC1C,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;KACtB,CAAC,CAAC;AACP,CAAC,CACJ;KACA,OAAO,CACJ,OAAO,EACP,wGAAwG,EACxG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EACzG,KAAK,EAAE,IAAI,EAAE,EAAE;IACX,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;IACrE,gGAAgG;IAChG,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;QAC7B,YAAY;QACZ,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;KAClD,CAAC,CAAC;IACH,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CACJ;KACA,OAAO,CACJ,kBAAkB,EAClB,EAAE,EACF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAC1F,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,EAAE;IACvD,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACxF,SAAS,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CACJ;KACA,OAAO,CACJ,mBAAmB,EACnB,EAAE,EACF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAC9D,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IACjC,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,MAAM,eAAe,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC,CACJ;KACA,cAAc,EAAE;KAChB,aAAa,CAAC,CAAC,EAAE,qBAAqB,CAAC;KACvC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE;IAC9B,2FAA2F;IAC3F,yFAAyF;IACzF,yFAAyF;IACzF,IAAI,GAAG,EAAE,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACJ,kEAAkE;QAClE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC;KACD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../bin/main.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { TestTarget } from './stdin-input.js';
2
2
  import { type TestReport } from './test-report.js';
3
3
  interface RunTestsOptions {
4
- /** Vitest file filters, e.g. `test/platform/core` */
5
- filters: string[];
4
+ /** Glob from the repo root (`cwd`) of the test files to run, e.g. `test/platform/**` */
5
+ testFilesGlob: string;
6
6
  /** The Actors to test, each with its build or, without one, its default build */
7
7
  targets: TestTarget[];
8
8
  /** Keeps vitest's own JSON report there, e.g. to upload it */
@@ -16,6 +16,6 @@ interface RunTestsOptions {
16
16
  * goes to stderr, so stdout stays free for the report. A failing test or a crashing vitest is a failed report, not
17
17
  * an error: the report is how the failure gets to `notify`.
18
18
  */
19
- export declare const runTests: ({ filters, targets, vitestOutputFile, reporters, cwd, }: RunTestsOptions) => Promise<TestReport>;
19
+ export declare const runTests: ({ testFilesGlob, targets, vitestOutputFile, reporters, cwd, }: RunTestsOptions) => Promise<TestReport>;
20
20
  export {};
21
21
  //# sourceMappingURL=run-tests.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-tests.d.ts","sourceRoot":"","sources":["../../bin/run-tests.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAkC,KAAK,UAAU,EAAuC,MAAM,kBAAkB,CAAC;AAoBxH,UAAU,eAAe;IACrB,qDAAqD;IACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iFAAiF;IACjF,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iHAAiH;IACjH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAU,yDAM5B,eAAe,KAAG,OAAO,CAAC,UAAU,CA4DtC,CAAC"}
1
+ {"version":3,"file":"run-tests.d.ts","sourceRoot":"","sources":["../../bin/run-tests.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAkC,KAAK,UAAU,EAAuC,MAAM,kBAAkB,CAAC;AA2CxH,UAAU,eAAe;IACrB,wFAAwF;IACxF,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iHAAiH;IACjH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAU,+DAM5B,eAAe,KAAG,OAAO,CAAC,UAAU,CA6DtC,CAAC"}