@overkill-dev/doubles 0.0.1 → 0.0.2

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 (178) hide show
  1. package/LICENSE +21 -0
  2. package/assert/assertion-extension.d.ts +65 -0
  3. package/assert/assertion-extension.d.ts.map +1 -0
  4. package/assert/assertion-extension.js +250 -0
  5. package/assert/assertion-extension.js.map +1 -0
  6. package/assertion-protocol/assertion-evaluation.d.ts +13 -0
  7. package/assertion-protocol/assertion-evaluation.d.ts.map +1 -0
  8. package/assertion-protocol/assertion-node-shape.d.ts +71 -0
  9. package/assertion-protocol/assertion-node-shape.d.ts.map +1 -0
  10. package/assertion-protocol/assertion-node.d.ts +97 -0
  11. package/assertion-protocol/assertion-node.d.ts.map +1 -0
  12. package/assertion-protocol/assertion-reference.d.ts +73 -0
  13. package/assertion-protocol/assertion-reference.d.ts.map +1 -0
  14. package/assertion-protocol/assertion-reference.js +49 -0
  15. package/assertion-protocol/assertion-reference.js.map +1 -0
  16. package/assertion-protocol/assertions/boolean.d.ts +11 -0
  17. package/assertion-protocol/assertions/boolean.d.ts.map +1 -0
  18. package/assertion-protocol/assertions/collection.d.ts +22 -0
  19. package/assertion-protocol/assertions/collection.d.ts.map +1 -0
  20. package/assertion-protocol/assertions/equality.d.ts +17 -0
  21. package/assertion-protocol/assertions/equality.d.ts.map +1 -0
  22. package/assertion-protocol/assertions/fail.d.ts +13 -0
  23. package/assertion-protocol/assertions/fail.d.ts.map +1 -0
  24. package/assertion-protocol/assertions/numeric.d.ts +29 -0
  25. package/assertion-protocol/assertions/numeric.d.ts.map +1 -0
  26. package/assertion-protocol/assertions/partial.d.ts +14 -0
  27. package/assertion-protocol/assertions/partial.d.ts.map +1 -0
  28. package/assertion-protocol/assertions/presence.d.ts +17 -0
  29. package/assertion-protocol/assertions/presence.d.ts.map +1 -0
  30. package/assertion-protocol/assertions/string.d.ts +28 -0
  31. package/assertion-protocol/assertions/string.d.ts.map +1 -0
  32. package/assertion-protocol/assertions/type-shape.d.ts +42 -0
  33. package/assertion-protocol/assertions/type-shape.d.ts.map +1 -0
  34. package/assertion-protocol/thrown-error-record.d.ts +8 -0
  35. package/assertion-protocol/thrown-error-record.d.ts.map +1 -0
  36. package/assertion-protocol/thrown-error-record.js +17 -0
  37. package/assertion-protocol/thrown-error-record.js.map +1 -0
  38. package/assertion-protocol/thrown-matcher.d.ts +51 -0
  39. package/assertion-protocol/thrown-matcher.d.ts.map +1 -0
  40. package/assertion-protocol/thrown-matcher.js +186 -0
  41. package/assertion-protocol/thrown-matcher.js.map +1 -0
  42. package/compare/comparison-result.d.ts +25 -0
  43. package/compare/comparison-result.d.ts.map +1 -0
  44. package/compare/comparison-state.d.ts +7 -0
  45. package/compare/comparison-state.d.ts.map +1 -0
  46. package/compare/comparison-state.js +20 -0
  47. package/compare/comparison-state.js.map +1 -0
  48. package/compare/comparison.d.ts +12 -0
  49. package/compare/comparison.d.ts.map +1 -0
  50. package/compare/raw-comparison.d.ts +24 -0
  51. package/compare/raw-comparison.d.ts.map +1 -0
  52. package/compare/raw-comparison.js +285 -0
  53. package/compare/raw-comparison.js.map +1 -0
  54. package/compare/serialized-value-shape.d.ts +143 -0
  55. package/compare/serialized-value-shape.d.ts.map +1 -0
  56. package/compare/serialized-value.d.ts +11 -0
  57. package/compare/serialized-value.d.ts.map +1 -0
  58. package/compare/value-classification.d.ts +26 -0
  59. package/compare/value-classification.d.ts.map +1 -0
  60. package/compare/value-classification.js +110 -0
  61. package/compare/value-classification.js.map +1 -0
  62. package/diff/diff-shape.d.ts +117 -0
  63. package/diff/diff-shape.d.ts.map +1 -0
  64. package/doubles/disposal-symbol.d.ts +3 -0
  65. package/doubles/disposal-symbol.d.ts.map +1 -0
  66. package/doubles/disposal-symbol.js +10 -0
  67. package/doubles/disposal-symbol.js.map +1 -0
  68. package/doubles/double-behavior.d.ts +106 -0
  69. package/doubles/double-behavior.d.ts.map +1 -0
  70. package/doubles/double-behavior.js +257 -0
  71. package/doubles/double-behavior.js.map +1 -0
  72. package/doubles/double-chronology.d.ts +21 -0
  73. package/doubles/double-chronology.d.ts.map +1 -0
  74. package/doubles/double-chronology.js +78 -0
  75. package/doubles/double-chronology.js.map +1 -0
  76. package/doubles/double-history-api.d.ts +33 -0
  77. package/doubles/double-history-api.d.ts.map +1 -0
  78. package/doubles/double-history-api.js +125 -0
  79. package/doubles/double-history-api.js.map +1 -0
  80. package/doubles/double-history-record.d.ts +82 -0
  81. package/doubles/double-history-record.d.ts.map +1 -0
  82. package/doubles/double-history-record.js +65 -0
  83. package/doubles/double-history-record.js.map +1 -0
  84. package/doubles/double-history-store.d.ts +21 -0
  85. package/doubles/double-history-store.d.ts.map +1 -0
  86. package/doubles/double-history-store.js +118 -0
  87. package/doubles/double-history-store.js.map +1 -0
  88. package/doubles/double-history.d.ts +141 -0
  89. package/doubles/double-history.d.ts.map +1 -0
  90. package/doubles/double-history.js +32 -0
  91. package/doubles/double-history.js.map +1 -0
  92. package/doubles/double-iterator-event-types.d.ts +25 -0
  93. package/doubles/double-iterator-event-types.d.ts.map +1 -0
  94. package/doubles/double-iterator-tracking.d.ts +12 -0
  95. package/doubles/double-iterator-tracking.d.ts.map +1 -0
  96. package/doubles/double-iterator-tracking.js +161 -0
  97. package/doubles/double-iterator-tracking.js.map +1 -0
  98. package/doubles/double-rule-arguments.d.ts +18 -0
  99. package/doubles/double-rule-arguments.d.ts.map +1 -0
  100. package/doubles/double-rule-callback.d.ts +40 -0
  101. package/doubles/double-rule-callback.d.ts.map +1 -0
  102. package/doubles/double-rule-callback.js +84 -0
  103. package/doubles/double-rule-callback.js.map +1 -0
  104. package/doubles/double-rule-generator.d.ts +108 -0
  105. package/doubles/double-rule-generator.d.ts.map +1 -0
  106. package/doubles/double-rule-generator.js +37 -0
  107. package/doubles/double-rule-generator.js.map +1 -0
  108. package/doubles/double-rule-types.d.ts +162 -0
  109. package/doubles/double-rule-types.d.ts.map +1 -0
  110. package/doubles/double-rule.d.ts +3 -0
  111. package/doubles/double-rule.d.ts.map +1 -0
  112. package/doubles/double-rule.js +113 -0
  113. package/doubles/double-rule.js.map +1 -0
  114. package/doubles/double-runtime.d.ts +9 -0
  115. package/doubles/double-runtime.d.ts.map +1 -0
  116. package/doubles/double-runtime.js +173 -0
  117. package/doubles/double-runtime.js.map +1 -0
  118. package/doubles/double-signature.d.ts +5 -0
  119. package/doubles/double-signature.d.ts.map +1 -0
  120. package/doubles/double-usage-argument-assertion.d.ts +27 -0
  121. package/doubles/double-usage-argument-assertion.d.ts.map +1 -0
  122. package/doubles/double-usage-argument-assertion.js +202 -0
  123. package/doubles/double-usage-argument-assertion.js.map +1 -0
  124. package/doubles/double-usage-contract.d.ts +29 -0
  125. package/doubles/double-usage-contract.d.ts.map +1 -0
  126. package/doubles/double-usage-contract.js +11 -0
  127. package/doubles/double-usage-contract.js.map +1 -0
  128. package/doubles/double-usage-count-assertion.d.ts +6 -0
  129. package/doubles/double-usage-count-assertion.d.ts.map +1 -0
  130. package/doubles/double-usage-count-assertion.js +73 -0
  131. package/doubles/double-usage-count-assertion.js.map +1 -0
  132. package/doubles/double-usage-disposal-assertion.d.ts +7 -0
  133. package/doubles/double-usage-disposal-assertion.d.ts.map +1 -0
  134. package/doubles/double-usage-disposal-assertion.js +175 -0
  135. package/doubles/double-usage-disposal-assertion.js.map +1 -0
  136. package/doubles/double-usage-inspection.d.ts +22 -0
  137. package/doubles/double-usage-inspection.d.ts.map +1 -0
  138. package/doubles/double-usage-inspection.js +59 -0
  139. package/doubles/double-usage-inspection.js.map +1 -0
  140. package/doubles/double-usage-iterator-assertion.d.ts +7 -0
  141. package/doubles/double-usage-iterator-assertion.d.ts.map +1 -0
  142. package/doubles/double-usage-iterator-assertion.js +124 -0
  143. package/doubles/double-usage-iterator-assertion.js.map +1 -0
  144. package/doubles/double-usage-order-assertion.d.ts +3 -0
  145. package/doubles/double-usage-order-assertion.d.ts.map +1 -0
  146. package/doubles/double-usage-order-assertion.js +91 -0
  147. package/doubles/double-usage-order-assertion.js.map +1 -0
  148. package/doubles/double-usage.d.ts +81 -0
  149. package/doubles/double-usage.d.ts.map +1 -0
  150. package/doubles/double-usage.js +228 -0
  151. package/doubles/double-usage.js.map +1 -0
  152. package/doubles/protocol-disposable-double.d.ts +16 -0
  153. package/doubles/protocol-disposable-double.d.ts.map +1 -0
  154. package/doubles/protocol-disposable-double.js +37 -0
  155. package/doubles/protocol-disposable-double.js.map +1 -0
  156. package/doubles/protocol-double-metadata.d.ts +15 -0
  157. package/doubles/protocol-double-metadata.d.ts.map +1 -0
  158. package/doubles/protocol-double-metadata.js +30 -0
  159. package/doubles/protocol-double-metadata.js.map +1 -0
  160. package/doubles/protocol-double.d.ts +50 -0
  161. package/doubles/protocol-double.d.ts.map +1 -0
  162. package/doubles/protocol-double.js +76 -0
  163. package/doubles/protocol-double.js.map +1 -0
  164. package/doubles/protocol-iterator-double.d.ts +93 -0
  165. package/doubles/protocol-iterator-double.d.ts.map +1 -0
  166. package/doubles/protocol-iterator-double.js +512 -0
  167. package/doubles/protocol-iterator-double.js.map +1 -0
  168. package/doubles/test-double.d.ts +62 -0
  169. package/doubles/test-double.d.ts.map +1 -0
  170. package/doubles/test-double.js +192 -0
  171. package/doubles/test-double.js.map +1 -0
  172. package/package.json +36 -6
  173. package/packages/doubles/doubles.entry-point.d.ts +13 -0
  174. package/packages/doubles/doubles.entry-point.d.ts.map +1 -0
  175. package/packages/doubles/doubles.entry-point.js +5 -0
  176. package/packages/doubles/doubles.entry-point.js.map +1 -0
  177. package/readme.md +423 -5
  178. package/sbom.cdx.json +30 -0
@@ -0,0 +1,62 @@
1
+ import { type CallableSignature, type ConstructorSignature, type DoubleInvocation, type UnknownFunction } from './double-behavior.ts';
2
+ import type { DoubleHistory as HistoryForDouble } from './double-history.ts';
3
+ import type { AsyncGeneratorSignature, AsyncReturnArguments, AsyncSourceFactory, AsyncYieldValue, SyncGeneratorSignature, SyncReturnArguments, SyncSourceFactory, SyncYieldValue } from './double-rule-generator.ts';
4
+ import type { ConstructInstance, ConstructSignature, DoubleRuleFor, FallbackFor, ResolvedSignature, ResolvedValue, ReturnArguments, ReturnSignature } from './double-rule-types.ts';
5
+ import type { CallArguments, CallReturn, ConstructionArguments, ConstructionInstance } from './double-signature.ts';
6
+ type CallableInvocationFor<Signature> = [Signature] extends [CallableSignature] ? DoubleInvocation<CallArguments<Signature>> : never;
7
+ type ConstructionInvocationFor<Signature> = [Signature] extends [ConstructorSignature] ? DoubleInvocation<ConstructionArguments<Signature>> : never;
8
+ type InvocationFor<Signature> = CallableInvocationFor<Signature> | ConstructionInvocationFor<Signature>;
9
+ type AnswerReturn<Signature> = CallReturn<Signature> | ConstructionInstance<Signature>;
10
+ type RuleConfiguration<Signature> = {
11
+ readonly rules?: readonly DoubleRuleFor<Signature>[];
12
+ };
13
+ type AnswerConfiguration<Signature> = RuleConfiguration<Signature> & {
14
+ readonly answer: (invocation: InvocationFor<Signature>) => AnswerReturn<Signature>;
15
+ readonly fallback?: never;
16
+ };
17
+ type FallbackConfiguration<Signature> = RuleConfiguration<Signature> & {
18
+ readonly answer?: never;
19
+ readonly fallback?: FallbackFor<Signature>;
20
+ };
21
+ export type TestDoubleConfiguration<Signature> = AnswerConfiguration<Signature> | FallbackConfiguration<Signature>;
22
+ export type DoubleHistory<Signature> = HistoryForDouble<Signature>;
23
+ export type TestDouble<Signature> = DoubleHistory<Signature> & Signature;
24
+ export type TestDoubleFactory = {
25
+ <Signature extends CallableSignature | ConstructorSignature = UnknownFunction<unknown>>(...configuration: Signature extends ConstructorSignature ? readonly [TestDoubleConfiguration<Signature>] : readonly [] | readonly [TestDoubleConfiguration<Signature>]): TestDouble<Signature>;
26
+ readonly constructs: <SignatureOrInstance>(instance: ConstructInstance<SignatureOrInstance>) => TestDouble<ConstructSignature<SignatureOrInstance>>;
27
+ readonly rejects: {
28
+ (reason: unknown): TestDouble<UnknownFunction<Promise<never>>>;
29
+ <Signature extends CallableSignature>(reason: ReturnType<Signature> extends Promise<unknown> ? unknown : never): TestDouble<Signature>;
30
+ };
31
+ readonly resolves: <SignatureOrValue>(value: ResolvedValue<SignatureOrValue>) => TestDouble<ResolvedSignature<SignatureOrValue>>;
32
+ readonly returns: <SignatureOrValue>(...value: ReturnArguments<SignatureOrValue>) => TestDouble<ReturnSignature<SignatureOrValue>>;
33
+ readonly throws: {
34
+ (thrown: unknown): TestDouble<UnknownFunction<never>>;
35
+ <Signature extends CallableSignature>(thrown: ReturnType<Signature> extends Promise<unknown> ? never : unknown): TestDouble<Signature>;
36
+ };
37
+ readonly yields: {
38
+ <YieldValue>(values: readonly YieldValue[]): TestDouble<UnknownFunction<Generator<YieldValue, undefined, unknown>>>;
39
+ <YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): TestDouble<UnknownFunction<Generator<YieldValue, ReturnValue, unknown>>>;
40
+ <Signature extends CallableSignature>(values: readonly SyncYieldValue<ReturnType<SyncGeneratorSignature<Signature>>>[], ...returnValue: SyncReturnArguments<ReturnType<SyncGeneratorSignature<Signature>>>): TestDouble<SyncGeneratorSignature<Signature>>;
41
+ };
42
+ readonly yieldsAsync: {
43
+ <YieldValue>(values: readonly YieldValue[]): TestDouble<UnknownFunction<AsyncGenerator<YieldValue, undefined, unknown>>>;
44
+ <YieldValue, ReturnValue>(values: readonly YieldValue[], returnValue: ReturnValue): TestDouble<UnknownFunction<AsyncGenerator<YieldValue, ReturnValue, unknown>>>;
45
+ <Signature extends CallableSignature>(values: readonly AsyncYieldValue<ReturnType<AsyncGeneratorSignature<Signature>>>[], ...returnValue: AsyncReturnArguments<ReturnType<AsyncGeneratorSignature<Signature>>>): TestDouble<AsyncGeneratorSignature<Signature>>;
46
+ };
47
+ readonly yieldsAsyncFrom: {
48
+ <SourceFactory extends (...arguments_: readonly unknown[]) => AsyncIterable<unknown> | Iterable<unknown>>(sourceFactory: SourceFactory): TestDouble<UnknownFunction<ReturnType<SourceFactory>>>;
49
+ <Signature extends CallableSignature>(sourceFactory: AsyncSourceFactory<Signature>): TestDouble<AsyncGeneratorSignature<Signature>>;
50
+ };
51
+ readonly yieldsFrom: {
52
+ <SourceFactory extends (...arguments_: readonly unknown[]) => Iterable<unknown>>(sourceFactory: SourceFactory): TestDouble<UnknownFunction<ReturnType<SourceFactory>>>;
53
+ <Signature extends CallableSignature>(sourceFactory: SyncSourceFactory<Signature>): TestDouble<SyncGeneratorSignature<Signature>>;
54
+ };
55
+ };
56
+ export type TestDoubleScope = {
57
+ readonly testDouble: TestDoubleFactory;
58
+ };
59
+ export declare function createTestDoubleScope(): TestDoubleScope;
60
+ export declare const testDouble: TestDoubleFactory;
61
+ export {};
62
+ //# sourceMappingURL=test-double.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-double.d.ts","sourceRoot":"","sources":["../../../../source/doubles/test-double.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ import { constructsBehavior, ensureConstructorInstance, isRuntimeBehavior, isRuntimeRule, isUnknownFunction, rejectsBehavior, resolvesBehavior, returnsBehavior, throwsBehavior, yieldsAsyncBehavior, yieldsAsyncFromBehavior, yieldsBehavior, yieldsFromBehavior } from "./double-behavior.js";
2
+ import { createChronologyScope } from "./double-chronology.js";
3
+ import { createDouble, modeSet } from "./double-runtime.js";
4
+ function createCallableBehaviorDouble(scope, behavior) {
5
+ return createDouble({
6
+ answer: null,
7
+ fallback: behavior,
8
+ rules: []
9
+ }, scope.chronology, modeSet('call'));
10
+ }
11
+ function createConstructorBehaviorDouble(scope, behavior) {
12
+ const double = createDouble({
13
+ answer: null,
14
+ fallback: behavior,
15
+ rules: []
16
+ }, scope.chronology, modeSet('construction'));
17
+ return double;
18
+ }
19
+ function modesWithBehavior(behavior, modes) {
20
+ const nextModes = new Set(modes);
21
+ if (behavior.mode === 'both') {
22
+ nextModes.add('call');
23
+ nextModes.add('construction');
24
+ return nextModes;
25
+ }
26
+ nextModes.add(behavior.mode);
27
+ return nextModes;
28
+ }
29
+ function modesWithEntry(behavior, mode, modes) {
30
+ if (behavior === undefined) {
31
+ return modes;
32
+ }
33
+ const nextModes = new Set(modes);
34
+ nextModes.add(mode);
35
+ return nextModes;
36
+ }
37
+ function modesWithFallback(fallback, modes) {
38
+ if (fallback === null) {
39
+ return modes;
40
+ }
41
+ if (isRuntimeBehavior(fallback)) {
42
+ return modesWithBehavior(fallback, modes);
43
+ }
44
+ return modesWithEntry(fallback.construction, 'construction', modesWithEntry(fallback.call, 'call', modes));
45
+ }
46
+ function modesWithAnswer(answer, modes) {
47
+ if (answer === null) {
48
+ return modes;
49
+ }
50
+ return modeSet(...modes, 'call', 'construction');
51
+ }
52
+ function supportedModesFromConfiguration(configuration) {
53
+ const ruleModes = new Set(configuration.rules.map(function ruleMode(configuredRule) {
54
+ return configuredRule.criterion.invocationKind;
55
+ }));
56
+ const fallbackModes = modesWithFallback(configuration.fallback, ruleModes);
57
+ const modes = modesWithAnswer(configuration.answer, fallbackModes);
58
+ return modes.size === 0 ? modeSet('call', 'construction') : modes;
59
+ }
60
+ function isRuntimeConfiguration(value) {
61
+ return typeof value === 'object' && value !== null;
62
+ }
63
+ function isFallbackRecord(value) {
64
+ return typeof value === 'object' && value !== null &&
65
+ (Object.hasOwn(value, 'call') || Object.hasOwn(value, 'construction'));
66
+ }
67
+ function runtimeFallbackFrom(value) {
68
+ if (isRuntimeBehavior(value)) {
69
+ return value;
70
+ }
71
+ return isFallbackRecord(value) ? value : null;
72
+ }
73
+ function normalizeRuntimeConfiguration(configuration) {
74
+ return {
75
+ answer: isUnknownFunction(configuration.answer) ? configuration.answer : null,
76
+ fallback: runtimeFallbackFrom(configuration.fallback),
77
+ rules: Array.isArray(configuration.rules) ? configuration.rules.filter(isRuntimeRule) : []
78
+ };
79
+ }
80
+ function createUntypedDoubleFromUnknowns(scope, configuration) {
81
+ if (configuration.length === 0) {
82
+ return createCallableBehaviorDouble(scope, returnsBehavior(undefined));
83
+ }
84
+ if (configuration.length !== 1 || !isRuntimeConfiguration(configuration[0])) {
85
+ throw new TypeError('testDouble() requires a configuration object.');
86
+ }
87
+ const runtimeConfiguration = normalizeRuntimeConfiguration(configuration[0]);
88
+ return createDouble(runtimeConfiguration, scope.chronology, supportedModesFromConfiguration(runtimeConfiguration));
89
+ }
90
+ function createConstructingDouble(scope, instance) {
91
+ ensureConstructorInstance(instance, 'testDouble.constructs()');
92
+ return createConstructorBehaviorDouble(scope, constructsBehavior(instance));
93
+ }
94
+ function createRejectingDouble(scope, reason) {
95
+ return createCallableBehaviorDouble(scope, rejectsBehavior(reason));
96
+ }
97
+ function createResolvingDouble(scope, value) {
98
+ return createCallableBehaviorDouble(scope, resolvesBehavior(value));
99
+ }
100
+ function createThrowingDouble(scope, thrown) {
101
+ return createCallableBehaviorDouble(scope, throwsBehavior(thrown));
102
+ }
103
+ function createYieldingDouble(scope, values, ...returnValue) {
104
+ return createCallableBehaviorDouble(scope, yieldsBehavior(values, returnValue[0]));
105
+ }
106
+ function createYieldingFromDouble(scope, sourceFactory) {
107
+ return createCallableBehaviorDouble(scope, yieldsFromBehavior(sourceFactory));
108
+ }
109
+ function createAsyncYieldingDouble(scope, values, ...returnValue) {
110
+ return createCallableBehaviorDouble(scope, yieldsAsyncBehavior(values, returnValue[0]));
111
+ }
112
+ function createAsyncYieldingFromDouble(scope, sourceFactory) {
113
+ return createCallableBehaviorDouble(scope, yieldsAsyncFromBehavior(sourceFactory));
114
+ }
115
+ function createScopedDoubleFunction(scope) {
116
+ function scopedDouble(...configuration) {
117
+ return createUntypedDoubleFromUnknowns(scope, configuration);
118
+ }
119
+ return scopedDouble;
120
+ }
121
+ function createScopedConstructs(scope) {
122
+ function scopedConstructs(instance) {
123
+ return createConstructingDouble(scope, instance);
124
+ }
125
+ return scopedConstructs;
126
+ }
127
+ function createScopedRejects(scope) {
128
+ function scopedRejects(reason) {
129
+ return createRejectingDouble(scope, reason);
130
+ }
131
+ return scopedRejects;
132
+ }
133
+ function createScopedResolves(scope) {
134
+ function scopedResolves(value) {
135
+ return createResolvingDouble(scope, value);
136
+ }
137
+ return scopedResolves;
138
+ }
139
+ function createScopedReturns(scope) {
140
+ function scopedReturns(...value) {
141
+ return createCallableBehaviorDouble(scope, returnsBehavior(value[0]));
142
+ }
143
+ return scopedReturns;
144
+ }
145
+ function createScopedThrows(scope) {
146
+ function scopedThrows(thrown) {
147
+ return createThrowingDouble(scope, thrown);
148
+ }
149
+ return scopedThrows;
150
+ }
151
+ function createScopedYields(scope) {
152
+ function scopedYields(values, ...returnValue) {
153
+ return createYieldingDouble(scope, values, ...returnValue);
154
+ }
155
+ return scopedYields;
156
+ }
157
+ function createScopedYieldsFrom(scope) {
158
+ function scopedYieldsFrom(sourceFactory) {
159
+ return createYieldingFromDouble(scope, sourceFactory);
160
+ }
161
+ return scopedYieldsFrom;
162
+ }
163
+ function createScopedYieldsAsync(scope) {
164
+ function scopedYieldsAsync(values, ...returnValue) {
165
+ return createAsyncYieldingDouble(scope, values, ...returnValue);
166
+ }
167
+ return scopedYieldsAsync;
168
+ }
169
+ function createScopedYieldsAsyncFrom(scope) {
170
+ function scopedYieldsAsyncFrom(sourceFactory) {
171
+ return createAsyncYieldingFromDouble(scope, sourceFactory);
172
+ }
173
+ return scopedYieldsAsyncFrom;
174
+ }
175
+ export function createTestDoubleScope() {
176
+ const scope = { chronology: createChronologyScope() };
177
+ return {
178
+ testDouble: Object.assign(createScopedDoubleFunction(scope), {
179
+ constructs: createScopedConstructs(scope),
180
+ rejects: createScopedRejects(scope),
181
+ resolves: createScopedResolves(scope),
182
+ returns: createScopedReturns(scope),
183
+ throws: createScopedThrows(scope),
184
+ yields: createScopedYields(scope),
185
+ yieldsAsync: createScopedYieldsAsync(scope),
186
+ yieldsAsyncFrom: createScopedYieldsAsyncFrom(scope),
187
+ yieldsFrom: createScopedYieldsFrom(scope)
188
+ })
189
+ };
190
+ }
191
+ export const testDouble = createTestDoubleScope().testDouble;
192
+ //# sourceMappingURL=test-double.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-double.js","sourceRoot":"","sources":["../../../../source/doubles/test-double.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,37 @@
1
1
  {
2
- "name": "@overkill-dev/doubles",
3
- "version": "0.0.1",
4
- "description": "Placeholder claiming the npm package name \"@overkill-dev/doubles\" so a trusted publisher can be configured. See https://github.com/npm/cli/issues/8544.",
5
- "license": "MIT",
6
- "deprecated": "Placeholder published as a workaround so a Trusted Publisher could be configured. See https://github.com/npm/cli/issues/8544."
7
- }
2
+ "author": "Christian Rackerseder <git@echooff.de>",
3
+ "bugs": {
4
+ "url": "https://github.com/enormora/overkill/issues"
5
+ },
6
+ "description": "Explicit Overkill test doubles.",
7
+ "engines": {
8
+ "node": "^26"
9
+ },
10
+ "exports": {
11
+ ".": {
12
+ "import": "./packages/doubles/doubles.entry-point.js",
13
+ "types": "./packages/doubles/doubles.entry-point.d.ts"
14
+ }
15
+ },
16
+ "homepage": "https://github.com/enormora/overkill#readme",
17
+ "keywords": [
18
+ "tdd",
19
+ "test",
20
+ "tests"
21
+ ],
22
+ "license": "MIT",
23
+ "name": "@overkill-dev/doubles",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/enormora/overkill.git"
27
+ },
28
+ "sideEffects": [
29
+ "./assertion-protocol/assertion-reference.js",
30
+ "./doubles/disposal-symbol.js",
31
+ "./doubles/double-usage.js",
32
+ "./doubles/protocol-double.js",
33
+ "./doubles/test-double.js"
34
+ ],
35
+ "type": "module",
36
+ "version": "0.0.2"
37
+ }
@@ -0,0 +1,13 @@
1
+ export { doubleUsage } from '../../doubles/double-usage.ts';
2
+ export { rule } from '../../doubles/double-rule.ts';
3
+ export { testAsyncDisposable, testAsyncIterable, testAsyncIterator, testDisposable, testIterable, testIterator } from '../../doubles/protocol-double.ts';
4
+ export { testDouble } from '../../doubles/test-double.ts';
5
+ export type { DoubleUsageAssertions } from '../../doubles/double-usage.ts';
6
+ export type { DoubleInvocation } from '../../doubles/double-behavior.ts';
7
+ export type { DoubleCall, DoubleConstruction, DoubleInteraction, DoubleIteratorEvent, DoubleIteratorReturnEvent, DoubleIteratorThrowEvent, DoubleIteratorYieldEvent, DoubleResult, DoubleReturnedResult, DoubleThrownResult } from '../../doubles/double-history-record.ts';
8
+ export type { RuleFactory } from '../../doubles/double-rule-types.ts';
9
+ export type { AsyncDisposableConfiguration, DisposableConfiguration, TestAsyncDisposable, TestDisposable } from '../../doubles/protocol-disposable-double.ts';
10
+ export type { ProtocolMethodConfiguration, TestAsyncDisposableFactory, TestAsyncIterableFactory, TestAsyncIteratorFactory, TestDisposableFactory, TestIterableFactory, TestIteratorFactory } from '../../doubles/protocol-double.ts';
11
+ export type { AsyncIterableConfiguration, AsyncIteratorConfiguration, AsyncIteratorSource, SyncIterableConfiguration, SyncIteratorConfiguration, SyncIteratorSource, TestAsyncIterable, TestAsyncIterator, TestIterable, TestIterator } from '../../doubles/protocol-iterator-double.ts';
12
+ export type { DoubleHistory, TestDouble, TestDoubleFactory } from '../../doubles/test-double.ts';
13
+ //# sourceMappingURL=doubles.entry-point.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubles.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/doubles/doubles.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,YAAY,EACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EACR,gBAAgB,EACnB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACR,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EACrB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACR,WAAW,EACd,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACR,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACjB,MAAM,6CAA6C,CAAC;AACrD,YAAY,EACR,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACR,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACf,MAAM,2CAA2C,CAAC;AACnD,YAAY,EACR,aAAa,EACb,UAAU,EACV,iBAAiB,EACpB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { doubleUsage } from "../../doubles/double-usage.js";
2
+ export { rule } from "../../doubles/double-rule.js";
3
+ export { testAsyncDisposable, testAsyncIterable, testAsyncIterator, testDisposable, testIterable, testIterator } from "../../doubles/protocol-double.js";
4
+ export { testDouble } from "../../doubles/test-double.js";
5
+ //# sourceMappingURL=doubles.entry-point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubles.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/doubles/doubles.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,YAAY,EACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC"}