@overkill-dev/test 0.0.12 → 0.0.14

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 (59) hide show
  1. package/package.json +18 -12
  2. package/packages/test/authoring-input.js +34 -0
  3. package/packages/test/authoring-input.js.map +1 -0
  4. package/packages/test/authoring-source-locations.js +71 -0
  5. package/packages/test/authoring-source-locations.js.map +1 -0
  6. package/packages/test/authoring-test-data.d.ts +58 -0
  7. package/packages/test/authoring-test-data.d.ts.map +1 -0
  8. package/packages/test/authoring-test-data.js +194 -0
  9. package/packages/test/authoring-test-data.js.map +1 -0
  10. package/packages/test/command-line-runner.js +39 -4
  11. package/packages/test/command-line-runner.js.map +1 -1
  12. package/packages/test/compatibility.entry-point.d.ts +4 -0
  13. package/packages/test/compatibility.entry-point.d.ts.map +1 -0
  14. package/packages/test/compatibility.entry-point.js +2 -0
  15. package/packages/test/compatibility.entry-point.js.map +1 -0
  16. package/packages/test/config.entry-point.d.ts +1 -1
  17. package/packages/test/config.entry-point.d.ts.map +1 -1
  18. package/packages/test/harness-authoring.d.ts +18 -0
  19. package/packages/test/harness-authoring.d.ts.map +1 -0
  20. package/packages/test/harness-authoring.js +25 -0
  21. package/packages/test/harness-authoring.js.map +1 -0
  22. package/packages/test/interaction-transcript.d.ts +39 -0
  23. package/packages/test/interaction-transcript.d.ts.map +1 -0
  24. package/packages/test/interaction-transcript.js +302 -0
  25. package/packages/test/interaction-transcript.js.map +1 -0
  26. package/packages/test/reporters.entry-point.d.ts +1 -0
  27. package/packages/test/reporters.entry-point.d.ts.map +1 -1
  28. package/packages/test/resource-wrapper-composition.js +313 -0
  29. package/packages/test/resource-wrapper-composition.js.map +1 -0
  30. package/packages/test/resource-wrapper-data.d.ts +39 -0
  31. package/packages/test/resource-wrapper-data.d.ts.map +1 -0
  32. package/packages/test/resource-wrapper-data.js +101 -0
  33. package/packages/test/resource-wrapper-data.js.map +1 -0
  34. package/packages/test/resource-wrapper-runtime-scope.js +44 -0
  35. package/packages/test/resource-wrapper-runtime-scope.js.map +1 -0
  36. package/packages/test/resource-wrapper-session.js +3 -0
  37. package/packages/test/resource-wrapper-session.js.map +1 -0
  38. package/packages/test/resources.entry-point.d.ts +20 -1
  39. package/packages/test/resources.entry-point.d.ts.map +1 -1
  40. package/packages/test/resources.entry-point.js +46 -2
  41. package/packages/test/resources.entry-point.js.map +1 -1
  42. package/packages/test/table-authoring.d.ts +19 -0
  43. package/packages/test/table-authoring.d.ts.map +1 -0
  44. package/packages/test/table-authoring.js +77 -0
  45. package/packages/test/table-authoring.js.map +1 -0
  46. package/packages/test/test-authoring.d.ts +68 -0
  47. package/packages/test/test-authoring.d.ts.map +1 -0
  48. package/packages/test/test-authoring.js +212 -0
  49. package/packages/test/test-authoring.js.map +1 -0
  50. package/packages/test/test.entry-point.d.ts +10 -35
  51. package/packages/test/test.entry-point.d.ts.map +1 -1
  52. package/packages/test/test.entry-point.js +3 -250
  53. package/packages/test/test.entry-point.js.map +1 -1
  54. package/packages/test/throwing-test-authoring.d.ts +15 -0
  55. package/packages/test/throwing-test-authoring.d.ts.map +1 -0
  56. package/packages/test/throwing-test-authoring.js +47 -0
  57. package/packages/test/throwing-test-authoring.js.map +1 -0
  58. package/readme.md +372 -12
  59. package/sbom.cdx.json +61 -44
@@ -1 +1 @@
1
- {"version":3,"file":"config.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/test/config.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA8B,CAAC;AAC5D,YAAY,EACR,gBAAgB,EAChB,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,iCAAiC,EACpC,MAAM,0BAA8B,CAAC"}
1
+ {"version":3,"file":"config.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/test/config.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA8B,CAAC;AAC5D,YAAY,EACR,gBAAgB,EAChB,8BAA8B,EAC9B,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,iCAAiC,EACpC,MAAM,0BAA8B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type HarnessPartFactory<Part> = () => Part;
2
+ export type HarnessPartFactories = Readonly<Record<string, HarnessPartFactory<unknown>>>;
3
+ export type HarnessParts<Factories extends HarnessPartFactories> = {
4
+ readonly [PartName in keyof Factories]: ReturnType<Factories[PartName]>;
5
+ };
6
+ export type HarnessOverrides<Parts extends Readonly<Record<string, unknown>>> = {
7
+ readonly [PartName in keyof Parts]?: Parts[PartName];
8
+ };
9
+ export type ExactHarnessOverrides<Candidate extends Readonly<Record<string, unknown>>, Shape extends Readonly<Record<string, unknown>>> = Candidate & Readonly<Record<Exclude<keyof Candidate, keyof Shape>, never>>;
10
+ export type DefinedHarness<OverrideShape extends Readonly<Record<string, unknown>>, CreatedHarness> = {
11
+ readonly create: {
12
+ (): CreatedHarness;
13
+ <Candidate extends OverrideShape>(overrides: ExactHarnessOverrides<Candidate, OverrideShape>): CreatedHarness;
14
+ };
15
+ };
16
+ export declare function defineHarness<OverrideShape extends Readonly<Record<string, unknown>>, CreatedHarness>(factory: (overrides: OverrideShape) => CreatedHarness, ...requiredOverrideFields: Record<string, never> extends OverrideShape ? readonly [] : readonly [never]): DefinedHarness<OverrideShape, CreatedHarness>;
17
+ export declare function defineHarness<const Factories extends HarnessPartFactories, CreatedHarness>(partFactories: Factories, assemble: (parts: HarnessParts<Factories>) => CreatedHarness): DefinedHarness<HarnessOverrides<HarnessParts<Factories>>, CreatedHarness>;
18
+ //# sourceMappingURL=harness-authoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-authoring.d.ts","sourceRoot":"","sources":["../../../../../source/packages/test/harness-authoring.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEzF,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,oBAAoB,IAAI;IAC/D,QAAQ,EAAE,QAAQ,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC1E,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI;IAC5E,QAAQ,EAAE,QAAQ,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC7B,SAAS,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnD,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAC/C,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,cAAc,CAAC,aAAa,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,cAAc,IAAI;IAClG,QAAQ,CAAC,MAAM,EAAE;QACb,IAAI,cAAc,CAAC;QACnB,CAAC,SAAS,SAAS,aAAa,EAAE,SAAS,EAAE,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,cAAc,CAAC;KACjH,CAAC;CACL,CAAC;AA2BF,wBAAgB,aAAa,CAAC,aAAa,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,cAAc,EACjG,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,cAAc,EACrD,GAAG,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,aAAa,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GACxG,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACjD,wBAAgB,aAAa,CAAC,KAAK,CAAC,SAAS,SAAS,oBAAoB,EAAE,cAAc,EACtF,aAAa,EAAE,SAAS,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,KAAK,cAAc,GAC7D,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ function createHarnessParts(partFactories, overrides) {
2
+ const parts = {};
3
+ for (const [name, createPart] of Object.entries(partFactories)) {
4
+ parts[name] = Object.hasOwn(overrides, name) ? overrides[name] : createPart();
5
+ }
6
+ return parts;
7
+ }
8
+ function assembleHarness(assemble, parts) {
9
+ return assemble?.(parts);
10
+ }
11
+ export function defineHarness(partFactoriesOrFactory, assemble) {
12
+ if (typeof partFactoriesOrFactory === 'function') {
13
+ return {
14
+ create(overrides = {}) {
15
+ return partFactoriesOrFactory(overrides);
16
+ }
17
+ };
18
+ }
19
+ return {
20
+ create(overrides = {}) {
21
+ return assembleHarness(assemble, createHarnessParts(partFactoriesOrFactory, overrides));
22
+ }
23
+ };
24
+ }
25
+ //# sourceMappingURL=harness-authoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-authoring.js","sourceRoot":"","sources":["../../../../../source/packages/test/harness-authoring.ts"],"names":[],"mappings":"AA6BA,SAAS,kBAAkB,CACvB,aAAmC,EACnC,SAAgC;IAEhC,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAE,IAAI,EAAE,UAAU,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAClF,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CACpB,QAA6C,EAC7C,KAA4B;IAE5B,OAAO,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAUD,MAAM,UAAU,aAAa,CACzB,sBAAoE,EACpE,QAAkC;IAElC,IAAI,OAAO,sBAAsB,KAAK,UAAU,EAAE,CAAC;QAC/C,OAAO;YACH,MAAM,CAAC,YAAmC,EAAE;gBACxC,OAAO,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;SACJ,CAAC;IACN,CAAC;IAED,OAAO;QACH,MAAM,CAAC,YAAmC,EAAE;YACxC,OAAO,eAAe,CAAC,QAAQ,EAAE,kBAAkB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5F,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { type CompositeAssertionReference, type CompositeAssertionReturn } from '@overkill-dev/assert';
2
+ import { type TestDouble } from '@overkill-dev/doubles';
3
+ type EntryForKind<Entry extends TranscriptEntry, Kind extends Entry[0]> = Extract<Entry, readonly [Kind, ...readonly unknown[]]>;
4
+ type TranscriptSink = (...parameters: readonly unknown[]) => undefined;
5
+ type SinkKind<Entry extends TranscriptEntry, Kind extends Entry[0]> = EntryForKind<Entry, Kind>[0];
6
+ type AssertionResult = CompositeAssertionReturn<'assert'>;
7
+ type TranscriptUsageReference<Arguments extends readonly unknown[]> = CompositeAssertionReference<Arguments, AssertionResult>;
8
+ export type TranscriptEntry = readonly [kind: string, ...values: readonly unknown[]];
9
+ export type Transcript<Entry extends TranscriptEntry = TranscriptEntry> = {
10
+ readonly entryCount: number;
11
+ readonly entries: readonly Entry[];
12
+ readonly firstEntry: Entry | null;
13
+ readonly lastEntry: Entry | null;
14
+ readonly nthEntry: (index: number) => Entry | null;
15
+ readonly record: (...entry: Entry) => void;
16
+ readonly reset: () => void;
17
+ readonly sink: <Kind extends Entry[0]>(kind: SinkKind<Entry, Kind>) => TestDouble<TranscriptSink>;
18
+ };
19
+ export type DisposableTranscript<Entry extends TranscriptEntry = TranscriptEntry> = Disposable & Transcript<Entry> & {
20
+ readonly dispose: () => void;
21
+ };
22
+ type AsyncTranscript<Entry extends TranscriptEntry> = Transcript<Entry> & {
23
+ readonly asyncDispose: () => Promise<void>;
24
+ };
25
+ type AsyncDisposableEntry<Entry extends TranscriptEntry> = AsyncDisposable & AsyncTranscript<Entry>;
26
+ export type AsyncDisposableTranscript<Entry extends TranscriptEntry = TranscriptEntry> = AsyncDisposableEntry<Entry>;
27
+ export type TranscriptUsageAssertions = {
28
+ readonly contains: TranscriptUsageReference<readonly [transcript: unknown, entry: TranscriptEntry]>;
29
+ readonly empty: TranscriptUsageReference<readonly [transcript: unknown]>;
30
+ readonly exactly: TranscriptUsageReference<readonly [transcript: unknown, entries: readonly TranscriptEntry[]]>;
31
+ readonly inOrder: TranscriptUsageReference<readonly [transcript: unknown, entries: readonly [TranscriptEntry, ...(readonly TranscriptEntry[])]]>;
32
+ readonly startsWith: TranscriptUsageReference<readonly [transcript: unknown, entries: readonly [TranscriptEntry, ...(readonly TranscriptEntry[])]]>;
33
+ };
34
+ export declare const createTranscript: <Entry extends TranscriptEntry = TranscriptEntry>() => Transcript<Entry>;
35
+ export declare function recordSink<Entry extends TranscriptEntry = TranscriptEntry>(subscribe: (record: (...entry: Entry) => void) => () => unknown): DisposableTranscript<Entry>;
36
+ export declare function recordAsyncSink<Entry extends TranscriptEntry = TranscriptEntry>(subscribe: (record: (...entry: Entry) => void) => () => Promise<void>): AsyncDisposableTranscript<Entry>;
37
+ export declare const transcriptUsage: TranscriptUsageAssertions;
38
+ export {};
39
+ //# sourceMappingURL=interaction-transcript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction-transcript.d.ts","sourceRoot":"","sources":["../../../../../source/packages/test/interaction-transcript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,302 @@
1
+ import { defineCompositeAssertion } from "@overkill-dev/assert";
2
+ import { testDouble } from "@overkill-dev/doubles";
3
+ import { comparePartially } from "@overkill-dev/engine/compare/raw-comparison.js";
4
+ const transcriptIdentity = Symbol('OverkillTranscript');
5
+ const symbolWithDisposal = Symbol;
6
+ const disposeSymbol = symbolWithDisposal.dispose;
7
+ const asyncDisposeSymbol = symbolWithDisposal.asyncDispose;
8
+ function validIndex(index) {
9
+ return Number.isSafeInteger(index) && index >= 0;
10
+ }
11
+ function isPromiseLike(value) {
12
+ return typeof value === 'object' && value !== null && typeof Reflect.get(value, 'then') === 'function';
13
+ }
14
+ function isTranscript(value) {
15
+ return typeof value === 'object' && value !== null &&
16
+ Object.hasOwn(value, transcriptIdentity) &&
17
+ Reflect.get(value, transcriptIdentity) === true;
18
+ }
19
+ function entriesSnapshot(transcript) {
20
+ return transcript.entries.map(function copyEntry(entry) {
21
+ const [kind, ...values] = entry;
22
+ return [kind, ...values];
23
+ });
24
+ }
25
+ function invalidTranscriptFailure(check) {
26
+ return check.fromThrowable('interaction transcript', function expectedInteractionTranscript() {
27
+ throw new TypeError('Expected an Overkill interaction transcript.');
28
+ });
29
+ }
30
+ function inspectTranscript(check, subject) {
31
+ return isTranscript(subject)
32
+ ? { entries: entriesSnapshot(subject), valid: true }
33
+ : { failure: invalidTranscriptFailure(check), valid: false };
34
+ }
35
+ function entryMatches(actual, expected) {
36
+ return actual.length === expected.length &&
37
+ expected.every(function valueMatches(expectedValue, index) {
38
+ return comparePartially(actual[index], expectedValue);
39
+ });
40
+ }
41
+ function containsEntry(entries, expected) {
42
+ return entries.some(function matchesEntry(entry) {
43
+ return entryMatches(entry, expected);
44
+ });
45
+ }
46
+ function startsWithEntries(entries, expected) {
47
+ return expected.length <= entries.length &&
48
+ expected.every(function prefixEntryMatches(expectedEntry, index) {
49
+ const actualEntry = entries[index];
50
+ return actualEntry !== undefined && entryMatches(actualEntry, expectedEntry);
51
+ });
52
+ }
53
+ function containsEntriesInOrder(entries, expected) {
54
+ let nextExpectedIndex = 0;
55
+ for (const entry of entries) {
56
+ const expectedEntry = expected[nextExpectedIndex];
57
+ if (expectedEntry !== undefined && entryMatches(entry, expectedEntry)) {
58
+ nextExpectedIndex += 1;
59
+ }
60
+ }
61
+ return nextExpectedIndex === expected.length;
62
+ }
63
+ function emptySequenceAssertion(check, entries) {
64
+ return entries.length === 0
65
+ ? check.fromThrowable('expected transcript sequence', function expectedTranscriptSequence() {
66
+ throw new TypeError('Expected transcript sequence to contain at least one entry.');
67
+ })
68
+ : null;
69
+ }
70
+ function transcriptContainsAssertion(check, entries, expected) {
71
+ if (containsEntry(entries, expected)) {
72
+ return check.annotated('matching transcript entry').true(true);
73
+ }
74
+ return check.annotated('matching transcript entry').true(false);
75
+ }
76
+ function transcriptStartsWithAssertion(check, entries, expected) {
77
+ const sequenceFailure = emptySequenceAssertion(check, expected);
78
+ if (sequenceFailure !== null) {
79
+ return sequenceFailure;
80
+ }
81
+ return check.annotated('transcript prefix').true(startsWithEntries(entries, expected));
82
+ }
83
+ function transcriptInOrderAssertion(check, entries, expected) {
84
+ const sequenceFailure = emptySequenceAssertion(check, expected);
85
+ if (sequenceFailure !== null) {
86
+ return sequenceFailure;
87
+ }
88
+ return check.annotated('transcript ordered entries').true(containsEntriesInOrder(entries, expected));
89
+ }
90
+ function freezeTranscript(subject) {
91
+ Object.defineProperty(subject, transcriptIdentity, {
92
+ enumerable: false,
93
+ value: true
94
+ });
95
+ return Object.freeze(subject);
96
+ }
97
+ function createTranscriptBase() {
98
+ const entries = [];
99
+ const transcript = {
100
+ get entries() {
101
+ return entries;
102
+ },
103
+ get entryCount() {
104
+ return entries.length;
105
+ },
106
+ get firstEntry() {
107
+ return entries[0] ?? null;
108
+ },
109
+ get lastEntry() {
110
+ return entries.at(-1) ?? null;
111
+ },
112
+ nthEntry(index) {
113
+ return validIndex(index) ? entries[index] ?? null : null;
114
+ },
115
+ record(...entry) {
116
+ entries.push(entry);
117
+ },
118
+ reset() {
119
+ entries.length = 0;
120
+ },
121
+ sink(kind) {
122
+ return testDouble({
123
+ answer(invocation) {
124
+ Reflect.apply(transcript.record, transcript, [kind, ...invocation.arguments]);
125
+ return undefined;
126
+ }
127
+ });
128
+ }
129
+ };
130
+ return freezeTranscript(transcript);
131
+ }
132
+ function disposableTranscript(transcript, dispose) {
133
+ const subject = {
134
+ [disposeSymbol]: dispose,
135
+ dispose,
136
+ get entries() {
137
+ return transcript.entries;
138
+ },
139
+ get entryCount() {
140
+ return transcript.entryCount;
141
+ },
142
+ get firstEntry() {
143
+ return transcript.firstEntry;
144
+ },
145
+ get lastEntry() {
146
+ return transcript.lastEntry;
147
+ },
148
+ nthEntry(index) {
149
+ return transcript.nthEntry(index);
150
+ },
151
+ record(...entry) {
152
+ transcript.record(...entry);
153
+ },
154
+ reset() {
155
+ transcript.reset();
156
+ },
157
+ sink(kind) {
158
+ return transcript.sink(kind);
159
+ }
160
+ };
161
+ return freezeTranscript(subject);
162
+ }
163
+ function asyncDisposableTranscript(transcript, asyncDispose) {
164
+ const subject = {
165
+ [asyncDisposeSymbol]: asyncDispose,
166
+ asyncDispose,
167
+ get entries() {
168
+ return transcript.entries;
169
+ },
170
+ get entryCount() {
171
+ return transcript.entryCount;
172
+ },
173
+ get firstEntry() {
174
+ return transcript.firstEntry;
175
+ },
176
+ get lastEntry() {
177
+ return transcript.lastEntry;
178
+ },
179
+ nthEntry(index) {
180
+ return transcript.nthEntry(index);
181
+ },
182
+ record(...entry) {
183
+ transcript.record(...entry);
184
+ },
185
+ reset() {
186
+ transcript.reset();
187
+ },
188
+ sink(kind) {
189
+ return transcript.sink(kind);
190
+ }
191
+ };
192
+ return freezeTranscript(subject);
193
+ }
194
+ export const createTranscript = createTranscriptBase;
195
+ export function recordSink(subscribe) {
196
+ if (typeof subscribe !== 'function') {
197
+ throw new TypeError('recordSink() requires a subscription factory function.');
198
+ }
199
+ const transcript = createTranscriptBase();
200
+ const cleanup = subscribe(transcript.record);
201
+ if (typeof cleanup !== 'function') {
202
+ throw new TypeError('recordSink() subscription factory must return a cleanup function.');
203
+ }
204
+ let disposed = false;
205
+ const dispose = function disposeTranscriptSink() {
206
+ if (disposed) {
207
+ return;
208
+ }
209
+ disposed = true;
210
+ const result = cleanup();
211
+ if (isPromiseLike(result)) {
212
+ throw new TypeError('recordSink() cleanup returned a promise. Use recordAsyncSink() for async cleanup.');
213
+ }
214
+ };
215
+ return disposableTranscript(transcript, dispose);
216
+ }
217
+ export function recordAsyncSink(subscribe) {
218
+ if (typeof subscribe !== 'function') {
219
+ throw new TypeError('recordAsyncSink() requires a subscription factory function.');
220
+ }
221
+ const transcript = createTranscriptBase();
222
+ const cleanup = subscribe(transcript.record);
223
+ if (typeof cleanup !== 'function') {
224
+ throw new TypeError('recordAsyncSink() subscription factory must return a cleanup function.');
225
+ }
226
+ let disposed = false;
227
+ const asyncDispose = async function disposeTranscriptSinkAsync() {
228
+ if (disposed) {
229
+ return;
230
+ }
231
+ disposed = true;
232
+ const result = cleanup();
233
+ if (!isPromiseLike(result)) {
234
+ throw new TypeError('recordAsyncSink() cleanup must return a promise. Use recordSink() for sync cleanup.');
235
+ }
236
+ await result;
237
+ };
238
+ return asyncDisposableTranscript(transcript, asyncDispose);
239
+ }
240
+ export const transcriptUsage = Object.freeze({
241
+ contains: defineCompositeAssertion({
242
+ assert(check, transcript, entry) {
243
+ const inspected = inspectTranscript(check, transcript);
244
+ return inspected.valid
245
+ ? transcriptContainsAssertion(check, inspected.entries, entry)
246
+ : inspected.failure;
247
+ },
248
+ formatSummary() {
249
+ return 'Expected transcript to contain entry.';
250
+ },
251
+ name: 'transcriptUsage.contains'
252
+ }),
253
+ empty: defineCompositeAssertion({
254
+ assert(check, transcript) {
255
+ const inspected = inspectTranscript(check, transcript);
256
+ return inspected.valid
257
+ ? check.annotated('transcript entry count').equal(inspected.entries.length, 0)
258
+ : inspected.failure;
259
+ },
260
+ formatSummary() {
261
+ return 'Expected transcript to be empty.';
262
+ },
263
+ name: 'transcriptUsage.empty'
264
+ }),
265
+ exactly: defineCompositeAssertion({
266
+ assert(check, transcript, entries) {
267
+ const inspected = inspectTranscript(check, transcript);
268
+ return inspected.valid
269
+ ? check.annotated('transcript entries').deepEqual(inspected.entries, entries)
270
+ : inspected.failure;
271
+ },
272
+ formatSummary() {
273
+ return 'Expected transcript entries to match exactly.';
274
+ },
275
+ name: 'transcriptUsage.exactly'
276
+ }),
277
+ inOrder: defineCompositeAssertion({
278
+ assert(check, transcript, entries) {
279
+ const inspected = inspectTranscript(check, transcript);
280
+ return inspected.valid
281
+ ? transcriptInOrderAssertion(check, inspected.entries, entries)
282
+ : inspected.failure;
283
+ },
284
+ formatSummary() {
285
+ return 'Expected transcript to contain entries in order.';
286
+ },
287
+ name: 'transcriptUsage.inOrder'
288
+ }),
289
+ startsWith: defineCompositeAssertion({
290
+ assert(check, transcript, entries) {
291
+ const inspected = inspectTranscript(check, transcript);
292
+ return inspected.valid
293
+ ? transcriptStartsWithAssertion(check, inspected.entries, entries)
294
+ : inspected.failure;
295
+ },
296
+ formatSummary() {
297
+ return 'Expected transcript to start with entries.';
298
+ },
299
+ name: 'transcriptUsage.startsWith'
300
+ })
301
+ });
302
+ //# sourceMappingURL=interaction-transcript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction-transcript.js","sourceRoot":"","sources":["../../../../../source/packages/test/interaction-transcript.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export { createBriefReporter } from '@overkill-dev/reporter-brief';
3
3
  export type { BriefReporterSinks } from '@overkill-dev/reporter-brief';
4
4
  export { createDotReporter } from '@overkill-dev/reporter-dot';
5
5
  export { createLineReporter } from '@overkill-dev/reporter-line';
6
+ export type { LineReporterOptions } from '@overkill-dev/reporter-line';
6
7
  //# sourceMappingURL=reporters.entry-point.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reporters.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/test/reporters.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EACpC,MAAM,8CAAiF,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAAiD,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAAiD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA6C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA+C,CAAC"}
1
+ {"version":3,"file":"reporters.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/test/reporters.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EACpC,MAAM,8CAAiF,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAAiD,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAAiD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA6C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA+C,CAAC;AACnF,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA+C,CAAC"}