@overkill-dev/run 0.0.35 → 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 +2 -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/readme.md +16 -11
- package/run/collected-run-plan.js +10 -4
- package/run/collected-run-plan.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-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 +3 -2
- 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-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 +7 -9
- 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 +7 -5
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run.js +3 -3
- package/run/run.js.map +1 -1
- package/run/supervised-run-runtime.js +2 -2
- package/run/supervised-run-runtime.js.map +1 -1
- package/sbom.cdx.json +4 -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":"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"}
|
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":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AACzF,OAAO,EACH,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EAMtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,cAAc,EAWjB,MAAM,gBAAgB,CAAC;AAqExB,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,SAAS,iBAAiB,CAAC,UAAmC;IAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,WAAW,CAAC,SAA4C;IAC7D,OAAO,SAAS,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,KAAK;QACvC,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,IAAuB;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjE,OAAO,mCAAmC,QAAQ,KAAK,KAAK,GAAG,CAAC;AACpE,CAAC;AAED,SAAS,yBAAyB,CAAC,KAA4B,EAAE,IAAuB;IACpF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,eAAe,CACpB,QAAkB,EAClB,OAA0B;IAE1B,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE1E,OAAO;QACH,KAAK,EAAE;YACH;gBACI,WAAW;gBACX,QAAQ;gBACR,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;gBACjD,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;gBACpF,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC;aACvC;SACJ;QACD,YAAY,EAAE,CAAE,QAAQ,CAAE;KAC7B,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CACjB,KAAY,EACZ,OAA0B;IAE1B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CACf,0CAA0C,CAAE,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAC9G,CAAC;IACN,CAAC;IAED,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC;IAE3F,MAAM,SAAS,GAAG;QACd,GAAG,OAAO,CAAC,SAAS;QACpB,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;KACzE,CAAC;IACF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACxF,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE5E,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,gBAAgB,CAAC,SAAS;YACtD,MAAM,WAAW,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YACpF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YAExE,OAAO;gBACH,WAAW;gBACX,QAAQ;gBACR,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBACjD,EAAE,EAAE,YAAY,CACZ,OAAO,CAAC,IAAI,EACZ,WAAW,CAAC,SAAS,CAAC,EACtB,SAAS,CAAC,KAAK,EACf,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,CAC1C;gBACD,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC;aACpC,CAAC;QACN,CAAC,CAAC;QACF,YAAY,EAAE,CAAE,KAAK,CAAE;KAC1B,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAY,EAAE,OAA0B;IACpE,OAAO;QACH,WAAW,EAAE,sBAAsB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;QAC3E,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC/D,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS,EAAE;YACP,GAAG,OAAO,CAAC,SAAS;YACpB,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;SACzE;KACJ,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,WAA0C;IACvE,OAAO;QACH,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,YAAY,CAAC,UAAU;YACvD,OAAO,UAAU,CAAC,KAAK,CAAC;QAC5B,CAAC,CAAC;QACF,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,mBAAmB,CAAC,UAAU;YACrE,OAAO,UAAU,CAAC,YAAY,CAAC;QACnC,CAAC,CAAC;KACL,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAChB,IAAc,EACd,OAA0B;IAE1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CACf,0CAA0C,CAAE,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAC7G,CAAC;IACN,CAAC;IAED,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAE,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC;IAE5F,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,KAAK;QAClF,OAAO,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO;QACH,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,YAAY,EAAE,CAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAE;KACnD,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,IAAc,EAAE,eAAgC,EAAE,YAA0B;IAC7F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,yCAAyC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC;IAEzD,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,KAAK;QACxE,OAAO,WAAW,CAAC,KAAK,EAAE;YACtB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,EAAE;SAChB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,gBAAgB,CACrB,IAAc,EACd,KAAqD,EACrD,eAAgC,EAChC,YAA0B;IAE1B,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,KAAK,EAAE,KAAK;QAC/E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,EAAE;YACtB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,EAAE;SAChB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAiC;IACvD,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAc;IACtC,OAAO;QACH,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;KACpB,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CACnB,gBAAuC,EACvC,YAAiC;IAEjC,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAEtD,OAAO,KAAK;SACP,IAAI,CAAC,gBAAgB,CAAC;SACtB,MAAM,CAAC,SAAS,QAAQ,CAAC,IAAI;QAC1B,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;SACD,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA8B;IACvD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,SAAS,CAAC,iCAAiC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACvF,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA8B;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;IACrF,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAoB,EAAE,gBAAuC;IAC/F,OAAO,SAAS,cAAc,CAAC,IAAc;QACzC,mBAAmB,CACf,IAAI,EACJ,KAAK,EACL,0DAA0D,EAC1D,6DAA6D,CAChE,CAAC;QAEF,MAAM,eAAe,GAAG,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QACpE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QAC5D,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACrC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAErC,OAAO;YACH,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,gBAAgB,CAAC,IAAI;YAC9B,eAAe;YACf,OAAO,EAAE,cAAc,CAAC,gBAAgB,EAAE,YAAY,CAAC;YACvD,IAAI,EAAE;gBACF,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB;SACJ,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAuC;IAC5E,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,0BAA0B,CAAC,KAAK;QACjF,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,4BAA4B,YAAY,GAAG,CAAC,CAAC;IACrE,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAa,EAAE,KAAoB;IAClE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC9D,CAAC;IAED,+BAA+B,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;IAC7F,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAiC;IACxD,OAAO,YAAY,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,kCAAkC,CAC9C,KAAoB,EACpB,UAA8C;IAE9C,OAAO,SAAS,2BAA2B,CAAC,OAAO;QAC/C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC;YACpB,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;YACrC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,IAAI;gBAChD,OAAO,IAAI,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC;YACF,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;YAC/B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;SAC5B,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAC7D,IAAI,EACJ,OAAO,CAAC,KAAK,EACb,eAAe,EACf,YAAY,CACf,CAAC;QACF,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACrC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAErC,OAAO;YACH,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,iBAAiB,CAAC,YAAY,CAAC;YACxC,eAAe;YACf,OAAO,EAAE,EAAE;YACX,IAAI,EAAE;gBACF,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB;SACJ,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"./assertion-protocol/assertion-reference.js",
|
|
53
53
|
"./assertion-protocol/source-location-forwarding.js",
|
|
54
54
|
"./engine/execution.js",
|
|
55
|
-
"./engine/metadata.js",
|
|
56
55
|
"./engine/reporter-error-delivery-tracking.js",
|
|
57
56
|
"./engine/reporter-output.js",
|
|
58
57
|
"./engine/reporter.js",
|
|
58
|
+
"./engine/test-data.js",
|
|
59
59
|
"./engine/test-node.js",
|
|
60
60
|
"./packages/engine/engine.entry-point.js",
|
|
61
61
|
"./reporters/line-reporter.js",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"./run/supervised-run-state.js"
|
|
79
79
|
],
|
|
80
80
|
"type": "module",
|
|
81
|
-
"version": "0.0.
|
|
81
|
+
"version": "0.0.36"
|
|
82
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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACH,YAAY,IAAI,oBAAoB,EACpC,qBAAqB,EAGxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EACH,oBAAoB,EAQvB,MAAM,2BAA2B,CAAC;AAEnC,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,wBAAwB;IAC7B,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IAEpC,OAAO;QACH,OAAO,EAAE,aAAa,CAAC;YACnB,kBAAkB,EAAE,wBAAwB,CAAC;gBACzC,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;gBACtC,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;gBACtC,SAAS;aACZ,CAAC;YACF,SAAS;SACZ,CAAC;QACF,SAAS;KACZ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY;IACxB,OAAO,oBAAoB,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,wBAAwB,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAEhG,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC3C,OAAO,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAqB;IAC7C,OAAO,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA+B;IACjE,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAqB;IAC7C,OAAO,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAwB;IACnD,OAAO,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAc;IACzC,OAAO,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACvC,OAA6D;IAE7D,OAAO,aAAa,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,QAA0C,EAC1C,OAA0C;IAE1C,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,OAAO,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAQD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAoBxD,OAAO,EACH,8BAA8B,EAC9B,yBAAyB,EACzB,oBAAoB,EACpB,4BAA4B,EAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,cAAc,EACd,UAAU,EACV,yBAAyB,EACzB,qBAAqB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EACnB,MAAM,iCAAiC,CAAC;AAwCzC,OAAO,EACH,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EAC3B,MAAM,mCAAmC,CAAC;AAS3C,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC"}
|
|
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"}
|
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,8 +89,8 @@ 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
95
|
same `RunFilter` tree. Runs use seeded ordering by default. Pass
|
|
98
96
|
`RunRequest.order: 'lexical'` for deterministic source-stable order, or
|
|
@@ -112,10 +110,11 @@ individual thresholds for one run. The `@overkill-dev/test` binary parses
|
|
|
112
110
|
`--measure-resource-usage` and `--resource-budget <name=value>` into those
|
|
113
111
|
typed request fields.
|
|
114
112
|
|
|
115
|
-
Output capture is run-level intent. `RunRequest.capture` is
|
|
116
|
-
default; `live` passes capture-capable stdout and stderr through
|
|
117
|
-
creating `log-capture` artifacts.
|
|
118
|
-
|
|
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.
|
|
119
118
|
|
|
120
119
|
Runner profile names are project-owned. Names such as `microtest`,
|
|
121
120
|
`backend-http`, `ui-browser`, `ui.browser`, and `unit_fast` select profile
|
|
@@ -123,8 +122,8 @@ entries exactly. Behavior comes from the selected profile config, not from the
|
|
|
123
122
|
name. Profile names must be non-empty and contain only letters, numbers, dots,
|
|
124
123
|
underscores, and hyphens. The exact lowercase name `benchmark` is reserved for
|
|
125
124
|
benchmark commands. Every configured runner profile must declare
|
|
126
|
-
`testFamily: 'microtest'
|
|
127
|
-
`RunFacts.execution.testFamily`.
|
|
125
|
+
`testFamily: 'microtest'` or `testFamily: 'integration'`; the selected
|
|
126
|
+
profile's test family is recorded in `RunFacts.execution.testFamily`.
|
|
128
127
|
|
|
129
128
|
Configured microtest profiles may set `files.include` and `files.exclude`.
|
|
130
129
|
`include` is required when `files` is present; `exclude` defaults to `[]`.
|
|
@@ -133,6 +132,12 @@ Explicit file paths bypass the files policy. Directory paths require a files
|
|
|
133
132
|
policy, filter the profile-discovered file set, and cannot be mixed with file
|
|
134
133
|
paths.
|
|
135
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
|
+
|
|
136
141
|
Microtest profile execution is modeled with two independent fields:
|
|
137
142
|
`execution.processModel` is `in-process` or `supervised-process`, and
|
|
138
143
|
`execution.scheduling` is `concurrent` or `serial`. The default `microtest`
|
|
@@ -83,10 +83,12 @@ function collectRunPlanFile(file, cases) {
|
|
|
83
83
|
return {
|
|
84
84
|
cases: cases.map(function collectCase(testCase) {
|
|
85
85
|
return {
|
|
86
|
+
annotations: testCase.annotations,
|
|
87
|
+
controls: testCase.controls,
|
|
86
88
|
definitionLocations: testCase.definitionLocations,
|
|
87
|
-
metadata: testCase.metadata,
|
|
88
89
|
params: testCase.id.params,
|
|
89
90
|
suitePath: testCase.suitePath,
|
|
91
|
+
testFamily: testCase.testFamily,
|
|
90
92
|
title: testCase.id.title
|
|
91
93
|
};
|
|
92
94
|
}),
|
|
@@ -110,7 +112,8 @@ export function collectedRunPlanFromTestPlanCases(testPlan, cases) {
|
|
|
110
112
|
files: collectedRunFilesFromCases(cases),
|
|
111
113
|
orphans: testPlan.orphans,
|
|
112
114
|
root: {
|
|
113
|
-
|
|
115
|
+
annotations: testPlan.root.annotations,
|
|
116
|
+
controls: testPlan.root.controls,
|
|
114
117
|
title: testPlan.root.title
|
|
115
118
|
}
|
|
116
119
|
};
|
|
@@ -123,6 +126,8 @@ export function collectedRunCaseEntries(plan) {
|
|
|
123
126
|
const id = collectedCaseId(collectedCase.file, collectedCase.testCase);
|
|
124
127
|
return {
|
|
125
128
|
...collectedCase,
|
|
129
|
+
annotations: serializeValue(collectedCase.testCase.annotations),
|
|
130
|
+
controls: serializeValue(collectedCase.testCase.controls),
|
|
126
131
|
id
|
|
127
132
|
};
|
|
128
133
|
});
|
|
@@ -130,9 +135,10 @@ export function collectedRunCaseEntries(plan) {
|
|
|
130
135
|
export function collectedRunCaseFactsFromEntries(cases, fileSetForCase) {
|
|
131
136
|
return cases.map(function toRunCaseFacts(collectedCase) {
|
|
132
137
|
return {
|
|
138
|
+
annotations: serializeValue(collectedCase.testCase.annotations),
|
|
139
|
+
controls: serializeValue(collectedCase.testCase.controls),
|
|
133
140
|
fileSet: fileSetForCase(collectedCase.id.file),
|
|
134
|
-
id: collectedCase.id
|
|
135
|
-
metadata: serializeValue(collectedCase.testCase.metadata)
|
|
141
|
+
id: collectedCase.id
|
|
136
142
|
};
|
|
137
143
|
});
|
|
138
144
|
}
|