@overkill-dev/engine 0.0.28 → 0.0.30

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 (46) hide show
  1. package/assertion-protocol/source-location.d.ts.map +1 -1
  2. package/assertion-protocol/source-location.js +2 -0
  3. package/assertion-protocol/source-location.js.map +1 -1
  4. package/engine/case-execution.d.ts +1 -1
  5. package/engine/case-execution.d.ts.map +1 -1
  6. package/engine/case-execution.js +19 -5
  7. package/engine/case-execution.js.map +1 -1
  8. package/engine/engine.d.ts +2 -1
  9. package/engine/engine.d.ts.map +1 -1
  10. package/engine/engine.js +1 -0
  11. package/engine/engine.js.map +1 -1
  12. package/engine/execution-supervision.d.ts.map +1 -1
  13. package/engine/execution-supervision.js +11 -8
  14. package/engine/execution-supervision.js.map +1 -1
  15. package/engine/execution.d.ts.map +1 -1
  16. package/engine/execution.js +2 -0
  17. package/engine/execution.js.map +1 -1
  18. package/engine/reporter.d.ts +4 -3
  19. package/engine/reporter.d.ts.map +1 -1
  20. package/engine/reporter.js.map +1 -1
  21. package/engine/run-result.d.ts +28 -2
  22. package/engine/run-result.d.ts.map +1 -1
  23. package/engine/run-result.js.map +1 -1
  24. package/engine/test-data.d.ts +27 -0
  25. package/engine/test-data.d.ts.map +1 -0
  26. package/engine/test-data.js +113 -0
  27. package/engine/test-data.js.map +1 -0
  28. package/engine/test-node.d.ts +46 -12
  29. package/engine/test-node.d.ts.map +1 -1
  30. package/engine/test-node.js +83 -11
  31. package/engine/test-node.js.map +1 -1
  32. package/engine/test-plan.d.ts +11 -6
  33. package/engine/test-plan.d.ts.map +1 -1
  34. package/engine/test-plan.js +38 -23
  35. package/engine/test-plan.js.map +1 -1
  36. package/package.json +2 -2
  37. package/packages/engine/engine.entry-point.d.ts +7 -5
  38. package/packages/engine/engine.entry-point.d.ts.map +1 -1
  39. package/packages/engine/engine.entry-point.js +4 -0
  40. package/packages/engine/engine.entry-point.js.map +1 -1
  41. package/readme.md +28 -14
  42. package/sbom.cdx.json +4 -4
  43. package/engine/metadata.d.ts +0 -49
  44. package/engine/metadata.d.ts.map +0 -1
  45. package/engine/metadata.js +0 -313
  46. package/engine/metadata.js.map +0 -1
@@ -0,0 +1,113 @@
1
+ const captureModeValues = ['buffered', 'live'];
2
+ const annotationFields = new Set(['ownership', 'tags']);
3
+ const controlFields = new Set(['capture', 'timeoutMilliseconds']);
4
+ const captureModes = new Set(captureModeValues);
5
+ const defaultTestAnnotations = {
6
+ ownership: [],
7
+ tags: []
8
+ };
9
+ const defaultTestControls = {
10
+ capture: null,
11
+ timeoutMilliseconds: null
12
+ };
13
+ function isRecord(value) {
14
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
15
+ }
16
+ function assertStringValue(value, field) {
17
+ if (typeof value !== 'string' || value.trim().length === 0) {
18
+ throw new TypeError(`Annotation field "${field}" must contain non-empty strings.`);
19
+ }
20
+ }
21
+ function assertStringArray(value, field) {
22
+ if (!Array.isArray(value)) {
23
+ throw new TypeError(`Annotation field "${field}" must be an array.`);
24
+ }
25
+ for (const item of value) {
26
+ assertStringValue(item, field);
27
+ }
28
+ }
29
+ function assertCaptureMode(value) {
30
+ if (typeof value !== 'string' || !captureModes.has(value)) {
31
+ throw new TypeError('Control field "capture" contains an unknown value.');
32
+ }
33
+ }
34
+ function assertTimeoutMilliseconds(value) {
35
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
36
+ throw new TypeError('Control field "timeoutMilliseconds" must be a finite number.');
37
+ }
38
+ }
39
+ function assertKnownFields(value, fields, messagePrefix) {
40
+ for (const field of Object.keys(value)) {
41
+ if (!fields.has(field)) {
42
+ throw new TypeError(`${messagePrefix}: ${field}.`);
43
+ }
44
+ }
45
+ }
46
+ function ensureTestAnnotationsInput(value) {
47
+ if (!isRecord(value)) {
48
+ throw new TypeError('Test node annotations must be an object.');
49
+ }
50
+ assertKnownFields(value, annotationFields, 'Unknown annotation field');
51
+ if (Object.hasOwn(value, 'ownership')) {
52
+ assertStringArray(value.ownership, 'ownership');
53
+ }
54
+ if (Object.hasOwn(value, 'tags')) {
55
+ assertStringArray(value.tags, 'tags');
56
+ }
57
+ }
58
+ function ensureTestControlsInput(value) {
59
+ if (!isRecord(value)) {
60
+ throw new TypeError('Test node controls must be an object.');
61
+ }
62
+ assertKnownFields(value, controlFields, 'Unknown control field');
63
+ if (Object.hasOwn(value, 'capture')) {
64
+ assertCaptureMode(value.capture);
65
+ }
66
+ if (Object.hasOwn(value, 'timeoutMilliseconds')) {
67
+ assertTimeoutMilliseconds(value.timeoutMilliseconds);
68
+ }
69
+ }
70
+ function mergeSetValues(parent, child) {
71
+ return Array.from(new Set([...parent, ...child]));
72
+ }
73
+ function inputField(input, field) {
74
+ return Object.hasOwn(input, field) ? input[field] : undefined;
75
+ }
76
+ function controlField(input, field) {
77
+ return Object.hasOwn(input, field) ? input[field] : undefined;
78
+ }
79
+ export function normalizeTestAnnotations(input) {
80
+ ensureTestAnnotationsInput(input);
81
+ return {
82
+ ownership: inputField(input, 'ownership') ?? [],
83
+ tags: inputField(input, 'tags') ?? []
84
+ };
85
+ }
86
+ export function normalizeTestControls(input) {
87
+ ensureTestControlsInput(input);
88
+ return {
89
+ capture: controlField(input, 'capture') ?? null,
90
+ timeoutMilliseconds: controlField(input, 'timeoutMilliseconds') ?? null
91
+ };
92
+ }
93
+ export function resolveTestAnnotations(parent, child) {
94
+ const annotations = normalizeTestAnnotations(child);
95
+ return {
96
+ ownership: mergeSetValues(parent.ownership, annotations.ownership),
97
+ tags: mergeSetValues(parent.tags, annotations.tags)
98
+ };
99
+ }
100
+ export function resolveRootTestAnnotations(annotations) {
101
+ return resolveTestAnnotations(defaultTestAnnotations, annotations);
102
+ }
103
+ export function resolveTestControls(parent, child) {
104
+ const controls = normalizeTestControls(child);
105
+ return {
106
+ capture: controls.capture ?? parent.capture,
107
+ timeoutMilliseconds: controls.timeoutMilliseconds ?? parent.timeoutMilliseconds
108
+ };
109
+ }
110
+ export function resolveRootTestControls(controls) {
111
+ return resolveTestControls(defaultTestControls, controls);
112
+ }
113
+ //# sourceMappingURL=test-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-data.js","sourceRoot":"","sources":["../../../../source/engine/test-data.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import type { AssertAssertionNode, AssertionResult } from '../assertion-protocol/assertion-node.ts';
2
2
  import type { NonEmptyReadonlyArray, SourceLocation } from '../assertion-protocol/assertion-node-shape.ts';
3
3
  import type { AssertAssertionFacade } from './assertion-facade.ts';
4
- import { type Metadata } from './metadata.ts';
5
4
  import type { RequireAssertionFacade } from './require-assertion-facade.ts';
5
+ import { type TestAnnotationsInput, type TestControlsInput, type TestFamily } from './test-data.ts';
6
6
  declare const testNodeBrand: unique symbol;
7
+ declare const testNodeFamilyBrand: unique symbol;
7
8
  declare const testRootBrand: unique symbol;
8
9
  declare const testNodeOwnerBrand: unique symbol;
9
10
  declare const testNodeOwnerIdentity: unique symbol;
@@ -18,46 +19,64 @@ export type TestScope = {
18
19
  };
19
20
  export type TestBody = (scope: TestScope) => AssertionResult | Promise<AssertionResult>;
20
21
  export type DefinitionLocations = NonEmptyReadonlyArray<SourceLocation>;
22
+ export type BodyTestCaseExecution = {
23
+ readonly body: TestBody;
24
+ readonly kind: 'body';
25
+ };
26
+ export type SkippedTestCaseExecution = {
27
+ readonly kind: 'skip';
28
+ readonly reason: string;
29
+ };
30
+ export type TestCaseExecution = BodyTestCaseExecution | SkippedTestCaseExecution;
21
31
  export type TestCase = {
22
32
  readonly [testNodeBrand]: true;
33
+ readonly [testNodeFamilyBrand]: TestFamily | null;
23
34
  readonly [testNodeOwnerBrand]: TestNodeOwner;
24
- readonly body: TestBody;
35
+ readonly annotations: TestAnnotationsInput;
36
+ readonly controls: TestControlsInput;
25
37
  readonly definitionLocations: DefinitionLocations;
38
+ readonly execution: TestCaseExecution;
26
39
  readonly kind: 'test';
27
- readonly metadata: Metadata;
28
40
  readonly title: string;
29
41
  };
30
42
  export type Suite = {
31
43
  readonly [testNodeBrand]: true;
44
+ readonly [testNodeFamilyBrand]: TestFamily | null;
32
45
  readonly [testNodeOwnerBrand]: TestNodeOwner;
46
+ readonly annotations: TestAnnotationsInput;
33
47
  readonly children: readonly TestNode[];
48
+ readonly controls: TestControlsInput;
34
49
  readonly definitionLocations: DefinitionLocations;
35
50
  readonly kind: 'suite';
36
- readonly metadata: Metadata;
37
51
  readonly title: string;
38
52
  };
39
53
  export type TableCase = {
54
+ readonly annotations: TestAnnotationsInput;
40
55
  readonly body: TestBody;
41
- readonly metadata: Metadata;
56
+ readonly controls: TestControlsInput;
42
57
  readonly parameters: unknown;
43
58
  readonly title: string;
44
59
  };
45
60
  export type Table = {
46
61
  readonly [testNodeBrand]: true;
62
+ readonly [testNodeFamilyBrand]: TestFamily | null;
47
63
  readonly [testNodeOwnerBrand]: TestNodeOwner;
64
+ readonly annotations: TestAnnotationsInput;
48
65
  readonly cases: readonly TableCase[];
66
+ readonly controls: TestControlsInput;
49
67
  readonly definitionLocations: DefinitionLocations;
50
68
  readonly kind: 'table';
51
- readonly metadata: Metadata;
52
69
  readonly title: string;
53
70
  };
54
71
  export type TestNode = Suite | Table | TestCase;
55
72
  export type TestRoot = {
56
73
  readonly [testRootBrand]: true;
74
+ readonly [testNodeFamilyBrand]: TestFamily | null;
57
75
  readonly [testNodeOwnerBrand]: TestNodeOwner;
76
+ readonly annotations: TestAnnotationsInput;
58
77
  readonly children: readonly TestNode[];
78
+ readonly controls: TestControlsInput;
59
79
  readonly kind: 'root';
60
- readonly metadata: Metadata;
61
80
  readonly title: string;
62
81
  };
63
82
  export type TestNodeOwner = {
@@ -66,6 +85,7 @@ export type TestNodeOwner = {
66
85
  export type TestNodeFactory = {
67
86
  readonly createRoot: (options: RootOptions) => TestRoot;
68
87
  readonly createSuite: (options: SuiteOptions) => Suite;
88
+ readonly createSkippedTestCase: (options: SkippedTestCaseOptions) => TestCase;
69
89
  readonly createTable: (options: TableOptions) => Table;
70
90
  readonly createTestCase: (options: TestCaseOptions) => TestCase;
71
91
  };
@@ -74,38 +94,52 @@ export type TestNodeFactoryOptions = {
74
94
  readonly recordConstructedNode: (node: TestNode) => void;
75
95
  };
76
96
  export type TestCaseOptions = {
97
+ readonly annotations: TestAnnotationsInput;
77
98
  readonly body: TestBody;
99
+ readonly controls: TestControlsInput;
100
+ readonly definitionLocations: DefinitionLocations;
101
+ readonly title: string;
102
+ };
103
+ export type SkippedTestCaseOptions = {
104
+ readonly annotations: TestAnnotationsInput;
105
+ readonly controls: TestControlsInput;
78
106
  readonly definitionLocations: DefinitionLocations;
79
- readonly metadata: Metadata;
107
+ readonly reason: string;
80
108
  readonly title: string;
81
109
  };
82
110
  export type RootOptions = {
111
+ readonly annotations: TestAnnotationsInput;
83
112
  readonly children: readonly unknown[];
84
- readonly metadata: Metadata;
113
+ readonly controls: TestControlsInput;
85
114
  readonly title: string;
86
115
  };
87
116
  export type SuiteOptions = {
117
+ readonly annotations: TestAnnotationsInput;
88
118
  readonly children: readonly unknown[];
119
+ readonly controls: TestControlsInput;
89
120
  readonly definitionLocations: DefinitionLocations;
90
- readonly metadata: Metadata;
91
121
  readonly title: string;
92
122
  };
93
123
  export type TableCaseOptions = {
124
+ readonly annotations: TestAnnotationsInput;
94
125
  readonly body: TestBody;
95
- readonly metadata: Metadata;
126
+ readonly controls: TestControlsInput;
96
127
  readonly parameters: unknown;
97
128
  readonly title: string;
98
129
  };
99
130
  export type TableOptions = {
131
+ readonly annotations: TestAnnotationsInput;
100
132
  readonly cases: readonly TableCaseOptions[];
133
+ readonly controls: TestControlsInput;
101
134
  readonly definitionLocations: DefinitionLocations;
102
- readonly metadata: Metadata;
103
135
  readonly title: string;
104
136
  };
105
137
  export declare function createTestNodeOwner(): TestNodeOwner;
106
138
  export declare function defaultTestNodeOwner(): TestNodeOwner;
107
139
  export declare function isTestNode(value: unknown): value is TestNode;
108
140
  export declare function isTestRoot(value: unknown): value is TestRoot;
141
+ export declare function testNodeFamily(node: TestNode | TestRoot): TestFamily | null;
142
+ export declare function stampTestNodeFamily(node: TestNode | TestRoot, family: TestFamily): void;
109
143
  export declare function isOwnedTestNode(value: unknown, owner: TestNodeOwner): value is TestNode;
110
144
  export declare function ensureOwnedTestRoot(value: unknown, owner: TestNodeOwner, plainObjectMessage: string, foreignRootMessage: string): asserts value is TestRoot;
111
145
  export declare function createTestNodeFactory(factoryOptions: TestNodeFactoryOptions): TestNodeFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"test-node.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-node.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { ensureValidSourceLocation } from "../assertion-protocol/source-location.js";
2
- import { ensureMetadata } from "./metadata.js";
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');
@@ -36,6 +37,19 @@ function ensureTestBody(body) {
36
37
  throw new TypeError('Test case body must be a function.');
37
38
  }
38
39
  }
40
+ function ensureSkipReasonValue(reason) {
41
+ if (typeof reason !== 'string') {
42
+ throw new TypeError('Skipped test reason must be a string.');
43
+ }
44
+ }
45
+ function readSkipReason(reason) {
46
+ ensureSkipReasonValue(reason);
47
+ const trimmedReason = reason.trim();
48
+ if (trimmedReason.length === 0) {
49
+ throw new TypeError('Skipped test reason must not be empty.');
50
+ }
51
+ return trimmedReason;
52
+ }
39
53
  function ensureDefinitionLocations(definitionLocations) {
40
54
  if (definitionLocations.length === 0) {
41
55
  throw new TypeError('Test node definition locations must contain at least one location.');
@@ -50,6 +64,29 @@ export function isTestNode(value) {
50
64
  export function isTestRoot(value) {
51
65
  return typeof value === 'object' && value !== null && Object.hasOwn(value, testRootBrand);
52
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
+ }
53
90
  export function isOwnedTestNode(value, owner) {
54
91
  return isTestNode(value) && value[testNodeOwnerBrand] === owner;
55
92
  }
@@ -84,16 +121,40 @@ export function createTestNodeFactory(factoryOptions) {
84
121
  function createTestCase(options) {
85
122
  ensureTitleValue(options.title);
86
123
  ensureTitle(options.title);
87
- ensureMetadata(options.metadata);
124
+ normalizeTestAnnotations(options.annotations);
125
+ normalizeTestControls(options.controls);
88
126
  ensureTestBody(options.body);
89
127
  ensureDefinitionLocations(options.definitionLocations);
90
128
  const testCase = {
91
129
  [testNodeBrand]: true,
130
+ [testNodeFamilyBrand]: null,
131
+ [testNodeOwnerBrand]: owner,
132
+ annotations: options.annotations,
133
+ controls: options.controls,
134
+ definitionLocations: options.definitionLocations,
135
+ execution: { body: options.body, kind: 'body' },
136
+ kind: 'test',
137
+ title: options.title
138
+ };
139
+ recordConstructedNode(testCase);
140
+ return testCase;
141
+ }
142
+ function createSkippedTestCase(options) {
143
+ ensureTitleValue(options.title);
144
+ ensureTitle(options.title);
145
+ normalizeTestAnnotations(options.annotations);
146
+ normalizeTestControls(options.controls);
147
+ ensureDefinitionLocations(options.definitionLocations);
148
+ const reason = readSkipReason(options.reason);
149
+ const testCase = {
150
+ [testNodeBrand]: true,
151
+ [testNodeFamilyBrand]: null,
92
152
  [testNodeOwnerBrand]: owner,
93
- body: options.body,
153
+ annotations: options.annotations,
154
+ controls: options.controls,
94
155
  definitionLocations: options.definitionLocations,
156
+ execution: { kind: 'skip', reason },
95
157
  kind: 'test',
96
- metadata: options.metadata,
97
158
  title: options.title
98
159
  };
99
160
  recordConstructedNode(testCase);
@@ -102,34 +163,40 @@ export function createTestNodeFactory(factoryOptions) {
102
163
  function createRoot(options) {
103
164
  ensureTitleValue(options.title);
104
165
  ensureTitle(options.title);
105
- ensureMetadata(options.metadata);
166
+ normalizeTestAnnotations(options.annotations);
167
+ normalizeTestControls(options.controls);
106
168
  const children = options.children.map(function validateChild(child) {
107
169
  return toTestNode(child, owner, 'Root children must be engine-created TestNode values.', 'Root children must be created by the same engine instance.');
108
170
  });
109
171
  return {
110
172
  [testRootBrand]: true,
173
+ [testNodeFamilyBrand]: null,
111
174
  [testNodeOwnerBrand]: owner,
175
+ annotations: options.annotations,
112
176
  children,
177
+ controls: options.controls,
113
178
  kind: 'root',
114
- metadata: options.metadata,
115
179
  title: options.title
116
180
  };
117
181
  }
118
182
  function createSuite(options) {
119
183
  ensureTitleValue(options.title);
120
184
  ensureTitle(options.title);
121
- ensureMetadata(options.metadata);
185
+ normalizeTestAnnotations(options.annotations);
186
+ normalizeTestControls(options.controls);
122
187
  ensureDefinitionLocations(options.definitionLocations);
123
188
  const children = options.children.map(function validateChild(child) {
124
189
  return toTestNode(child, owner, 'Suite children must be engine-created TestNode values.', 'Suite children must be created by the same engine instance.');
125
190
  });
126
191
  const suite = {
127
192
  [testNodeBrand]: true,
193
+ [testNodeFamilyBrand]: null,
128
194
  [testNodeOwnerBrand]: owner,
195
+ annotations: options.annotations,
129
196
  children,
197
+ controls: options.controls,
130
198
  definitionLocations: options.definitionLocations,
131
199
  kind: 'suite',
132
- metadata: options.metadata,
133
200
  title: options.title
134
201
  };
135
202
  recordConstructedNode(suite);
@@ -139,23 +206,27 @@ export function createTestNodeFactory(factoryOptions) {
139
206
  for (const tableCase of cases) {
140
207
  ensureTitleValue(tableCase.title);
141
208
  ensureTitle(tableCase.title);
142
- ensureMetadata(tableCase.metadata);
209
+ normalizeTestAnnotations(tableCase.annotations);
210
+ normalizeTestControls(tableCase.controls);
143
211
  ensureTestBody(tableCase.body);
144
212
  }
145
213
  }
146
214
  function createTable(options) {
147
215
  ensureTitleValue(options.title);
148
216
  ensureTitle(options.title);
149
- ensureMetadata(options.metadata);
217
+ normalizeTestAnnotations(options.annotations);
218
+ normalizeTestControls(options.controls);
150
219
  ensureDefinitionLocations(options.definitionLocations);
151
220
  ensureTableCases(options.cases);
152
221
  const table = {
153
222
  [testNodeBrand]: true,
223
+ [testNodeFamilyBrand]: null,
154
224
  [testNodeOwnerBrand]: owner,
225
+ annotations: options.annotations,
155
226
  cases: options.cases,
227
+ controls: options.controls,
156
228
  definitionLocations: options.definitionLocations,
157
229
  kind: 'table',
158
- metadata: options.metadata,
159
230
  title: options.title
160
231
  };
161
232
  recordConstructedNode(table);
@@ -164,6 +235,7 @@ export function createTestNodeFactory(factoryOptions) {
164
235
  return {
165
236
  createRoot,
166
237
  createSuite,
238
+ createSkippedTestCase,
167
239
  createTable,
168
240
  createTestCase
169
241
  };
@@ -1 +1 @@
1
- {"version":3,"file":"test-node.js","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-node.js","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,22 @@
1
1
  import type { NonEmptyReadonlyArray, SourceLocation } from '../assertion-protocol/assertion-node-shape.ts';
2
2
  import { type CaseId } from './identity.ts';
3
- import { type Metadata, type ResolvedMetadata } from './metadata.ts';
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
- import { type RootOptions, type TestBody, type TestNode, type TestNodeOwner, type TestRoot } from './test-node.ts';
5
+ import { type RootOptions, type TestBody, type TestCaseExecution, type TestNode, type TestNodeOwner, type TestRoot } from './test-node.ts';
6
6
  export type TestPlanCaseBody = TestBody;
7
+ export type TestPlanCaseExecution = TestCaseExecution;
7
8
  export type TestPlanSuitePathEntry = {
8
9
  readonly definitionLocations: NonEmptyReadonlyArray<SourceLocation>;
9
10
  readonly title: string;
10
11
  };
11
12
  export type TestPlanCase = {
12
- readonly body: TestPlanCaseBody;
13
+ readonly annotations: TestAnnotations;
14
+ readonly controls: TestControls;
13
15
  readonly definitionLocations: NonEmptyReadonlyArray<SourceLocation>;
16
+ readonly execution: TestPlanCaseExecution;
14
17
  readonly id: CaseId;
15
- readonly metadata: ResolvedMetadata;
16
18
  readonly suitePath: readonly TestPlanSuitePathEntry[];
19
+ readonly testFamily: TestFamily | null;
17
20
  };
18
21
  export type TestPlan = {
19
22
  readonly defined: number;
@@ -23,12 +26,14 @@ export type TestPlan = {
23
26
  readonly root: TestPlanRoot;
24
27
  };
25
28
  type TestPlanRoot = {
26
- readonly metadata: ResolvedMetadata;
29
+ readonly annotations: TestAnnotations;
30
+ readonly controls: TestControls;
27
31
  readonly title: string;
28
32
  };
29
33
  export type TestPlanFactory = (root: TestRoot) => TestPlan;
30
34
  type TestPlanRootOptions = {
31
- readonly metadata: Metadata;
35
+ readonly annotations: TestAnnotationsInput;
36
+ readonly controls: TestControlsInput;
32
37
  readonly title: string;
33
38
  };
34
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,EAGH,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAGH,KAAK,WAAW,EAIhB,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAExC,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,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACzD,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,QAAQ,EAAE,gBAAgB,CAAC;IACpC,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,QAAQ,EAAE,QAAQ,CAAC;IAC5B,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;AAuP/F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,eAAe,CA0BpH;AAgCD,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ,GAC/C,4BAA4B,CA6B9B"}
1
+ {"version":3,"file":"test-plan.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-plan.ts"],"names":[],"mappings":"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"}