@overkill-dev/test 0.0.9 → 0.0.11
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/package.json
CHANGED
|
@@ -7,13 +7,14 @@
|
|
|
7
7
|
"url": "https://github.com/enormora/overkill/issues"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@overkill-dev/assert": "0.0.
|
|
11
|
-
"@overkill-dev/
|
|
12
|
-
"@overkill-dev/
|
|
13
|
-
"@overkill-dev/
|
|
14
|
-
"@overkill-dev/reporter-
|
|
15
|
-
"@overkill-dev/reporter-
|
|
16
|
-
"@overkill-dev/
|
|
10
|
+
"@overkill-dev/assert": "0.0.27",
|
|
11
|
+
"@overkill-dev/doubles": "0.0.25",
|
|
12
|
+
"@overkill-dev/engine": "0.0.26",
|
|
13
|
+
"@overkill-dev/output-renderer-github-actions": "0.0.16",
|
|
14
|
+
"@overkill-dev/reporter-brief": "0.0.16",
|
|
15
|
+
"@overkill-dev/reporter-dot": "0.0.27",
|
|
16
|
+
"@overkill-dev/reporter-line": "0.0.27",
|
|
17
|
+
"@overkill-dev/run": "0.0.31",
|
|
17
18
|
"cmd-ts": "0.15.0"
|
|
18
19
|
},
|
|
19
20
|
"description": "Standard Overkill distribution and command-line binary.",
|
|
@@ -71,5 +72,5 @@
|
|
|
71
72
|
"./packages/test/test.entry-point.js"
|
|
72
73
|
],
|
|
73
74
|
"type": "module",
|
|
74
|
-
"version": "0.0.
|
|
75
|
+
"version": "0.0.11"
|
|
75
76
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type Metadata, type OutputRenderer, type Reporter, type Suite, type Table, type TestBody, type TestCase, type TestNode, type TestScope } from '@overkill-dev/engine';
|
|
2
|
+
export { doubleUsage, rule, testAsyncDisposable, testAsyncIterable, testAsyncIterator, testDisposable, testDouble, testIterable, testIterator } from '@overkill-dev/doubles';
|
|
3
|
+
export type { AsyncDisposableConfiguration, AsyncIterableConfiguration, AsyncIteratorConfiguration, AsyncIteratorSource, DisposableConfiguration, DoubleCall, DoubleConstruction, DoubleHistory, DoubleInteraction, DoubleInvocation, DoubleIteratorEvent, DoubleIteratorReturnEvent, DoubleIteratorThrowEvent, DoubleIteratorYieldEvent, DoubleResult, DoubleReturnedResult, DoubleThrownResult, DoubleUsageAssertions, ProtocolMethodConfiguration, RuleFactory, SyncIterableConfiguration, SyncIteratorConfiguration, SyncIteratorSource, TestAsyncDisposable, TestAsyncDisposableFactory, TestAsyncIterable, TestAsyncIterableFactory, TestAsyncIterator, TestAsyncIteratorFactory, TestDisposable, TestDisposableFactory, TestDouble, TestDoubleFactory, TestIterable, TestIterableFactory, TestIterator, TestIteratorFactory } from '@overkill-dev/doubles';
|
|
2
4
|
type UnavailableAuthoringApi = (...parameters: readonly unknown[]) => never;
|
|
3
5
|
export type RunIfMainRootOptions = {
|
|
4
6
|
readonly metadata: Metadata;
|
|
@@ -21,13 +23,16 @@ export type TableDefinition<Row> = {
|
|
|
21
23
|
readonly test: TableTestBody<Row>;
|
|
22
24
|
readonly title: string;
|
|
23
25
|
};
|
|
26
|
+
type MacroFactory<MacroParameters extends readonly unknown[], Node extends TestNode> = (...parameters: MacroParameters) => Node;
|
|
27
|
+
type ParameterizedTestBody<Data> = (scope: TestScope, data: Data) => ReturnType<TestBody>;
|
|
24
28
|
export declare function test(...input: readonly [definition: Readonly<Pick<TestCase, 'body' | 'metadata' | 'title'>>]): TestCase;
|
|
25
29
|
export declare function test(...input: readonly [title: string, body: TestBody]): TestCase;
|
|
26
30
|
export declare function suite(...input: readonly [definition: Readonly<Pick<Suite, 'children' | 'metadata' | 'title'>>]): Suite;
|
|
27
31
|
export declare function suite(...input: readonly [title: string, children: readonly TestNode[]]): Suite;
|
|
28
32
|
export declare function table<Row>(definition: TableDefinition<Row>): Table;
|
|
29
33
|
export declare const createTestFacade: UnavailableAuthoringApi;
|
|
30
|
-
export declare const
|
|
34
|
+
export declare function defineMacro<const MacroParameters extends readonly unknown[], Node extends TestNode>(factory: MacroFactory<MacroParameters, Node>): MacroFactory<MacroParameters, Node>;
|
|
35
|
+
export declare function defineParameterizedTestBody<Data>(body: ParameterizedTestBody<Data>): (data: Data) => TestBody;
|
|
31
36
|
export declare function runIfMain(meta: Readonly<ImportMeta>, testNode: TestNode, options?: RunIfMainOptions): Promise<void>;
|
|
32
37
|
export type { Metadata, OutputRenderer, Reporter, Suite, Table, TestBody, TestCase, TestNode, TestScope, TestScopeAssertContext } from '@overkill-dev/engine';
|
|
33
38
|
//# sourceMappingURL=test.entry-point.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/test/test.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"test.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/test/test.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,QAAQ,EAKb,KAAK,KAAK,EACV,KAAK,KAAK,EAEV,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACjB,MAAM,sBAAiC,CAAC;AAEzC,OAAO,EACH,WAAW,EACX,IAAI,EACJ,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACf,MAAM,uBAAmC,CAAC;AAC3C,YAAY,EACR,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,WAAW,EACX,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACtB,MAAM,uBAAmC,CAAC;AAE3C,KAAK,uBAAuB,GAAG,CAAC,GAAG,UAAU,EAAE,SAAS,OAAO,EAAE,KAAK,KAAK,CAAC;AAE5E,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CACpB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAcnB,MAAM,MAAM,sBAAsB,CAAC,GAAG,IAAI,SAAS,GAAG;IAClD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI,CAC7B,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,KACjC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAE1B,MAAM,MAAM,eAAe,CAAC,GAAG,IAAI;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAWF,KAAK,YAAY,CAAC,eAAe,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,QAAQ,IAAI,CACnF,GAAG,UAAU,EAAE,eAAe,KAC7B,IAAI,CAAC;AACV,KAAK,qBAAqB,CAAC,IAAI,IAAI,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAI,KACT,UAAU,CAAC,QAAQ,CAAC,CAAC;AA4N1B,wBAAgB,IAAI,CAChB,GAAG,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GACzF,QAAQ,CAAC;AACZ,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC;AA2BnF,wBAAgB,KAAK,CACjB,GAAG,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAC1F,KAAK,CAAC;AACT,wBAAgB,KAAK,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;AA2BhG,wBAAgB,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CASlE;AAED,eAAO,MAAM,gBAAgB,yBAAoD,CAAC;AAelF,wBAAgB,WAAW,CAAC,KAAK,CAAC,eAAe,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,QAAQ,EAC/F,OAAO,EAAE,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,GAC7C,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAerC;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAC5C,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,GAClC,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,CAc1B;AAED,wBAAsB,SAAS,CAC3B,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,YAAY,EACR,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,sBAAsB,EACzB,MAAM,sBAAiC,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { captureSourceLocation, createSuite, createTable, createTestCase } from "@overkill-dev/engine";
|
|
1
|
+
import { captureSourceLocation, createSuite, createTable, createTestCase, forwardAssertionSourceLocations, ownsTestNode } from "@overkill-dev/engine";
|
|
2
|
+
export { doubleUsage, rule, testAsyncDisposable, testAsyncIterable, testAsyncIterator, testDisposable, testDouble, testIterable, testIterator } from "@overkill-dev/doubles";
|
|
2
3
|
const singleArgumentCount = 1;
|
|
3
4
|
const positionalArgumentCount = 2;
|
|
4
5
|
const testArgumentsError = 'test() requires (title, body) or ({ title, metadata, body }).';
|
|
5
6
|
const suiteArgumentsError = 'suite() requires (title, children) or ({ title, metadata, children }).';
|
|
6
7
|
const tableArgumentsError = 'table() requires ({ title, cases, metadata?, caseTitle?, test }).';
|
|
8
|
+
const activeMacroDefinitionLocations = [];
|
|
7
9
|
function createUnavailableAuthoringApi(name) {
|
|
8
10
|
return function unavailableAuthoringApi() {
|
|
9
11
|
throw new Error(`The @overkill-dev/test ${name}() authoring API is not implemented yet.`);
|
|
@@ -74,6 +76,38 @@ function readSuiteDefinition(value) {
|
|
|
74
76
|
function defaultCaseTitle(index) {
|
|
75
77
|
return `case ${index + 1}`;
|
|
76
78
|
}
|
|
79
|
+
function captureAuthoringLocation() {
|
|
80
|
+
return captureSourceLocation()();
|
|
81
|
+
}
|
|
82
|
+
function currentMacroDefinitionLocations() {
|
|
83
|
+
return activeMacroDefinitionLocations.at(-1) ?? [];
|
|
84
|
+
}
|
|
85
|
+
function sourceLocationsWithTrailingLocation(sourceLocations, location) {
|
|
86
|
+
const firstLocation = sourceLocations[0];
|
|
87
|
+
return firstLocation === undefined
|
|
88
|
+
? [location]
|
|
89
|
+
: [firstLocation, ...sourceLocations.slice(1), location];
|
|
90
|
+
}
|
|
91
|
+
function definitionLocationsForAuthoringCall() {
|
|
92
|
+
return sourceLocationsWithTrailingLocation(currentMacroDefinitionLocations(), captureAuthoringLocation());
|
|
93
|
+
}
|
|
94
|
+
function runWithForwardedSourceLocations(sourceLocations, body) {
|
|
95
|
+
const firstLocation = sourceLocations[0];
|
|
96
|
+
return firstLocation === undefined
|
|
97
|
+
? body()
|
|
98
|
+
: forwardAssertionSourceLocations([firstLocation, ...sourceLocations.slice(1)], body);
|
|
99
|
+
}
|
|
100
|
+
function assertionBodyForActiveMacro(body) {
|
|
101
|
+
const sourceLocations = currentMacroDefinitionLocations();
|
|
102
|
+
if (sourceLocations.length === 0) {
|
|
103
|
+
return body;
|
|
104
|
+
}
|
|
105
|
+
return async function runMacroGeneratedTestBody(scope) {
|
|
106
|
+
return await runWithForwardedSourceLocations(sourceLocations, async function runBody() {
|
|
107
|
+
return await body(scope);
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
}
|
|
77
111
|
function tableCaseTitle(caseTitle, parameters, index) {
|
|
78
112
|
const title = caseTitle === null ? defaultCaseTitle(index) : caseTitle(parameters, index);
|
|
79
113
|
if (typeof title !== 'string') {
|
|
@@ -81,9 +115,11 @@ function tableCaseTitle(caseTitle, parameters, index) {
|
|
|
81
115
|
}
|
|
82
116
|
return title;
|
|
83
117
|
}
|
|
84
|
-
function tableCaseBody(definition, parameters) {
|
|
118
|
+
function tableCaseBody(definition, parameters, sourceLocations) {
|
|
85
119
|
return async function runTableCase(scope) {
|
|
86
|
-
return await
|
|
120
|
+
return await runWithForwardedSourceLocations(sourceLocations, async function runMacroGeneratedTableCase() {
|
|
121
|
+
return await definition.test({ ...scope, parameters });
|
|
122
|
+
});
|
|
87
123
|
};
|
|
88
124
|
}
|
|
89
125
|
function ensureTableDefinitionShape(definition) {
|
|
@@ -109,9 +145,10 @@ function readTableDefinition(definition) {
|
|
|
109
145
|
};
|
|
110
146
|
}
|
|
111
147
|
function tableCases(definition) {
|
|
148
|
+
const sourceLocations = currentMacroDefinitionLocations();
|
|
112
149
|
return definition.cases.map(function createTableCase(parameters, index) {
|
|
113
150
|
return {
|
|
114
|
-
body: tableCaseBody(definition, parameters),
|
|
151
|
+
body: tableCaseBody(definition, parameters, sourceLocations),
|
|
115
152
|
metadata: {},
|
|
116
153
|
parameters,
|
|
117
154
|
title: tableCaseTitle(definition.caseTitle, parameters, index)
|
|
@@ -122,8 +159,8 @@ export function test(...input) {
|
|
|
122
159
|
if (input.length === singleArgumentCount) {
|
|
123
160
|
const definition = readTestDefinition(input[0]);
|
|
124
161
|
return createTestCase({
|
|
125
|
-
body: definition.body,
|
|
126
|
-
|
|
162
|
+
body: assertionBodyForActiveMacro(definition.body),
|
|
163
|
+
definitionLocations: definitionLocationsForAuthoringCall(),
|
|
127
164
|
metadata: definition.metadata,
|
|
128
165
|
title: definition.title
|
|
129
166
|
});
|
|
@@ -131,8 +168,8 @@ export function test(...input) {
|
|
|
131
168
|
if (input.length === positionalArgumentCount) {
|
|
132
169
|
const [name, body] = input;
|
|
133
170
|
return createTestCase({
|
|
134
|
-
body: readBody(body),
|
|
135
|
-
|
|
171
|
+
body: assertionBodyForActiveMacro(readBody(body)),
|
|
172
|
+
definitionLocations: definitionLocationsForAuthoringCall(),
|
|
136
173
|
metadata: createMicrotestMetadata({}),
|
|
137
174
|
title: readTitle(name, testArgumentsError)
|
|
138
175
|
});
|
|
@@ -144,7 +181,7 @@ export function suite(...input) {
|
|
|
144
181
|
const definition = readSuiteDefinition(input[0]);
|
|
145
182
|
return createSuite({
|
|
146
183
|
children: definition.children,
|
|
147
|
-
|
|
184
|
+
definitionLocations: definitionLocationsForAuthoringCall(),
|
|
148
185
|
metadata: definition.metadata,
|
|
149
186
|
title: definition.title
|
|
150
187
|
});
|
|
@@ -153,7 +190,7 @@ export function suite(...input) {
|
|
|
153
190
|
const [name, children] = input;
|
|
154
191
|
return createSuite({
|
|
155
192
|
children: readChildren(children, suiteArgumentsError),
|
|
156
|
-
|
|
193
|
+
definitionLocations: definitionLocationsForAuthoringCall(),
|
|
157
194
|
metadata: createMicrotestMetadata({}),
|
|
158
195
|
title: readTitle(name, suiteArgumentsError)
|
|
159
196
|
});
|
|
@@ -164,13 +201,47 @@ export function table(definition) {
|
|
|
164
201
|
const tableDefinition = readTableDefinition(definition);
|
|
165
202
|
return createTable({
|
|
166
203
|
cases: tableCases(tableDefinition),
|
|
167
|
-
|
|
204
|
+
definitionLocations: definitionLocationsForAuthoringCall(),
|
|
168
205
|
metadata: tableDefinition.metadata,
|
|
169
206
|
title: tableDefinition.title
|
|
170
207
|
});
|
|
171
208
|
}
|
|
172
209
|
export const createTestFacade = createUnavailableAuthoringApi('createTestFacade');
|
|
173
|
-
|
|
210
|
+
function createMacroNode(factory, parameters) {
|
|
211
|
+
const node = factory(...parameters);
|
|
212
|
+
if (!ownsTestNode(node)) {
|
|
213
|
+
throw new TypeError('defineMacro() factory must return a default-engine TestNode value.');
|
|
214
|
+
}
|
|
215
|
+
return node;
|
|
216
|
+
}
|
|
217
|
+
export function defineMacro(factory) {
|
|
218
|
+
if (typeof factory !== 'function') {
|
|
219
|
+
throw new TypeError('defineMacro() requires a factory function.');
|
|
220
|
+
}
|
|
221
|
+
return function runMacro(...parameters) {
|
|
222
|
+
const definitionLocations = definitionLocationsForAuthoringCall();
|
|
223
|
+
activeMacroDefinitionLocations.push(definitionLocations);
|
|
224
|
+
try {
|
|
225
|
+
return createMacroNode(factory, parameters);
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
activeMacroDefinitionLocations.pop();
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
export function defineParameterizedTestBody(body) {
|
|
233
|
+
if (typeof body !== 'function') {
|
|
234
|
+
throw new TypeError('defineParameterizedTestBody() requires a body function.');
|
|
235
|
+
}
|
|
236
|
+
return function createParameterizedTestBody(data) {
|
|
237
|
+
const sourceLocations = [captureAuthoringLocation()];
|
|
238
|
+
return async function runParameterizedTestBody(scope) {
|
|
239
|
+
return forwardAssertionSourceLocations(sourceLocations, async function runBody() {
|
|
240
|
+
return body(scope, data);
|
|
241
|
+
});
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
}
|
|
174
245
|
export async function runIfMain(meta, testNode, options) {
|
|
175
246
|
if (!meta.main) {
|
|
176
247
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/test/test.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,cAAc,
|
|
1
|
+
{"version":3,"file":"test.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/test/test.entry-point.ts"],"names":[],"mappings":"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"}
|
package/readme.md
CHANGED
|
@@ -12,6 +12,16 @@ Current root runtime exports:
|
|
|
12
12
|
- `suite`
|
|
13
13
|
- `table`
|
|
14
14
|
- `defineMacro`
|
|
15
|
+
- `defineParameterizedTestBody`
|
|
16
|
+
- `doubleUsage`
|
|
17
|
+
- `rule`
|
|
18
|
+
- `testDouble`
|
|
19
|
+
- `testIterator`
|
|
20
|
+
- `testAsyncIterator`
|
|
21
|
+
- `testIterable`
|
|
22
|
+
- `testAsyncIterable`
|
|
23
|
+
- `testDisposable`
|
|
24
|
+
- `testAsyncDisposable`
|
|
15
25
|
- `createTestFacade`
|
|
16
26
|
- `runIfMain`
|
|
17
27
|
|
|
@@ -31,11 +41,14 @@ Standard subpaths:
|
|
|
31
41
|
Implemented root authoring forms:
|
|
32
42
|
|
|
33
43
|
```ts
|
|
34
|
-
import { suite, table, test } from '@overkill-dev/test';
|
|
44
|
+
import { doubleUsage, suite, table, test, testDouble } from '@overkill-dev/test';
|
|
35
45
|
|
|
36
46
|
export const testNode = suite('users', [
|
|
37
47
|
test('loads user', (scope) => {
|
|
48
|
+
const loadUser = testDouble.returns({ id: '42', name: 'Ada' });
|
|
49
|
+
|
|
38
50
|
scope.assert.equal(loadUser('42').name, 'Ada');
|
|
51
|
+
scope.assert(doubleUsage.calledOnceWith, loadUser, [ '42' ]);
|
|
39
52
|
return scope.assert.collect();
|
|
40
53
|
}),
|
|
41
54
|
table({
|
|
@@ -52,10 +65,15 @@ export const testNode = suite('users', [
|
|
|
52
65
|
]);
|
|
53
66
|
```
|
|
54
67
|
|
|
68
|
+
The root doubles exports are the current lightweight public surface from
|
|
69
|
+
`@overkill-dev/doubles`. Import the leaf package directly when documenting or
|
|
70
|
+
testing doubles package ownership.
|
|
71
|
+
|
|
55
72
|
Nodes created through this root facade default to `metadata.kind: 'microtest'`
|
|
56
73
|
unless the object form supplies another `kind`.
|
|
57
74
|
|
|
58
|
-
Use the object form when attaching node metadata
|
|
75
|
+
Use the object form when attaching node metadata. Metadata on the exported
|
|
76
|
+
top-level `testNode` applies to the whole module's test tree.
|
|
59
77
|
|
|
60
78
|
```ts
|
|
61
79
|
export const testNode = suite({
|
|
@@ -79,7 +97,38 @@ body receives the original row value as `scope.parameters`; default row titles
|
|
|
79
97
|
are `case 1`, `case 2`, and so on. Reachable tables must contain at least two
|
|
80
98
|
rows.
|
|
81
99
|
|
|
82
|
-
`defineMacro`
|
|
100
|
+
`defineMacro` preserves source locations for reusable test-node factories:
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
const checkMissingName = defineMacro((title: string) =>
|
|
104
|
+
test(title, (scope) => {
|
|
105
|
+
scope.assert.equal(buildUser('').name, '', { message: 'missing name' });
|
|
106
|
+
return scope.assert.collect();
|
|
107
|
+
})
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
export const testNode = suite('users', [
|
|
111
|
+
checkMissingName('rejects missing user name')
|
|
112
|
+
]);
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
`defineParameterizedTestBody` captures the callsite where data is bound to a
|
|
116
|
+
test body:
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
const checkName = defineParameterizedTestBody<{ readonly name: string; }>(
|
|
120
|
+
(scope, data) => {
|
|
121
|
+
scope.assert.equal(buildUser(data.name).name, data.name);
|
|
122
|
+
return scope.assert.collect();
|
|
123
|
+
}
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
export const testNode = suite('users', [
|
|
127
|
+
test('builds Ada', checkName({ name: 'Ada' }))
|
|
128
|
+
]);
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`createTestFacade` still throws an explicit unavailable error.
|
|
83
132
|
|
|
84
133
|
Direct Node execution:
|
|
85
134
|
|
package/sbom.cdx.json
CHANGED
|
@@ -16,102 +16,115 @@
|
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "@overkill-dev/test",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/@overkill-dev/test@0.0.
|
|
21
|
-
"purl": "pkg:npm/@overkill-dev/test@0.0.
|
|
19
|
+
"version": "0.0.11",
|
|
20
|
+
"bom-ref": "pkg:npm/@overkill-dev/test@0.0.11",
|
|
21
|
+
"purl": "pkg:npm/@overkill-dev/test@0.0.11"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
25
25
|
{
|
|
26
26
|
"type": "library",
|
|
27
27
|
"name": "@overkill-dev/assert",
|
|
28
|
+
"version": "0.0.27",
|
|
29
|
+
"bom-ref": "pkg:npm/@overkill-dev/assert@0.0.27",
|
|
30
|
+
"scope": "required",
|
|
31
|
+
"licenses": [
|
|
32
|
+
{
|
|
33
|
+
"expression": "MIT"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"purl": "pkg:npm/@overkill-dev/assert@0.0.27"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "library",
|
|
40
|
+
"name": "@overkill-dev/doubles",
|
|
28
41
|
"version": "0.0.25",
|
|
29
|
-
"bom-ref": "pkg:npm/@overkill-dev/
|
|
42
|
+
"bom-ref": "pkg:npm/@overkill-dev/doubles@0.0.25",
|
|
30
43
|
"scope": "required",
|
|
31
44
|
"licenses": [
|
|
32
45
|
{
|
|
33
46
|
"expression": "MIT"
|
|
34
47
|
}
|
|
35
48
|
],
|
|
36
|
-
"purl": "pkg:npm/@overkill-dev/
|
|
49
|
+
"purl": "pkg:npm/@overkill-dev/doubles@0.0.25"
|
|
37
50
|
},
|
|
38
51
|
{
|
|
39
52
|
"type": "library",
|
|
40
53
|
"name": "@overkill-dev/engine",
|
|
41
|
-
"version": "0.0.
|
|
42
|
-
"bom-ref": "pkg:npm/@overkill-dev/engine@0.0.
|
|
54
|
+
"version": "0.0.26",
|
|
55
|
+
"bom-ref": "pkg:npm/@overkill-dev/engine@0.0.26",
|
|
43
56
|
"scope": "required",
|
|
44
57
|
"licenses": [
|
|
45
58
|
{
|
|
46
59
|
"expression": "MIT"
|
|
47
60
|
}
|
|
48
61
|
],
|
|
49
|
-
"purl": "pkg:npm/@overkill-dev/engine@0.0.
|
|
62
|
+
"purl": "pkg:npm/@overkill-dev/engine@0.0.26"
|
|
50
63
|
},
|
|
51
64
|
{
|
|
52
65
|
"type": "library",
|
|
53
66
|
"name": "@overkill-dev/output-renderer-github-actions",
|
|
54
|
-
"version": "0.0.
|
|
55
|
-
"bom-ref": "pkg:npm/@overkill-dev/output-renderer-github-actions@0.0.
|
|
67
|
+
"version": "0.0.16",
|
|
68
|
+
"bom-ref": "pkg:npm/@overkill-dev/output-renderer-github-actions@0.0.16",
|
|
56
69
|
"scope": "required",
|
|
57
70
|
"licenses": [
|
|
58
71
|
{
|
|
59
72
|
"expression": "MIT"
|
|
60
73
|
}
|
|
61
74
|
],
|
|
62
|
-
"purl": "pkg:npm/@overkill-dev/output-renderer-github-actions@0.0.
|
|
75
|
+
"purl": "pkg:npm/@overkill-dev/output-renderer-github-actions@0.0.16"
|
|
63
76
|
},
|
|
64
77
|
{
|
|
65
78
|
"type": "library",
|
|
66
79
|
"name": "@overkill-dev/reporter-brief",
|
|
67
|
-
"version": "0.0.
|
|
68
|
-
"bom-ref": "pkg:npm/@overkill-dev/reporter-brief@0.0.
|
|
80
|
+
"version": "0.0.16",
|
|
81
|
+
"bom-ref": "pkg:npm/@overkill-dev/reporter-brief@0.0.16",
|
|
69
82
|
"scope": "required",
|
|
70
83
|
"licenses": [
|
|
71
84
|
{
|
|
72
85
|
"expression": "MIT"
|
|
73
86
|
}
|
|
74
87
|
],
|
|
75
|
-
"purl": "pkg:npm/@overkill-dev/reporter-brief@0.0.
|
|
88
|
+
"purl": "pkg:npm/@overkill-dev/reporter-brief@0.0.16"
|
|
76
89
|
},
|
|
77
90
|
{
|
|
78
91
|
"type": "library",
|
|
79
92
|
"name": "@overkill-dev/reporter-dot",
|
|
80
|
-
"version": "0.0.
|
|
81
|
-
"bom-ref": "pkg:npm/@overkill-dev/reporter-dot@0.0.
|
|
93
|
+
"version": "0.0.27",
|
|
94
|
+
"bom-ref": "pkg:npm/@overkill-dev/reporter-dot@0.0.27",
|
|
82
95
|
"scope": "required",
|
|
83
96
|
"licenses": [
|
|
84
97
|
{
|
|
85
98
|
"expression": "MIT"
|
|
86
99
|
}
|
|
87
100
|
],
|
|
88
|
-
"purl": "pkg:npm/@overkill-dev/reporter-dot@0.0.
|
|
101
|
+
"purl": "pkg:npm/@overkill-dev/reporter-dot@0.0.27"
|
|
89
102
|
},
|
|
90
103
|
{
|
|
91
104
|
"type": "library",
|
|
92
105
|
"name": "@overkill-dev/reporter-line",
|
|
93
|
-
"version": "0.0.
|
|
94
|
-
"bom-ref": "pkg:npm/@overkill-dev/reporter-line@0.0.
|
|
106
|
+
"version": "0.0.27",
|
|
107
|
+
"bom-ref": "pkg:npm/@overkill-dev/reporter-line@0.0.27",
|
|
95
108
|
"scope": "required",
|
|
96
109
|
"licenses": [
|
|
97
110
|
{
|
|
98
111
|
"expression": "MIT"
|
|
99
112
|
}
|
|
100
113
|
],
|
|
101
|
-
"purl": "pkg:npm/@overkill-dev/reporter-line@0.0.
|
|
114
|
+
"purl": "pkg:npm/@overkill-dev/reporter-line@0.0.27"
|
|
102
115
|
},
|
|
103
116
|
{
|
|
104
117
|
"type": "library",
|
|
105
118
|
"name": "@overkill-dev/run",
|
|
106
|
-
"version": "0.0.
|
|
107
|
-
"bom-ref": "pkg:npm/@overkill-dev/run@0.0.
|
|
119
|
+
"version": "0.0.31",
|
|
120
|
+
"bom-ref": "pkg:npm/@overkill-dev/run@0.0.31",
|
|
108
121
|
"scope": "required",
|
|
109
122
|
"licenses": [
|
|
110
123
|
{
|
|
111
124
|
"expression": "MIT"
|
|
112
125
|
}
|
|
113
126
|
],
|
|
114
|
-
"purl": "pkg:npm/@overkill-dev/run@0.0.
|
|
127
|
+
"purl": "pkg:npm/@overkill-dev/run@0.0.31"
|
|
115
128
|
},
|
|
116
129
|
{
|
|
117
130
|
"type": "library",
|
|
@@ -129,36 +142,40 @@
|
|
|
129
142
|
],
|
|
130
143
|
"dependencies": [
|
|
131
144
|
{
|
|
132
|
-
"ref": "pkg:npm/@overkill-dev/assert@0.0.
|
|
145
|
+
"ref": "pkg:npm/@overkill-dev/assert@0.0.27"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"ref": "pkg:npm/@overkill-dev/doubles@0.0.25"
|
|
133
149
|
},
|
|
134
150
|
{
|
|
135
|
-
"ref": "pkg:npm/@overkill-dev/engine@0.0.
|
|
151
|
+
"ref": "pkg:npm/@overkill-dev/engine@0.0.26"
|
|
136
152
|
},
|
|
137
153
|
{
|
|
138
|
-
"ref": "pkg:npm/@overkill-dev/output-renderer-github-actions@0.0.
|
|
154
|
+
"ref": "pkg:npm/@overkill-dev/output-renderer-github-actions@0.0.16"
|
|
139
155
|
},
|
|
140
156
|
{
|
|
141
|
-
"ref": "pkg:npm/@overkill-dev/reporter-brief@0.0.
|
|
157
|
+
"ref": "pkg:npm/@overkill-dev/reporter-brief@0.0.16"
|
|
142
158
|
},
|
|
143
159
|
{
|
|
144
|
-
"ref": "pkg:npm/@overkill-dev/reporter-dot@0.0.
|
|
160
|
+
"ref": "pkg:npm/@overkill-dev/reporter-dot@0.0.27"
|
|
145
161
|
},
|
|
146
162
|
{
|
|
147
|
-
"ref": "pkg:npm/@overkill-dev/reporter-line@0.0.
|
|
163
|
+
"ref": "pkg:npm/@overkill-dev/reporter-line@0.0.27"
|
|
148
164
|
},
|
|
149
165
|
{
|
|
150
|
-
"ref": "pkg:npm/@overkill-dev/run@0.0.
|
|
166
|
+
"ref": "pkg:npm/@overkill-dev/run@0.0.31"
|
|
151
167
|
},
|
|
152
168
|
{
|
|
153
|
-
"ref": "pkg:npm/@overkill-dev/test@0.0.
|
|
169
|
+
"ref": "pkg:npm/@overkill-dev/test@0.0.11",
|
|
154
170
|
"dependsOn": [
|
|
155
|
-
"pkg:npm/@overkill-dev/assert@0.0.
|
|
156
|
-
"pkg:npm/@overkill-dev/
|
|
157
|
-
"pkg:npm/@overkill-dev/
|
|
158
|
-
"pkg:npm/@overkill-dev/
|
|
159
|
-
"pkg:npm/@overkill-dev/reporter-
|
|
160
|
-
"pkg:npm/@overkill-dev/reporter-
|
|
161
|
-
"pkg:npm/@overkill-dev/
|
|
171
|
+
"pkg:npm/@overkill-dev/assert@0.0.27",
|
|
172
|
+
"pkg:npm/@overkill-dev/doubles@0.0.25",
|
|
173
|
+
"pkg:npm/@overkill-dev/engine@0.0.26",
|
|
174
|
+
"pkg:npm/@overkill-dev/output-renderer-github-actions@0.0.16",
|
|
175
|
+
"pkg:npm/@overkill-dev/reporter-brief@0.0.16",
|
|
176
|
+
"pkg:npm/@overkill-dev/reporter-dot@0.0.27",
|
|
177
|
+
"pkg:npm/@overkill-dev/reporter-line@0.0.27",
|
|
178
|
+
"pkg:npm/@overkill-dev/run@0.0.31",
|
|
162
179
|
"pkg:npm/cmd-ts@0.15.0"
|
|
163
180
|
]
|
|
164
181
|
},
|