@overkill-dev/run 0.0.23 → 0.0.25

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/engine/execution-supervision.js +1 -1
  2. package/engine/execution-supervision.js.map +1 -1
  3. package/engine/metadata.d.ts +49 -0
  4. package/engine/metadata.d.ts.map +1 -0
  5. package/engine/metadata.js +313 -0
  6. package/engine/metadata.js.map +1 -0
  7. package/engine/reporter.d.ts +2 -2
  8. package/engine/reporter.d.ts.map +1 -1
  9. package/engine/run-if-main.d.ts +2 -1
  10. package/engine/run-if-main.d.ts.map +1 -1
  11. package/engine/run-if-main.js.map +1 -1
  12. package/engine/test-node.d.ts +1 -2
  13. package/engine/test-node.d.ts.map +1 -1
  14. package/engine/test-node.js +5 -7
  15. package/engine/test-node.js.map +1 -1
  16. package/engine/test-plan.d.ts +10 -4
  17. package/engine/test-plan.d.ts.map +1 -1
  18. package/engine/test-plan.js +22 -14
  19. package/engine/test-plan.js.map +1 -1
  20. package/package.json +7 -1
  21. package/packages/run/filters.entry-point.d.ts +3 -0
  22. package/packages/run/filters.entry-point.d.ts.map +1 -0
  23. package/packages/run/filters.entry-point.js +2 -0
  24. package/packages/run/filters.entry-point.js.map +1 -0
  25. package/packages/run/run.entry-point.d.ts +1 -1
  26. package/packages/run/run.entry-point.d.ts.map +1 -1
  27. package/readme.md +27 -5
  28. package/run/collected-run-plan.js +25 -15
  29. package/run/collected-run-plan.js.map +1 -1
  30. package/run/run-facts.js +1 -0
  31. package/run/run-facts.js.map +1 -1
  32. package/run/run-local-test-plan.js +3 -3
  33. package/run/run-local-test-plan.js.map +1 -1
  34. package/run/run-selection-filters.d.ts +29 -0
  35. package/run/run-selection-filters.d.ts.map +1 -0
  36. package/run/run-selection-filters.js +346 -0
  37. package/run/run-selection-filters.js.map +1 -0
  38. package/run/run-selection.js +104 -0
  39. package/run/run-selection.js.map +1 -0
  40. package/run/run-support.js +2 -1
  41. package/run/run-support.js.map +1 -1
  42. package/run/run-test-modules.js +1 -0
  43. package/run/run-test-modules.js.map +1 -1
  44. package/run/run-test-plan.js +1 -1
  45. package/run/run-test-plan.js.map +1 -1
  46. package/run/run-types.d.ts +64 -5
  47. package/run/run-types.d.ts.map +1 -1
  48. package/run/run-types.js.map +1 -1
  49. package/run/run-validation.js +8 -0
  50. package/run/run-validation.js.map +1 -1
  51. package/run/run.js +74 -32
  52. package/run/run.js.map +1 -1
  53. package/run/supervised-run-runtime.js +2 -1
  54. package/run/supervised-run-runtime.js.map +1 -1
  55. package/run/supervised-run.js +9 -2
  56. package/run/supervised-run.js.map +1 -1
  57. package/sbom.cdx.json +4 -4
@@ -0,0 +1,346 @@
1
+ import { posix as path } from 'node:path';
2
+ import { caseIdentityKey } from "../engine/identity.js";
3
+ const filterFields = new Set([
4
+ 'file',
5
+ 'name',
6
+ 'owner',
7
+ 'params',
8
+ 'runtime',
9
+ 'stability',
10
+ 'suite',
11
+ 'tag'
12
+ ]);
13
+ function isRecord(value) {
14
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
15
+ }
16
+ function isRunStringFilterField(value) {
17
+ return typeof value === 'string' && filterFields.has(value);
18
+ }
19
+ function assertNonEmptyString(value, label) {
20
+ if (value.trim().length === 0) {
21
+ throw new TypeError(`${label} must not be empty.`);
22
+ }
23
+ }
24
+ function assertNonEmptyFilters(filters) {
25
+ const [firstFilter, ...remainingFilters] = filters;
26
+ if (firstFilter === undefined) {
27
+ throw new TypeError('Composite run filters must contain at least one child filter.');
28
+ }
29
+ return [firstFilter, ...remainingFilters];
30
+ }
31
+ function copyCaseId(id) {
32
+ return {
33
+ file: id.file,
34
+ name: id.name,
35
+ params: id.params,
36
+ suite: Array.from(id.suite)
37
+ };
38
+ }
39
+ export function all(filters) {
40
+ return {
41
+ filters: assertNonEmptyFilters(Array.from(filters)),
42
+ kind: 'all'
43
+ };
44
+ }
45
+ export function any(filters) {
46
+ return {
47
+ filters: assertNonEmptyFilters(Array.from(filters)),
48
+ kind: 'any'
49
+ };
50
+ }
51
+ export function not(filter) {
52
+ return { filter, kind: 'not' };
53
+ }
54
+ export function caseId(id) {
55
+ return {
56
+ id: copyCaseId(id),
57
+ kind: 'case-id'
58
+ };
59
+ }
60
+ export function equals(field, value) {
61
+ assertNonEmptyString(value, 'Run filter value');
62
+ return { field, kind: 'equals', value };
63
+ }
64
+ export function contains(field, value) {
65
+ assertNonEmptyString(value, 'Run filter value');
66
+ return { field, kind: 'contains', value };
67
+ }
68
+ export function glob(field, pattern) {
69
+ assertNonEmptyString(pattern, 'Run filter glob pattern');
70
+ return { field, kind: 'glob', pattern };
71
+ }
72
+ export function file(pattern) {
73
+ return glob('file', pattern);
74
+ }
75
+ export function name(value) {
76
+ return contains('name', value);
77
+ }
78
+ export function owner(value) {
79
+ return equals('owner', value);
80
+ }
81
+ export function params(value) {
82
+ return contains('params', value);
83
+ }
84
+ export function runtime(value) {
85
+ return equals('runtime', value);
86
+ }
87
+ export function stability(value) {
88
+ return equals('stability', value);
89
+ }
90
+ export function suite(value) {
91
+ return contains('suite', value);
92
+ }
93
+ export function tag(value) {
94
+ return equals('tag', value);
95
+ }
96
+ function hasInvalidSuiteItem(value) {
97
+ return !Array.isArray(value) || value.some(function emptySuiteItem(item) {
98
+ return typeof item !== 'string' || item.trim().length === 0;
99
+ });
100
+ }
101
+ const caseIdFieldValidators = [
102
+ function invalidCaseFile(id) {
103
+ if (typeof id.file !== 'string' && id.file !== null) {
104
+ return 'Run filter case id file must be a string or null.';
105
+ }
106
+ return null;
107
+ },
108
+ function invalidCaseName(id) {
109
+ if (typeof id.name !== 'string' || id.name.trim().length === 0) {
110
+ return 'Run filter case id name must be a non-empty string.';
111
+ }
112
+ return null;
113
+ },
114
+ function invalidCaseParams(id) {
115
+ if (typeof id.params !== 'string' && id.params !== null) {
116
+ return 'Run filter case id params must be a string or null.';
117
+ }
118
+ return null;
119
+ },
120
+ function invalidCaseSuite(id) {
121
+ if (hasInvalidSuiteItem(id.suite)) {
122
+ return 'Run filter case id suite must contain non-empty strings.';
123
+ }
124
+ return null;
125
+ }
126
+ ];
127
+ function invalidCaseIdFieldMessage(id) {
128
+ for (const validateField of caseIdFieldValidators) {
129
+ const message = validateField(id);
130
+ if (message !== null) {
131
+ return message;
132
+ }
133
+ }
134
+ return null;
135
+ }
136
+ function invalidCaseIdMessage(id) {
137
+ if (!isRecord(id)) {
138
+ return 'Run filter case id must be an object.';
139
+ }
140
+ return invalidCaseIdFieldMessage(id);
141
+ }
142
+ function invalidStringFilterMessage(filter, valueField) {
143
+ if (!isRunStringFilterField(filter.field)) {
144
+ return 'Run filter field is unknown.';
145
+ }
146
+ if (typeof filter[valueField] !== 'string' || filter[valueField].trim().length === 0) {
147
+ return `Run filter ${valueField} must be a non-empty string.`;
148
+ }
149
+ return null;
150
+ }
151
+ function invalidCompositeFilterMessage(filter) {
152
+ if (!Array.isArray(filter.filters) || filter.filters.length === 0) {
153
+ return 'Composite run filters must contain at least one child filter.';
154
+ }
155
+ return null;
156
+ }
157
+ const filterNodeValidators = {
158
+ all: invalidCompositeFilterMessage,
159
+ any: invalidCompositeFilterMessage,
160
+ 'case-id': function invalidCaseIdFilter(filter) {
161
+ return invalidCaseIdMessage(filter.id);
162
+ },
163
+ contains: function invalidContainsFilter(filter) {
164
+ return invalidStringFilterMessage(filter, 'value');
165
+ },
166
+ equals: function invalidEqualsFilter(filter) {
167
+ return invalidStringFilterMessage(filter, 'value');
168
+ },
169
+ glob: function invalidGlobFilter(filter) {
170
+ return invalidStringFilterMessage(filter, 'pattern');
171
+ },
172
+ not: function invalidNotFilter(filter) {
173
+ return isRecord(filter.filter) ? null : 'Run filter must be an object.';
174
+ }
175
+ };
176
+ function invalidKnownFilterMessage(filter) {
177
+ const validate = typeof filter.kind === 'string' ? filterNodeValidators[filter.kind] : undefined;
178
+ return validate === undefined ? 'Run filter kind is unknown.' : validate(filter);
179
+ }
180
+ function filterChildren(filter) {
181
+ if ((filter.kind === 'all' || filter.kind === 'any') && Array.isArray(filter.filters)) {
182
+ return filter.filters;
183
+ }
184
+ return filter.kind === 'not' ? [filter.filter] : [];
185
+ }
186
+ function invalidFilterNodeMessage(filter) {
187
+ if (!isRecord(filter)) {
188
+ return 'Run filter must be an object.';
189
+ }
190
+ return invalidKnownFilterMessage(filter);
191
+ }
192
+ function childFilterLevel(filters) {
193
+ return filters.flatMap(function childFilters(filter) {
194
+ return isRecord(filter) ? filterChildren(filter) : [];
195
+ });
196
+ }
197
+ function invalidFilterLevelMessage(filters) {
198
+ for (const filter of filters) {
199
+ const message = invalidFilterNodeMessage(filter);
200
+ if (message !== null) {
201
+ return message;
202
+ }
203
+ }
204
+ return null;
205
+ }
206
+ function invalidRunFilterMessage(filter) {
207
+ let pendingFilters = [filter];
208
+ while (pendingFilters.length > 0) {
209
+ const message = invalidFilterLevelMessage(pendingFilters);
210
+ if (message !== null) {
211
+ return message;
212
+ }
213
+ pendingFilters = childFilterLevel(pendingFilters);
214
+ }
215
+ return null;
216
+ }
217
+ export function invalidRunSelectionMessage(selection) {
218
+ if (!isRecord(selection)) {
219
+ return 'Run selection must be an object.';
220
+ }
221
+ if (selection.kind === 'all') {
222
+ return null;
223
+ }
224
+ if (selection.kind === 'filter') {
225
+ return invalidRunFilterMessage(selection.filter);
226
+ }
227
+ return 'Run selection kind is unknown.';
228
+ }
229
+ function copyRunFilter(filter) {
230
+ if (filter.kind === 'all' || filter.kind === 'any') {
231
+ return {
232
+ filters: assertNonEmptyFilters(filter.filters.map(copyRunFilter)),
233
+ kind: filter.kind
234
+ };
235
+ }
236
+ if (filter.kind === 'not') {
237
+ return {
238
+ filter: copyRunFilter(filter.filter),
239
+ kind: 'not'
240
+ };
241
+ }
242
+ if (filter.kind === 'case-id') {
243
+ return caseId(filter.id);
244
+ }
245
+ if (filter.kind === 'glob') {
246
+ return glob(filter.field, filter.pattern);
247
+ }
248
+ return {
249
+ field: filter.field,
250
+ kind: filter.kind,
251
+ value: filter.value
252
+ };
253
+ }
254
+ export function copyRunSelection(selection) {
255
+ if (selection.kind === 'all') {
256
+ return { kind: 'all' };
257
+ }
258
+ return {
259
+ filter: copyRunFilter(selection.filter),
260
+ kind: 'filter'
261
+ };
262
+ }
263
+ function normalizedValue(value) {
264
+ return value.toLowerCase();
265
+ }
266
+ function suitePath(suiteParts) {
267
+ if (suiteParts.length === 0) {
268
+ return [];
269
+ }
270
+ return [suiteParts.join(' > ')];
271
+ }
272
+ const candidateFieldReaders = {
273
+ file(candidate) {
274
+ return candidate.id.file === null ? [] : [candidate.id.file];
275
+ },
276
+ name(candidate) {
277
+ return [candidate.id.name];
278
+ },
279
+ owner(candidate) {
280
+ return candidate.metadata.ownership;
281
+ },
282
+ params(candidate) {
283
+ return candidate.id.params === null ? [] : [candidate.id.params];
284
+ },
285
+ runtime(candidate) {
286
+ return candidate.metadata.runtimes;
287
+ },
288
+ stability(candidate) {
289
+ return [candidate.metadata.stability];
290
+ },
291
+ suite(candidate) {
292
+ return suitePath(candidate.id.suite);
293
+ },
294
+ tag(candidate) {
295
+ return candidate.metadata.tags;
296
+ }
297
+ };
298
+ function candidateFieldValues(candidate, field) {
299
+ return candidateFieldReaders[field](candidate);
300
+ }
301
+ function matchesStringFilter(candidate, field, match) {
302
+ return candidateFieldValues(candidate, field)
303
+ .map(normalizedValue)
304
+ .some(match);
305
+ }
306
+ function matchesTextFilter(filter, candidate) {
307
+ if (filter.kind === 'contains') {
308
+ const expected = normalizedValue(filter.value);
309
+ return matchesStringFilter(candidate, filter.field, function valueContains(value) {
310
+ return value.includes(expected);
311
+ });
312
+ }
313
+ if (filter.kind === 'equals') {
314
+ const expected = normalizedValue(filter.value);
315
+ return matchesStringFilter(candidate, filter.field, function valueEquals(value) {
316
+ return value === expected;
317
+ });
318
+ }
319
+ if (filter.kind === 'glob') {
320
+ const pattern = normalizedValue(filter.pattern);
321
+ return matchesStringFilter(candidate, filter.field, function valueMatchesGlob(value) {
322
+ return path.matchesGlob(value, pattern);
323
+ });
324
+ }
325
+ return false;
326
+ }
327
+ export function matchesRunFilter(filter, candidate) {
328
+ if (filter.kind === 'all') {
329
+ return filter.filters.every(function childMatches(childFilter) {
330
+ return matchesRunFilter(childFilter, candidate);
331
+ });
332
+ }
333
+ if (filter.kind === 'any') {
334
+ return filter.filters.some(function childMatches(childFilter) {
335
+ return matchesRunFilter(childFilter, candidate);
336
+ });
337
+ }
338
+ if (filter.kind === 'not') {
339
+ return !matchesRunFilter(filter.filter, candidate);
340
+ }
341
+ if (filter.kind === 'case-id') {
342
+ return caseIdentityKey(filter.id) === caseIdentityKey(candidate.id);
343
+ }
344
+ return matchesTextFilter(filter, candidate);
345
+ }
346
+ //# sourceMappingURL=run-selection-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-selection-filters.js","sourceRoot":"","sources":["../../../../source/run/run-selection-filters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { createCaseId } from "../engine/identity.js";
2
+ import { noTestsCollected } from "./run-errors.js";
3
+ import { matchesRunFilter } from "./run-selection-filters.js";
4
+ function selectedCases(cases, selection, matchesCase) {
5
+ if (selection.kind === 'all') {
6
+ return {
7
+ discoveredCases: cases,
8
+ plannedCases: cases
9
+ };
10
+ }
11
+ return {
12
+ discoveredCases: cases,
13
+ plannedCases: cases.filter(matchesCase)
14
+ };
15
+ }
16
+ function matchesTestPlanCase(selection) {
17
+ if (selection.kind === 'all') {
18
+ return function keepAllCases() {
19
+ return true;
20
+ };
21
+ }
22
+ return function testPlanCaseMatches(testCase) {
23
+ return matchesRunFilter(selection.filter, {
24
+ id: testCase.id,
25
+ metadata: testCase.metadata
26
+ });
27
+ };
28
+ }
29
+ export function selectedTestPlanCases(testPlan, selection) {
30
+ return selectedCases(testPlan.discoveredCases, selection, matchesTestPlanCase(selection));
31
+ }
32
+ export function selectedTestPlan(testPlan, selection) {
33
+ const selectionResult = selectedTestPlanCases(testPlan, selection);
34
+ const firstCase = selectionResult.plannedCases[0];
35
+ if (firstCase === undefined) {
36
+ noTestsCollected('Run selection matched no test cases.');
37
+ }
38
+ return {
39
+ ...testPlan,
40
+ cases: [firstCase, ...selectionResult.plannedCases.slice(1)]
41
+ };
42
+ }
43
+ function collectedCaseId(file, testCase) {
44
+ return createCaseId(file, testCase.suite, testCase.name, testCase.params);
45
+ }
46
+ function collectedCases(files) {
47
+ return files.flatMap(function collectFileCases(file) {
48
+ return file.cases.map(function collectCase(testCase) {
49
+ return {
50
+ file: file.file,
51
+ testCase
52
+ };
53
+ });
54
+ });
55
+ }
56
+ function matchesCollectedCase(selection) {
57
+ if (selection.kind === 'all') {
58
+ return function keepAllCases() {
59
+ return true;
60
+ };
61
+ }
62
+ return function collectedCaseMatches(input) {
63
+ return matchesRunFilter(selection.filter, {
64
+ id: collectedCaseId(input.file, input.testCase),
65
+ metadata: input.testCase.metadata
66
+ });
67
+ };
68
+ }
69
+ function collectedRunFile(file, cases) {
70
+ if (cases.length === 0) {
71
+ return null;
72
+ }
73
+ return { cases, file };
74
+ }
75
+ function collectedRunFiles(cases) {
76
+ return Array
77
+ .from(Map.groupBy(cases, function groupByFile(input) {
78
+ return input.file;
79
+ }))
80
+ .flatMap(function toCollectedFile([file, fileCases]) {
81
+ const plannedFile = collectedRunFile(file, fileCases.map(function toTestCase(input) {
82
+ return input.testCase;
83
+ }));
84
+ return plannedFile === null ? [] : [plannedFile];
85
+ });
86
+ }
87
+ export function selectedCollectedRunPlan(plan, selection) {
88
+ const discoveredCases = collectedCases(plan.discoveredFiles);
89
+ const plannedCases = selection.kind === 'all'
90
+ ? discoveredCases
91
+ : discoveredCases.filter(matchesCollectedCase(selection));
92
+ return {
93
+ ...plan,
94
+ files: collectedRunFiles(plannedCases)
95
+ };
96
+ }
97
+ export function assertCollectedRunPlanHasCases(plan) {
98
+ if (plan.files.every(function fileHasNoCases(file) {
99
+ return file.cases.length === 0;
100
+ })) {
101
+ noTestsCollected('Run selection matched no test cases.');
102
+ }
103
+ }
104
+ //# sourceMappingURL=run-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-selection.js","sourceRoot":"","sources":["../../../../source/run/run-selection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { createRuntimeCapabilityPolicy } from "./capability-policy.js";
2
+ import { copyRunSelection } from "./run-selection-filters.js";
2
3
  import { validateRunResourceUsagePolicy } from "./run-validation.js";
3
4
  export function freezeValue(value) {
4
5
  if (value !== null && typeof value === 'object') {
@@ -99,7 +100,7 @@ export function copyRunRequest(request) {
99
100
  resourceBudgetOverrides: copyResourceBudgetOverrides(request.resourceBudgetOverrides),
100
101
  resourceUsageSamplingIntervalMilliseconds: request.resourceUsageSamplingIntervalMilliseconds,
101
102
  seed: { value: request.seed.value },
102
- selection: { kind: request.selection.kind },
103
+ selection: copyRunSelection(request.selection),
103
104
  shard: copyRunShard(request.shard),
104
105
  verbose: request.verbose
105
106
  };
@@ -1 +1 @@
1
- {"version":3,"file":"run-support.js","sourceRoot":"","sources":["../../../../source/run/run-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-support.js","sourceRoot":"","sources":["../../../../source/run/run-support.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ function readTestNode(moduleNamespace, file, engine) {
38
38
  }
39
39
  return {
40
40
  file: file.file,
41
+ metadata: {},
41
42
  testNode
42
43
  };
43
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-test-modules.js","sourceRoot":"","sources":["../../../../source/run/run-test-modules.ts"],"names":[],"mappings":";;;;;;;;AAIA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIrE,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC3C,OAAO,MAAM,MAAM,kCAAC,IAAI,EAAY,CAAC;AACzC,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAuB;IACtD,IAAI,CAAC;QACD,OAAO,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzG,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAuB;IACnD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,CACxB,4CAA4C,IAAI,CAAC,IAAI,EAAE,EACvD,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,QAAQ,CACX,CAAC;IACN,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,SAAS,YAAY,CAAC,eAAoC,EAAE,IAAuB,EAAE,MAAc;IAC/F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC;QAC9C,cAAc,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;IAErC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,cAAc,CAAC,gEAAgE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,OAAO;QACH,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ;KACX,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,KAA+C,EAC/C,MAAc;IAEd,MAAM,CAAE,SAAS,EAAE,GAAG,cAAc,CAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzF,MAAM,kBAAkB,GAAmB,EAAE,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAChC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,CAAE,aAAa,EAAE,GAAG,kBAAkB,CAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"run-test-modules.js","sourceRoot":"","sources":["../../../../source/run/run-test-modules.ts"],"names":[],"mappings":";;;;;;;;AAIA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIrE,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC3C,OAAO,MAAM,MAAM,kCAAC,IAAI,EAAY,CAAC;AACzC,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAuB;IACtD,IAAI,CAAC;QACD,OAAO,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzG,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAuB;IACnD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,CACxB,4CAA4C,IAAI,CAAC,IAAI,EAAE,EACvD,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,QAAQ,CACX,CAAC;IACN,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,SAAS,YAAY,CAAC,eAAoC,EAAE,IAAuB,EAAE,MAAc;IAC/F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC;QAC9C,cAAc,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;IAErC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,cAAc,CAAC,gEAAgE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,OAAO;QACH,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ;KACX,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,KAA+C,EAC/C,MAAc;IAEd,MAAM,CAAE,SAAS,EAAE,GAAG,cAAc,CAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzF,MAAM,kBAAkB,GAAmB,EAAE,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAChC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,CAAE,aAAa,EAAE,GAAG,kBAAkB,CAAE,CAAC;AACpD,CAAC"}
@@ -7,7 +7,7 @@ async function createRunTestPlanFromDiscoveredFiles(input) {
7
7
  return input.engine.createTestPlanFromTestFiles({
8
8
  files: testFiles,
9
9
  root: {
10
- metadata: {},
10
+ metadata: { kind: input.testFamily },
11
11
  name: input.cwd
12
12
  }
13
13
  });
@@ -1 +1 @@
1
- {"version":3,"file":"run-test-plan.js","sourceRoot":"","sources":["../../../../source/run/run-test-plan.ts"],"names":[],"mappings":"AAGA,OAAyD,oBAAoB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAc3D,KAAK,UAAU,oCAAoC,CAAC,KAAgC;IAChF,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtE,IAAI,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC5C,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE;gBACF,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,GAAG;aAClB;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzG,CAAC;AACL,CAAC;;MAQK,CAAC,KAAK,UAAU,0BAA0B,CAAC,KAAgC;IAC7E,OAAO,MAAM,oCAAoC,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"run-test-plan.js","sourceRoot":"","sources":["../../../../source/run/run-test-plan.ts"],"names":[],"mappings":"AAGA,OAAyD,oBAAoB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAiB3D,KAAK,UAAU,oCAAoC,CAAC,KAAgC;IAChF,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtE,IAAI,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC5C,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE;gBACF,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE;gBACpC,IAAI,EAAE,KAAK,CAAC,GAAG;aAClB;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzG,CAAC;AACL,CAAC;;MAaK,CAAC,KAAK,UAAU,0BAA0B,CAAC,KAAgC;IAC7E,OAAO,MAAM,oCAAoC,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC"}
@@ -10,8 +10,68 @@ import type { RuntimeCapabilityPolicyDependencies } from './capability-policy.ts
10
10
  import type { ResourceUsageTrackerOptions } from './resource-usage.ts';
11
11
  export type SerializedValue = SerializedValueShape;
12
12
  type RunExecuteOptions = NonNullable<Parameters<Execute>[1]>;
13
+ type RunCaseId = TestPlan['discoveredCases'][number]['id'];
13
14
  type RunOutputRenderer = NonNullable<RunExecuteOptions['outputRenderer']>;
14
15
  type RunReporters = RunExecuteOptions['reporters'];
16
+ export type RunStringFilterField = keyof {
17
+ readonly file: true;
18
+ readonly name: true;
19
+ readonly owner: true;
20
+ readonly params: true;
21
+ readonly runtime: true;
22
+ readonly stability: true;
23
+ readonly suite: true;
24
+ readonly tag: true;
25
+ };
26
+ type RunAllFilter = {
27
+ readonly filters: NonEmptyReadonlyArray<RunFilter>;
28
+ readonly kind: 'all';
29
+ };
30
+ type RunAnyFilter = {
31
+ readonly filters: NonEmptyReadonlyArray<RunFilter>;
32
+ readonly kind: 'any';
33
+ };
34
+ type RunCaseIdFilter = {
35
+ readonly id: RunCaseId;
36
+ readonly kind: 'case-id';
37
+ };
38
+ type RunContainsFilter = {
39
+ readonly field: RunStringFilterField;
40
+ readonly kind: 'contains';
41
+ readonly value: string;
42
+ };
43
+ type RunEqualsFilter = {
44
+ readonly field: RunStringFilterField;
45
+ readonly kind: 'equals';
46
+ readonly value: string;
47
+ };
48
+ type RunGlobFilter = {
49
+ readonly field: RunStringFilterField;
50
+ readonly kind: 'glob';
51
+ readonly pattern: string;
52
+ };
53
+ type RunNotFilter = {
54
+ readonly filter: RunFilter;
55
+ readonly kind: 'not';
56
+ };
57
+ type RunFilterByKind = {
58
+ readonly all: RunAllFilter;
59
+ readonly any: RunAnyFilter;
60
+ readonly 'case-id': RunCaseIdFilter;
61
+ readonly contains: RunContainsFilter;
62
+ readonly equals: RunEqualsFilter;
63
+ readonly glob: RunGlobFilter;
64
+ readonly not: RunNotFilter;
65
+ };
66
+ export type RunFilter = RunFilterByKind[keyof RunFilterByKind];
67
+ type RunAllSelection = {
68
+ readonly kind: 'all';
69
+ };
70
+ type RunFilterSelection = {
71
+ readonly filter: RunFilter;
72
+ readonly kind: 'filter';
73
+ };
74
+ export type RunSelection = RunAllSelection | RunFilterSelection;
15
75
  export type RunEngineSelection = {
16
76
  readonly engine: Engine;
17
77
  readonly kind: 'instance';
@@ -23,9 +83,6 @@ export type RunEngineSelection = {
23
83
  } | {
24
84
  readonly kind: 'default';
25
85
  };
26
- export type RunSelection = {
27
- readonly kind: 'all';
28
- };
29
86
  export type RunShard = {
30
87
  readonly index: number;
31
88
  readonly total: number;
@@ -150,6 +207,7 @@ export type RunExecutionFacts = {
150
207
  readonly verbose: false;
151
208
  };
152
209
  export type RunReproducibilityFacts = {
210
+ readonly selection: RunSelection;
153
211
  readonly seed: string;
154
212
  readonly shard: RunShard;
155
213
  };
@@ -164,7 +222,7 @@ export type RunEngineFacts = {
164
222
  readonly kind: 'instance';
165
223
  };
166
224
  export type CollectedRunCase = {
167
- readonly metadata: SerializedValue;
225
+ readonly metadata: TestPlan['cases'][number]['metadata'];
168
226
  readonly name: string;
169
227
  readonly params: string | null;
170
228
  readonly suite: readonly string[];
@@ -175,10 +233,11 @@ export type CollectedRunFile = {
175
233
  };
176
234
  export type CollectedRunPlan = {
177
235
  readonly defined: number;
236
+ readonly discoveredFiles: readonly CollectedRunFile[];
178
237
  readonly files: readonly CollectedRunFile[];
179
238
  readonly orphans: readonly OrphanedNode[];
180
239
  readonly root: {
181
- readonly metadata: SerializedValue;
240
+ readonly metadata: TestPlan['root']['metadata'];
182
241
  readonly name: string;
183
242
  };
184
243
  };