@overkill-dev/run 0.0.34 → 0.0.36
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.
- package/engine/case-execution.d.ts +1 -1
- package/engine/case-execution.d.ts.map +1 -1
- package/engine/case-execution.js +3 -3
- package/engine/case-execution.js.map +1 -1
- package/engine/execution-supervision.js +8 -8
- package/engine/execution-supervision.js.map +1 -1
- package/engine/reporter.d.ts +2 -2
- package/engine/reporter.d.ts.map +1 -1
- package/engine/run-result.d.ts +1 -1
- package/engine/run-result.d.ts.map +1 -1
- package/engine/test-data.d.ts +27 -0
- package/engine/test-data.d.ts.map +1 -0
- package/engine/test-data.js +113 -0
- package/engine/test-data.js.map +1 -0
- package/engine/test-node.d.ts +30 -12
- package/engine/test-node.d.ts.map +1 -1
- package/engine/test-node.js +52 -12
- package/engine/test-node.js.map +1 -1
- package/engine/test-plan.d.ts +8 -4
- package/engine/test-plan.d.ts.map +1 -1
- package/engine/test-plan.js +36 -21
- package/engine/test-plan.js.map +1 -1
- package/package.json +3 -2
- package/packages/engine/engine.entry-point.js +1 -0
- package/packages/engine/engine.entry-point.js.map +1 -1
- package/packages/run/filters.entry-point.d.ts +1 -1
- package/packages/run/filters.entry-point.d.ts.map +1 -1
- package/packages/run/filters.entry-point.js +1 -1
- package/packages/run/filters.entry-point.js.map +1 -1
- package/packages/run/run.entry-point.d.ts +1 -1
- package/packages/run/run.entry-point.d.ts.map +1 -1
- package/readme.md +22 -14
- package/reporters/line-reporter.js +7 -1
- package/reporters/line-reporter.js.map +1 -1
- package/reporters/run-fact-summary.js +20 -0
- package/reporters/run-fact-summary.js.map +1 -0
- package/run/collected-run-plan.js +19 -10
- package/run/collected-run-plan.js.map +1 -1
- package/run/command-line-command.d.ts +4 -0
- package/run/command-line-command.d.ts.map +1 -1
- package/run/command-line-command.js.map +1 -1
- package/run/command-line-runner.js +2 -2
- package/run/command-line-runner.js.map +1 -1
- package/run/run-facts.js +3 -3
- package/run/run-facts.js.map +1 -1
- package/run/run-filter-grammar.d.ts.map +1 -1
- package/run/run-filter-grammar.js +0 -2
- package/run/run-filter-grammar.js.map +1 -1
- package/run/run-if-main-facts.js +5 -5
- package/run/run-if-main-facts.js.map +1 -1
- package/run/run-if-main-options.d.ts +6 -4
- package/run/run-if-main-options.d.ts.map +1 -1
- package/run/run-if-main-options.js +5 -7
- package/run/run-if-main-options.js.map +1 -1
- package/run/run-if-main.d.ts.map +1 -1
- package/run/run-if-main.js +8 -4
- package/run/run-if-main.js.map +1 -1
- package/run/run-input-resolution.js +3 -3
- package/run/run-input-resolution.js.map +1 -1
- package/run/run-list-renderer.js +67 -6
- package/run/run-list-renderer.js.map +1 -1
- package/run/run-orchestrator.js +2 -6
- package/run/run-orchestrator.js.map +1 -1
- package/run/run-seed.js +6 -0
- package/run/run-seed.js.map +1 -0
- package/run/run-selection-filters.d.ts +1 -4
- package/run/run-selection-filters.d.ts.map +1 -1
- package/run/run-selection-filters.js +2 -16
- package/run/run-selection-filters.js.map +1 -1
- package/run/run-selection.js +66 -14
- package/run/run-selection.js.map +1 -1
- package/run/run-test-plan.js +2 -1
- package/run/run-test-plan.js.map +1 -1
- package/run/run-types.d.ts +10 -7
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run.js +30 -26
- package/run/run.js.map +1 -1
- package/run/supervised-child-process.js +1 -1
- package/run/supervised-child-process.js.map +1 -1
- package/run/supervised-child.js +16 -4
- package/run/supervised-child.js.map +1 -1
- package/run/supervised-run-runtime.js +6 -5
- package/run/supervised-run-runtime.js.map +1 -1
- package/run/supervised-run-state.js +1 -1
- package/run/supervised-run-state.js.map +1 -1
- package/run/supervised-run.js +6 -5
- package/run/supervised-run.js.map +1 -1
- package/sbom.cdx.json +21 -4
- package/engine/metadata.d.ts +0 -49
- package/engine/metadata.d.ts.map +0 -1
- package/engine/metadata.js +0 -313
- package/engine/metadata.js.map +0 -1
package/engine/test-node.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ensureValidSourceLocation } from "../assertion-protocol/source-location.js";
|
|
2
|
-
import {
|
|
2
|
+
import { normalizeTestAnnotations, normalizeTestControls } from "./test-data.js";
|
|
3
3
|
const testNodeBrand = Symbol.for('@overkill-dev/engine/TestNode');
|
|
4
|
+
const testNodeFamilyBrand = Symbol.for('@overkill-dev/engine/TestNodeFamily');
|
|
4
5
|
const testRootBrand = Symbol.for('@overkill-dev/engine/TestRoot');
|
|
5
6
|
const testNodeOwnerBrand = Symbol.for('@overkill-dev/engine/TestNodeOwner');
|
|
6
7
|
const testNodeOwnerIdentity = Symbol.for('@overkill-dev/engine/TestNodeOwnerIdentity');
|
|
@@ -63,6 +64,29 @@ export function isTestNode(value) {
|
|
|
63
64
|
export function isTestRoot(value) {
|
|
64
65
|
return typeof value === 'object' && value !== null && Object.hasOwn(value, testRootBrand);
|
|
65
66
|
}
|
|
67
|
+
export function testNodeFamily(node) {
|
|
68
|
+
return node[testNodeFamilyBrand];
|
|
69
|
+
}
|
|
70
|
+
function assertCompatibleTestFamily(node, family) {
|
|
71
|
+
const currentFamily = testNodeFamily(node);
|
|
72
|
+
if (currentFamily !== null && currentFamily !== family) {
|
|
73
|
+
throw new TypeError(`Test node already belongs to test family "${currentFamily}".`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export function stampTestNodeFamily(node, family) {
|
|
77
|
+
assertCompatibleTestFamily(node, family);
|
|
78
|
+
Object.defineProperty(node, testNodeFamilyBrand, {
|
|
79
|
+
configurable: true,
|
|
80
|
+
enumerable: true,
|
|
81
|
+
value: family,
|
|
82
|
+
writable: true
|
|
83
|
+
});
|
|
84
|
+
if (node.kind === 'root' || node.kind === 'suite') {
|
|
85
|
+
for (const child of node.children) {
|
|
86
|
+
stampTestNodeFamily(child, family);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
66
90
|
export function isOwnedTestNode(value, owner) {
|
|
67
91
|
return isTestNode(value) && value[testNodeOwnerBrand] === owner;
|
|
68
92
|
}
|
|
@@ -97,16 +121,19 @@ export function createTestNodeFactory(factoryOptions) {
|
|
|
97
121
|
function createTestCase(options) {
|
|
98
122
|
ensureTitleValue(options.title);
|
|
99
123
|
ensureTitle(options.title);
|
|
100
|
-
|
|
124
|
+
normalizeTestAnnotations(options.annotations);
|
|
125
|
+
normalizeTestControls(options.controls);
|
|
101
126
|
ensureTestBody(options.body);
|
|
102
127
|
ensureDefinitionLocations(options.definitionLocations);
|
|
103
128
|
const testCase = {
|
|
104
129
|
[testNodeBrand]: true,
|
|
130
|
+
[testNodeFamilyBrand]: null,
|
|
105
131
|
[testNodeOwnerBrand]: owner,
|
|
132
|
+
annotations: options.annotations,
|
|
133
|
+
controls: options.controls,
|
|
106
134
|
definitionLocations: options.definitionLocations,
|
|
107
135
|
execution: { body: options.body, kind: 'body' },
|
|
108
136
|
kind: 'test',
|
|
109
|
-
metadata: options.metadata,
|
|
110
137
|
title: options.title
|
|
111
138
|
};
|
|
112
139
|
recordConstructedNode(testCase);
|
|
@@ -115,16 +142,19 @@ export function createTestNodeFactory(factoryOptions) {
|
|
|
115
142
|
function createSkippedTestCase(options) {
|
|
116
143
|
ensureTitleValue(options.title);
|
|
117
144
|
ensureTitle(options.title);
|
|
118
|
-
|
|
145
|
+
normalizeTestAnnotations(options.annotations);
|
|
146
|
+
normalizeTestControls(options.controls);
|
|
119
147
|
ensureDefinitionLocations(options.definitionLocations);
|
|
120
148
|
const reason = readSkipReason(options.reason);
|
|
121
149
|
const testCase = {
|
|
122
150
|
[testNodeBrand]: true,
|
|
151
|
+
[testNodeFamilyBrand]: null,
|
|
123
152
|
[testNodeOwnerBrand]: owner,
|
|
153
|
+
annotations: options.annotations,
|
|
154
|
+
controls: options.controls,
|
|
124
155
|
definitionLocations: options.definitionLocations,
|
|
125
156
|
execution: { kind: 'skip', reason },
|
|
126
157
|
kind: 'test',
|
|
127
|
-
metadata: options.metadata,
|
|
128
158
|
title: options.title
|
|
129
159
|
};
|
|
130
160
|
recordConstructedNode(testCase);
|
|
@@ -133,34 +163,40 @@ export function createTestNodeFactory(factoryOptions) {
|
|
|
133
163
|
function createRoot(options) {
|
|
134
164
|
ensureTitleValue(options.title);
|
|
135
165
|
ensureTitle(options.title);
|
|
136
|
-
|
|
166
|
+
normalizeTestAnnotations(options.annotations);
|
|
167
|
+
normalizeTestControls(options.controls);
|
|
137
168
|
const children = options.children.map(function validateChild(child) {
|
|
138
169
|
return toTestNode(child, owner, 'Root children must be engine-created TestNode values.', 'Root children must be created by the same engine instance.');
|
|
139
170
|
});
|
|
140
171
|
return {
|
|
141
172
|
[testRootBrand]: true,
|
|
173
|
+
[testNodeFamilyBrand]: null,
|
|
142
174
|
[testNodeOwnerBrand]: owner,
|
|
175
|
+
annotations: options.annotations,
|
|
143
176
|
children,
|
|
177
|
+
controls: options.controls,
|
|
144
178
|
kind: 'root',
|
|
145
|
-
metadata: options.metadata,
|
|
146
179
|
title: options.title
|
|
147
180
|
};
|
|
148
181
|
}
|
|
149
182
|
function createSuite(options) {
|
|
150
183
|
ensureTitleValue(options.title);
|
|
151
184
|
ensureTitle(options.title);
|
|
152
|
-
|
|
185
|
+
normalizeTestAnnotations(options.annotations);
|
|
186
|
+
normalizeTestControls(options.controls);
|
|
153
187
|
ensureDefinitionLocations(options.definitionLocations);
|
|
154
188
|
const children = options.children.map(function validateChild(child) {
|
|
155
189
|
return toTestNode(child, owner, 'Suite children must be engine-created TestNode values.', 'Suite children must be created by the same engine instance.');
|
|
156
190
|
});
|
|
157
191
|
const suite = {
|
|
158
192
|
[testNodeBrand]: true,
|
|
193
|
+
[testNodeFamilyBrand]: null,
|
|
159
194
|
[testNodeOwnerBrand]: owner,
|
|
195
|
+
annotations: options.annotations,
|
|
160
196
|
children,
|
|
197
|
+
controls: options.controls,
|
|
161
198
|
definitionLocations: options.definitionLocations,
|
|
162
199
|
kind: 'suite',
|
|
163
|
-
metadata: options.metadata,
|
|
164
200
|
title: options.title
|
|
165
201
|
};
|
|
166
202
|
recordConstructedNode(suite);
|
|
@@ -170,23 +206,27 @@ export function createTestNodeFactory(factoryOptions) {
|
|
|
170
206
|
for (const tableCase of cases) {
|
|
171
207
|
ensureTitleValue(tableCase.title);
|
|
172
208
|
ensureTitle(tableCase.title);
|
|
173
|
-
|
|
209
|
+
normalizeTestAnnotations(tableCase.annotations);
|
|
210
|
+
normalizeTestControls(tableCase.controls);
|
|
174
211
|
ensureTestBody(tableCase.body);
|
|
175
212
|
}
|
|
176
213
|
}
|
|
177
214
|
function createTable(options) {
|
|
178
215
|
ensureTitleValue(options.title);
|
|
179
216
|
ensureTitle(options.title);
|
|
180
|
-
|
|
217
|
+
normalizeTestAnnotations(options.annotations);
|
|
218
|
+
normalizeTestControls(options.controls);
|
|
181
219
|
ensureDefinitionLocations(options.definitionLocations);
|
|
182
220
|
ensureTableCases(options.cases);
|
|
183
221
|
const table = {
|
|
184
222
|
[testNodeBrand]: true,
|
|
223
|
+
[testNodeFamilyBrand]: null,
|
|
185
224
|
[testNodeOwnerBrand]: owner,
|
|
225
|
+
annotations: options.annotations,
|
|
186
226
|
cases: options.cases,
|
|
227
|
+
controls: options.controls,
|
|
187
228
|
definitionLocations: options.definitionLocations,
|
|
188
229
|
kind: 'table',
|
|
189
|
-
metadata: options.metadata,
|
|
190
230
|
title: options.title
|
|
191
231
|
};
|
|
192
232
|
recordConstructedNode(table);
|
package/engine/test-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-node.js","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"test-node.js","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"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"}
|
package/engine/test-plan.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NonEmptyReadonlyArray, SourceLocation } from '../assertion-protocol/assertion-node-shape.ts';
|
|
2
2
|
import { type CaseId } from './identity.ts';
|
|
3
|
-
import { type
|
|
3
|
+
import { type TestAnnotations, type TestAnnotationsInput, type TestControls, type TestControlsInput, type TestFamily } from './test-data.ts';
|
|
4
4
|
import type { OrphanedNode } from './run-result.ts';
|
|
5
5
|
import { type RootOptions, type TestBody, type TestCaseExecution, type TestNode, type TestNodeOwner, type TestRoot } from './test-node.ts';
|
|
6
6
|
export type TestPlanCaseBody = TestBody;
|
|
@@ -10,11 +10,13 @@ export type TestPlanSuitePathEntry = {
|
|
|
10
10
|
readonly title: string;
|
|
11
11
|
};
|
|
12
12
|
export type TestPlanCase = {
|
|
13
|
+
readonly annotations: TestAnnotations;
|
|
14
|
+
readonly controls: TestControls;
|
|
13
15
|
readonly definitionLocations: NonEmptyReadonlyArray<SourceLocation>;
|
|
14
16
|
readonly execution: TestPlanCaseExecution;
|
|
15
17
|
readonly id: CaseId;
|
|
16
|
-
readonly metadata: ResolvedMetadata;
|
|
17
18
|
readonly suitePath: readonly TestPlanSuitePathEntry[];
|
|
19
|
+
readonly testFamily: TestFamily | null;
|
|
18
20
|
};
|
|
19
21
|
export type TestPlan = {
|
|
20
22
|
readonly defined: number;
|
|
@@ -24,12 +26,14 @@ export type TestPlan = {
|
|
|
24
26
|
readonly root: TestPlanRoot;
|
|
25
27
|
};
|
|
26
28
|
type TestPlanRoot = {
|
|
27
|
-
readonly
|
|
29
|
+
readonly annotations: TestAnnotations;
|
|
30
|
+
readonly controls: TestControls;
|
|
28
31
|
readonly title: string;
|
|
29
32
|
};
|
|
30
33
|
export type TestPlanFactory = (root: TestRoot) => TestPlan;
|
|
31
34
|
type TestPlanRootOptions = {
|
|
32
|
-
readonly
|
|
35
|
+
readonly annotations: TestAnnotationsInput;
|
|
36
|
+
readonly controls: TestControlsInput;
|
|
33
37
|
readonly title: string;
|
|
34
38
|
};
|
|
35
39
|
export type TestPlanFromTestFilesOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-plan.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE3G,OAAO,EAA+C,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,
|
|
1
|
+
{"version":3,"file":"test-plan.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE3G,OAAO,EAA+C,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAKH,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAIH,KAAK,WAAW,EAIhB,KAAK,QAAQ,EAEb,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACxC,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEtD,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACpE,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAE3D,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;QAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,EAAE,4BAA4B,KAAK,QAAQ,CAAC;AAmQ/F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,eAAe,CA4BpH;AAgCD,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ,GAC/C,4BAA4B,CAqC9B"}
|
package/engine/test-plan.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { serializeValue } from "../compare/serialized-value.js";
|
|
2
2
|
import { caseIdentityKey, createCaseId, formatCaseId } from "./identity.js";
|
|
3
|
-
import {
|
|
4
|
-
import { ensureOwnedTestRoot, isOwnedTestNode } from "./test-node.js";
|
|
3
|
+
import { resolveRootTestAnnotations, resolveRootTestControls, resolveTestAnnotations, resolveTestControls } from "./test-data.js";
|
|
4
|
+
import { ensureOwnedTestRoot, isOwnedTestNode, testNodeFamily } from "./test-node.js";
|
|
5
5
|
const minimumTableCaseCount = 2;
|
|
6
6
|
function parameterIdentity(parameters) {
|
|
7
7
|
return JSON.stringify(serializeValue(parameters));
|
|
@@ -28,15 +28,18 @@ function isRecord(value) {
|
|
|
28
28
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
29
29
|
}
|
|
30
30
|
function collectTestCase(testCase, context) {
|
|
31
|
-
const
|
|
31
|
+
const annotations = resolveTestAnnotations(context.annotations, testCase.annotations);
|
|
32
|
+
const controls = resolveTestControls(context.controls, testCase.controls);
|
|
32
33
|
return {
|
|
33
34
|
cases: [
|
|
34
35
|
{
|
|
36
|
+
annotations,
|
|
37
|
+
controls,
|
|
35
38
|
definitionLocations: testCase.definitionLocations,
|
|
36
39
|
execution: testCase.execution,
|
|
37
40
|
id: createCaseId(context.file, suiteTitles(context.suitePath), testCase.title, null),
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
suitePath: context.suitePath,
|
|
42
|
+
testFamily: testNodeFamily(testCase)
|
|
40
43
|
}
|
|
41
44
|
],
|
|
42
45
|
reachedNodes: [testCase]
|
|
@@ -51,16 +54,20 @@ function collectTable(table, context) {
|
|
|
51
54
|
...context.suitePath,
|
|
52
55
|
{ definitionLocations: table.definitionLocations, title: table.title }
|
|
53
56
|
];
|
|
54
|
-
const
|
|
57
|
+
const tableAnnotations = resolveTestAnnotations(context.annotations, table.annotations);
|
|
58
|
+
const tableControls = resolveTestControls(context.controls, table.controls);
|
|
55
59
|
return {
|
|
56
60
|
cases: table.cases.map(function collectTableCase(tableCase) {
|
|
57
|
-
const
|
|
61
|
+
const annotations = resolveTestAnnotations(tableAnnotations, tableCase.annotations);
|
|
62
|
+
const controls = resolveTestControls(tableControls, tableCase.controls);
|
|
58
63
|
return {
|
|
64
|
+
annotations,
|
|
65
|
+
controls,
|
|
59
66
|
definitionLocations: table.definitionLocations,
|
|
60
67
|
execution: { body: tableCase.body, kind: 'body' },
|
|
61
68
|
id: createCaseId(context.file, suiteTitles(tablePath), tableCase.title, parameterIdentity(tableCase.parameters)),
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
suitePath: tablePath,
|
|
70
|
+
testFamily: testNodeFamily(table)
|
|
64
71
|
};
|
|
65
72
|
}),
|
|
66
73
|
reachedNodes: [table]
|
|
@@ -68,8 +75,9 @@ function collectTable(table, context) {
|
|
|
68
75
|
}
|
|
69
76
|
function childCollectionContext(suite, context) {
|
|
70
77
|
return {
|
|
78
|
+
annotations: resolveTestAnnotations(context.annotations, suite.annotations),
|
|
79
|
+
controls: resolveTestControls(context.controls, suite.controls),
|
|
71
80
|
file: context.file,
|
|
72
|
-
metadata: resolveMetadata(context.metadata, suite.metadata),
|
|
73
81
|
suitePath: [
|
|
74
82
|
...context.suitePath,
|
|
75
83
|
{ definitionLocations: suite.definitionLocations, title: suite.title }
|
|
@@ -106,28 +114,30 @@ function collectNode(node, context) {
|
|
|
106
114
|
reachedNodes: [node, ...children.reachedNodes]
|
|
107
115
|
};
|
|
108
116
|
}
|
|
109
|
-
function collectRoot(root,
|
|
117
|
+
function collectRoot(root, rootAnnotations, rootControls) {
|
|
110
118
|
if (root.children.length === 0) {
|
|
111
119
|
throw new TypeError(`Root must contain at least one child: ${root.title}.`);
|
|
112
120
|
}
|
|
113
121
|
assertUniqueSiblingTitles(root.children, [root.title]);
|
|
114
122
|
return mergeCollectedTestCases(root.children.map(function collectChild(child) {
|
|
115
123
|
return collectNode(child, {
|
|
124
|
+
annotations: rootAnnotations,
|
|
125
|
+
controls: rootControls,
|
|
116
126
|
file: null,
|
|
117
|
-
metadata: rootMetadata,
|
|
118
127
|
suitePath: []
|
|
119
128
|
});
|
|
120
129
|
}));
|
|
121
130
|
}
|
|
122
|
-
function collectTestFiles(root, files,
|
|
131
|
+
function collectTestFiles(root, files, rootAnnotations, rootControls) {
|
|
123
132
|
return mergeCollectedTestCases(root.children.map(function collectChild(child, index) {
|
|
124
133
|
const file = files[index];
|
|
125
134
|
if (file === undefined) {
|
|
126
135
|
throw new TypeError('Every test file must map to one root child.');
|
|
127
136
|
}
|
|
128
137
|
return collectNode(child, {
|
|
138
|
+
annotations: rootAnnotations,
|
|
139
|
+
controls: rootControls,
|
|
129
140
|
file: file.file,
|
|
130
|
-
metadata: rootMetadata,
|
|
131
141
|
suitePath: []
|
|
132
142
|
});
|
|
133
143
|
}));
|
|
@@ -170,8 +180,9 @@ function assertNonEmptyCases(cases) {
|
|
|
170
180
|
export function createTestPlanFactory(owner, constructedNodes) {
|
|
171
181
|
return function createTestPlan(root) {
|
|
172
182
|
ensureOwnedTestRoot(root, owner, 'Test plan root must be an engine-created TestRoot value.', 'Test plan root must be created by the same engine instance.');
|
|
173
|
-
const
|
|
174
|
-
const
|
|
183
|
+
const rootAnnotations = resolveRootTestAnnotations(root.annotations);
|
|
184
|
+
const rootControls = resolveRootTestControls(root.controls);
|
|
185
|
+
const collection = collectRoot(root, rootAnnotations, rootControls);
|
|
175
186
|
const { cases: discoveredCases, reachedNodes } = collection;
|
|
176
187
|
assertNonEmptyCases(discoveredCases);
|
|
177
188
|
assertUniqueCaseIds(discoveredCases);
|
|
@@ -181,7 +192,8 @@ export function createTestPlanFactory(owner, constructedNodes) {
|
|
|
181
192
|
discoveredCases,
|
|
182
193
|
orphans: collectOrphans(constructedNodes, reachedNodes),
|
|
183
194
|
root: {
|
|
184
|
-
|
|
195
|
+
annotations: rootAnnotations,
|
|
196
|
+
controls: rootControls,
|
|
185
197
|
title: root.title
|
|
186
198
|
}
|
|
187
199
|
};
|
|
@@ -216,14 +228,16 @@ export function createTestPlanFromTestFilesFactory(owner, createRoot) {
|
|
|
216
228
|
ensureFileBackedNodeInput(file, owner);
|
|
217
229
|
}
|
|
218
230
|
const root = createRoot({
|
|
231
|
+
annotations: options.root.annotations,
|
|
219
232
|
children: options.files.map(function toTestNode(file) {
|
|
220
233
|
return file.testNode;
|
|
221
234
|
}),
|
|
222
|
-
|
|
235
|
+
controls: options.root.controls,
|
|
223
236
|
title: options.root.title
|
|
224
237
|
});
|
|
225
|
-
const
|
|
226
|
-
const
|
|
238
|
+
const rootAnnotations = resolveRootTestAnnotations(root.annotations);
|
|
239
|
+
const rootControls = resolveRootTestControls(root.controls);
|
|
240
|
+
const { cases: discoveredCases, reachedNodes } = collectTestFiles(root, options.files, rootAnnotations, rootControls);
|
|
227
241
|
assertNonEmptyCases(discoveredCases);
|
|
228
242
|
assertUniqueCaseIds(discoveredCases);
|
|
229
243
|
return {
|
|
@@ -232,7 +246,8 @@ export function createTestPlanFromTestFilesFactory(owner, createRoot) {
|
|
|
232
246
|
discoveredCases,
|
|
233
247
|
orphans: [],
|
|
234
248
|
root: {
|
|
235
|
-
|
|
249
|
+
annotations: rootAnnotations,
|
|
250
|
+
controls: rootControls,
|
|
236
251
|
title: root.title
|
|
237
252
|
}
|
|
238
253
|
};
|
package/engine/test-plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-plan.js","sourceRoot":"","sources":["../../../../source/engine/test-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AACzF,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"test-plan.js","sourceRoot":"","sources":["../../../../source/engine/test-plan.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"ansi-escapes": "7.3.0",
|
|
10
10
|
"diff": "9.0.0",
|
|
11
11
|
"figures": "6.1.0",
|
|
12
|
+
"pure-rand": "8.4.2",
|
|
12
13
|
"string-width": "8.2.2",
|
|
13
14
|
"yoctocolors": "2.2.0",
|
|
14
15
|
"zod": "4.5.4"
|
|
@@ -51,10 +52,10 @@
|
|
|
51
52
|
"./assertion-protocol/assertion-reference.js",
|
|
52
53
|
"./assertion-protocol/source-location-forwarding.js",
|
|
53
54
|
"./engine/execution.js",
|
|
54
|
-
"./engine/metadata.js",
|
|
55
55
|
"./engine/reporter-error-delivery-tracking.js",
|
|
56
56
|
"./engine/reporter-output.js",
|
|
57
57
|
"./engine/reporter.js",
|
|
58
|
+
"./engine/test-data.js",
|
|
58
59
|
"./engine/test-node.js",
|
|
59
60
|
"./packages/engine/engine.entry-point.js",
|
|
60
61
|
"./reporters/line-reporter.js",
|
|
@@ -77,5 +78,5 @@
|
|
|
77
78
|
"./run/supervised-run-state.js"
|
|
78
79
|
],
|
|
79
80
|
"type": "module",
|
|
80
|
-
"version": "0.0.
|
|
81
|
+
"version": "0.0.36"
|
|
81
82
|
}
|
|
@@ -61,4 +61,5 @@ export { createPlainOutputRenderer, defineOutputRenderer, isOutputRenderer } fro
|
|
|
61
61
|
export { defaultSerializationBudget, serializeValue, serializeValueWithBudget } from "../../compare/serialized-value.js";
|
|
62
62
|
export { captureSourceLocation, unknownSourceLocation } from "../../assertion-protocol/source-location.js";
|
|
63
63
|
export { forwardAssertionSourceLocations } from "../../assertion-protocol/source-location-forwarding.js";
|
|
64
|
+
export { stampTestNodeFamily, testNodeFamily } from "../../engine/test-node.js";
|
|
64
65
|
//# sourceMappingURL=engine.entry-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/engine/engine.entry-point.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/engine/engine.entry-point.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { all, any, caseId, contains, equals, file, glob, not, owner, params,
|
|
1
|
+
export { all, any, caseId, contains, equals, file, glob, not, owner, params, suite, tag, title } from '../../run/run-selection-filters.ts';
|
|
2
2
|
export { parseRunFilterExpression } from '../../run/run-filter-grammar.ts';
|
|
3
3
|
export type { RunFilter, RunSelection, RunStringFilterField } from '../../run/run-types.ts';
|
|
4
4
|
//# sourceMappingURL=filters.entry-point.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/filters.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"filters.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/filters.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,KAAK,EACL,GAAG,EACH,KAAK,EACR,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACH,wBAAwB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACR,SAAS,EACT,YAAY,EACZ,oBAAoB,EACvB,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { all, any, caseId, contains, equals, file, glob, not, owner, params,
|
|
1
|
+
export { all, any, caseId, contains, equals, file, glob, not, owner, params, suite, tag, title } from "../../run/run-selection-filters.js";
|
|
2
2
|
export { parseRunFilterExpression } from "../../run/run-filter-grammar.js";
|
|
3
3
|
//# sourceMappingURL=filters.entry-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/filters.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"filters.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/filters.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,KAAK,EACL,GAAG,EACH,KAAK,EACR,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACH,wBAAwB,EAC3B,MAAM,iCAAiC,CAAC"}
|
|
@@ -6,5 +6,5 @@ export type { LoadedRunConfig, RunConfigLoadRequest, RunProjectConfig, RunProjec
|
|
|
6
6
|
export type { RunIfMain } from '../../run/run-if-main.ts';
|
|
7
7
|
export type { RunIfMainOptions, RunIfMainRootOptions } from '../../run/run-if-main-options.ts';
|
|
8
8
|
export type { RunResolutionErrorCode } from '../../run/run-errors.ts';
|
|
9
|
-
export type { CollectedRunCase, CollectedRunFile, CollectedRunPlan, ResolvedRun, ResolvedRunPlan, RunCaseFacts, RunCommand, RunConfig, RunDebugRequest, RunEngineFacts, RunEngineSelection, RunEnvironmentFacts, RunExecutionRequest, RunFacts, RunFilter, RunExecutionFacts, RunIntegrationExecution, RunIntegrationProfileConfig, RunLoaderConfig, RunMicrotestExecution, RunMicrotestProfileConfig, RunOrchestrator, RunProcessModel, RunProfileConfig, RunProfileFiles, RunProfilesConfig, RunResourceBudgets, RunResourceUsagePolicy, RunReproducibilityFacts, RunRequest, RunScheduling, RunSeed, RunSelection, RunShard, RunStringFilterField, RunTestFamily, RunTimeoutPolicy, SerializedValue } from '../../run/run-types.ts';
|
|
9
|
+
export type { CollectedRunCase, CollectedRunFile, CollectedRunPlan, ResolvedRun, ResolvedRunPlan, RunCaseFacts, RunCommand, RunConfig, RunDebugRequest, RunEngineFacts, RunEngineSelection, RunEnvironmentFacts, RunExecutionRequest, RunFacts, RunFilter, RunExecutionFacts, RunIntegrationExecution, RunIntegrationProfileConfig, RunLoaderConfig, RunMicrotestExecution, RunMicrotestProfileConfig, RunOrder, RunOrchestrator, RunProcessModel, RunProfileConfig, RunProfileFiles, RunProfilesConfig, RunResourceBudgets, RunResourceUsagePolicy, RunReproducibilityFacts, RunRequest, RunScheduling, RunSeed, RunSelection, RunShard, RunStringFilterField, RunTestFamily, RunTimeoutPolicy, SerializedValue } from '../../run/run-types.ts';
|
|
10
10
|
//# sourceMappingURL=run.entry-point.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EACH,YAAY,EACZ,aAAa,EACb,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EACR,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,8BAA8B,EAC9B,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,iCAAiC,EACpC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACvB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,YAAY,EACR,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,eAAe,EAClB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"run.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EACH,YAAY,EACZ,aAAa,EACb,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EACR,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,8BAA8B,EAC9B,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,iCAAiC,EACpC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACvB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,YAAY,EACR,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,eAAe,EAClB,MAAM,wBAAwB,CAAC"}
|
package/readme.md
CHANGED
|
@@ -66,8 +66,6 @@ Programmatic selection helpers are exposed through `@overkill-dev/run/filters`:
|
|
|
66
66
|
- `owner(value)`
|
|
67
67
|
- `params(value)`
|
|
68
68
|
- `parseRunFilterExpression(expression)`
|
|
69
|
-
- `runtime(value)`
|
|
70
|
-
- `stability(value)`
|
|
71
69
|
- `suite(value)`
|
|
72
70
|
- `tag(value)`
|
|
73
71
|
- `title(value)`
|
|
@@ -80,7 +78,7 @@ non-overlapping. Explicit files bypass top-level discovery, but when the
|
|
|
80
78
|
selected profile uses `sets`, each explicit file must match exactly one set.
|
|
81
79
|
Each discovered or explicit file is imported as a native Node ESM module and
|
|
82
80
|
must export a named `testNode` value created by the selected engine.
|
|
83
|
-
Attach broad module
|
|
81
|
+
Attach broad module annotations to that exported top-level node.
|
|
84
82
|
`commandLineRunner.listTests(...)` resolves those modules and prints a plain
|
|
85
83
|
plan tree without executing tests or loading fallback reporters.
|
|
86
84
|
`RunCommand.engine` may be `{ kind: 'default' }` to use the shared public engine,
|
|
@@ -91,12 +89,15 @@ child process to load the engine without parent-side user-module execution.
|
|
|
91
89
|
|
|
92
90
|
Programmatic selection filters are supported through `RunRequest.selection`.
|
|
93
91
|
The current helpers select by stable case id, file, title, suite, table params,
|
|
94
|
-
tag,
|
|
95
|
-
|
|
92
|
+
tag, and ownership. Test family matching is intentionally absent because one
|
|
93
|
+
run is already bound to one profile test family.
|
|
96
94
|
`parseRunFilterExpression(expression)` parses the CLI filter grammar into the
|
|
97
|
-
same `RunFilter` tree.
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
same `RunFilter` tree. Runs use seeded ordering by default. Pass
|
|
96
|
+
`RunRequest.order: 'lexical'` for deterministic source-stable order, or
|
|
97
|
+
`RunRequest.order: 'plan'` for programmatic callers that need an already
|
|
98
|
+
materialized order. Sharding, records, replay, and `--last-failed` are
|
|
99
|
+
separate runner milestones. Direct prebuilt `TestPlan` execution belongs to
|
|
100
|
+
`@overkill-dev/engine` through `execute(testPlan)`.
|
|
100
101
|
The command methods other than `runTests` and `listTests` are fixed first-party
|
|
101
102
|
entrypoints and currently return argument errors until their command
|
|
102
103
|
implementations land.
|
|
@@ -109,10 +110,11 @@ individual thresholds for one run. The `@overkill-dev/test` binary parses
|
|
|
109
110
|
`--measure-resource-usage` and `--resource-budget <name=value>` into those
|
|
110
111
|
typed request fields.
|
|
111
112
|
|
|
112
|
-
Output capture is run-level intent. `RunRequest.capture` is
|
|
113
|
-
default; `live` passes capture-capable stdout and stderr through
|
|
114
|
-
creating `log-capture` artifacts.
|
|
115
|
-
|
|
113
|
+
Output capture is run-level intent by default. `RunRequest.capture` is
|
|
114
|
+
`buffered` by default; `live` passes capture-capable stdout and stderr through
|
|
115
|
+
without creating `log-capture` artifacts. Non-microtest test controls may
|
|
116
|
+
override capture per test. Microtest profiles reject live capture and per-test
|
|
117
|
+
capture controls. There is no project config field for capture mode.
|
|
116
118
|
|
|
117
119
|
Runner profile names are project-owned. Names such as `microtest`,
|
|
118
120
|
`backend-http`, `ui-browser`, `ui.browser`, and `unit_fast` select profile
|
|
@@ -120,8 +122,8 @@ entries exactly. Behavior comes from the selected profile config, not from the
|
|
|
120
122
|
name. Profile names must be non-empty and contain only letters, numbers, dots,
|
|
121
123
|
underscores, and hyphens. The exact lowercase name `benchmark` is reserved for
|
|
122
124
|
benchmark commands. Every configured runner profile must declare
|
|
123
|
-
`testFamily: 'microtest'
|
|
124
|
-
`RunFacts.execution.testFamily`.
|
|
125
|
+
`testFamily: 'microtest'` or `testFamily: 'integration'`; the selected
|
|
126
|
+
profile's test family is recorded in `RunFacts.execution.testFamily`.
|
|
125
127
|
|
|
126
128
|
Configured microtest profiles may set `files.include` and `files.exclude`.
|
|
127
129
|
`include` is required when `files` is present; `exclude` defaults to `[]`.
|
|
@@ -130,6 +132,12 @@ Explicit file paths bypass the files policy. Directory paths require a files
|
|
|
130
132
|
policy, filter the profile-discovered file set, and cannot be mixed with file
|
|
131
133
|
paths.
|
|
132
134
|
|
|
135
|
+
Configured integration profiles require a `files` policy and currently run
|
|
136
|
+
through `execution.processModel: 'supervised-process'` with `serial` or
|
|
137
|
+
`concurrent` scheduling. Integration tests are not governed by
|
|
138
|
+
`RunRequest.capabilityRestrictions`; that request field is part of the
|
|
139
|
+
microtest runtime model only.
|
|
140
|
+
|
|
133
141
|
Microtest profile execution is modeled with two independent fields:
|
|
134
142
|
`execution.processModel` is `in-process` or `supervised-process`, and
|
|
135
143
|
`execution.scheduling` is `concurrent` or `serial`. The default `microtest`
|