@codefast/di-testing 0.0.0 → 0.1.1

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 (60) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/discovery/dependency-scanner.d.ts +6 -0
  3. package/dist/discovery/dependency-scanner.d.ts.map +1 -1
  4. package/dist/discovery/dependency-scanner.js +4 -0
  5. package/dist/discovery/dependency-scanner.js.map +1 -1
  6. package/dist/discovery/mock-binder.d.ts +18 -1
  7. package/dist/discovery/mock-binder.d.ts.map +1 -1
  8. package/dist/discovery/mock-binder.js +31 -10
  9. package/dist/discovery/mock-binder.js.map +1 -1
  10. package/dist/errors/errors.d.ts +17 -1
  11. package/dist/errors/errors.d.ts.map +1 -1
  12. package/dist/errors/errors.js +12 -0
  13. package/dist/errors/errors.js.map +1 -1
  14. package/dist/mocking/auto-mock.d.ts +8 -0
  15. package/dist/mocking/auto-mock.d.ts.map +1 -1
  16. package/dist/mocking/auto-mock.js +4 -0
  17. package/dist/mocking/auto-mock.js.map +1 -1
  18. package/dist/mocking/mock-factory.d.ts +6 -0
  19. package/dist/mocking/mock-factory.d.ts.map +1 -1
  20. package/dist/mocking/mock-factory.js +2 -0
  21. package/dist/mocking/mock-factory.js.map +1 -1
  22. package/dist/mocking/spy.d.ts +8 -0
  23. package/dist/mocking/spy.d.ts.map +1 -1
  24. package/dist/mocking/spy.js +2 -0
  25. package/dist/mocking/spy.js.map +1 -1
  26. package/dist/test-bed/bed-builder.d.ts +8 -0
  27. package/dist/test-bed/bed-builder.d.ts.map +1 -1
  28. package/dist/test-bed/bed-builder.js +2 -0
  29. package/dist/test-bed/bed-builder.js.map +1 -1
  30. package/dist/test-bed/sociable-builder.d.ts +4 -0
  31. package/dist/test-bed/sociable-builder.d.ts.map +1 -1
  32. package/dist/test-bed/sociable-builder.js +2 -0
  33. package/dist/test-bed/sociable-builder.js.map +1 -1
  34. package/dist/test-bed/solitary-builder.d.ts +4 -0
  35. package/dist/test-bed/solitary-builder.d.ts.map +1 -1
  36. package/dist/test-bed/solitary-builder.js +2 -0
  37. package/dist/test-bed/solitary-builder.js.map +1 -1
  38. package/dist/test-bed/test-bed.d.ts +4 -0
  39. package/dist/test-bed/test-bed.d.ts.map +1 -1
  40. package/dist/test-bed/test-bed.js +2 -0
  41. package/dist/test-bed/test-bed.js.map +1 -1
  42. package/dist/test-bed/unit-test-bed.d.ts +10 -0
  43. package/dist/test-bed/unit-test-bed.d.ts.map +1 -1
  44. package/dist/test-bed/unit-test-bed.js +4 -0
  45. package/dist/test-bed/unit-test-bed.js.map +1 -1
  46. package/dist/types.d.ts +2 -0
  47. package/dist/types.d.ts.map +1 -1
  48. package/package.json +4 -4
  49. package/src/discovery/dependency-scanner.ts +6 -0
  50. package/src/discovery/mock-binder.ts +45 -10
  51. package/src/errors/errors.ts +17 -1
  52. package/src/mocking/auto-mock.ts +8 -0
  53. package/src/mocking/mock-factory.ts +6 -0
  54. package/src/mocking/spy.ts +8 -0
  55. package/src/test-bed/bed-builder.ts +8 -0
  56. package/src/test-bed/sociable-builder.ts +4 -0
  57. package/src/test-bed/solitary-builder.ts +4 -0
  58. package/src/test-bed/test-bed.ts +4 -0
  59. package/src/test-bed/unit-test-bed.ts +10 -0
  60. package/src/types.ts +2 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,27 @@
1
+ # @codefast/di-testing
2
+
3
+ ## 0.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#774](https://github.com/codefastlabs/codefast/pull/774) [`176e95a`](https://github.com/codefastlabs/codefast/commit/176e95a32b44fa16d81a22e4a48f53176837c839) Thanks [@thevuong](https://github.com/thevuong)! - Fold di's reserved `slotName` criterion into slot addressing, so `{ name: "x" }` and `{ tag: slotName.of("x") }` — one
8
+ slot to the container — are one slot to TestBed too: a mock registered with either spelling now matches a dependency
9
+ declared with the other, and `mocks.get(token, options)` accepts both.
10
+ - Updated dependencies [[`96af502`](https://github.com/codefastlabs/codefast/commit/96af502ed8dd7fc02c4440d03b40dc6677b7bcec)]:
11
+ - @codefast/di@0.8.0
12
+
13
+ ## 0.1.0
14
+
15
+ ### Minor Changes
16
+
17
+ - [#771](https://github.com/codefastlabs/codefast/pull/771) [`33c19b7`](https://github.com/codefastlabs/codefast/commit/33c19b73bf97dfe4388124f139552a3d63fcd87b) Thanks [@thevuong](https://github.com/thevuong)! - Add `@codefast/di-testing`: solitary and sociable auto-mocking test beds for `@codefast/di`. `TestBed.solitary(Class)`
18
+ reads a class's declared dependencies through di's `MetadataReader`, builds a mock for each, and constructs the real
19
+ unit through a container so `@postConstruct`, accessor injection, and `@preDestroy` run as in production. The default
20
+ mock is a zero-dependency spy; pass `mockFactory: () => vi.fn()` to build the mocks from Vitest, Jest, or Sinon — the
21
+ factory's return type flows through the bed, so each backend's own mock API type-checks on `mocks.get(...)` and inside
22
+ `.stub` callbacks with no adapter packages. Overrides cover fixed sealed values (`.using`), partial stubs (`.stub`),
23
+ absent optionals (`.absent`), `injectAll` element lists (`.usingAll`), and slot-targeted mocks
24
+ (`.mock(token, { name })`); beds expose `resetMocks()` and `await using` disposal.
25
+ `TestBed.sociable(Class).expose(Collaborator)` keeps chosen class-keyed collaborators real (recursively, lifecycle
26
+ included) while token-keyed dependencies stay mocked as the declared boundary; `bed.exposed(Class)` retrieves the real
27
+ instances.
@@ -6,11 +6,15 @@ import type { Constructor, DependencySlot, MetadataReader } from "@codefast/di";
6
6
  * @remarks Mirrors di's own fallback: a class with no constructor metadata is fine as long as its
7
7
  * constructor takes no parameters, which keeps zero-arg and accessor-only classes testable without
8
8
  * `@injectable`. A parameterful constructor with no metadata is a {@link NotInjectableError}.
9
+ *
10
+ * @since 0.1.0
9
11
  */
10
12
  export declare function scanDependencies(target: Constructor, reader: MetadataReader): ReadonlyArray<DependencySlot>;
11
13
  /**
12
14
  * What a sociable scan finds: the slots to mock, the exposed classes the unit actually reaches, and
13
15
  * the constrained slots those classes are injected through.
16
+ *
17
+ * @since 0.1.0
14
18
  */
15
19
  export interface SociableScan {
16
20
  readonly mockSlots: ReadonlyArray<DependencySlot>;
@@ -24,6 +28,8 @@ export interface SociableScan {
24
28
  *
25
29
  * @remarks Class identity is what exposure follows — a `Token`-keyed dependency is always mocked,
26
30
  * treating tokens as the declared boundary between the logic under test and the outside world.
31
+ *
32
+ * @since 0.1.0
27
33
  */
28
34
  export declare function scanSociableDependencies(target: Constructor, exposed: ReadonlySet<Constructor>, reader: MetadataReader): SociableScan;
29
35
  //# sourceMappingURL=dependency-scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-scanner.d.ts","sourceRoot":"","sources":["../../src/discovery/dependency-scanner.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAExF,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAIhF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,CAS3G;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC/C,gGAAgG;IAChG,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACnD;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,EACjC,MAAM,EAAE,cAAc,GACrB,YAAY,CA2Bd"}
1
+ {"version":3,"file":"dependency-scanner.d.ts","sourceRoot":"","sources":["../../src/discovery/dependency-scanner.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAExF,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAIhF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,CAS3G;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC/C,gGAAgG;IAChG,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,EACjC,MAAM,EAAE,cAAc,GACrB,YAAY,CA2Bd"}
@@ -6,6 +6,8 @@ import { NotInjectableError } from "#/errors/errors";
6
6
  * @remarks Mirrors di's own fallback: a class with no constructor metadata is fine as long as its
7
7
  * constructor takes no parameters, which keeps zero-arg and accessor-only classes testable without
8
8
  * `@injectable`. A parameterful constructor with no metadata is a {@link NotInjectableError}.
9
+ *
10
+ * @since 0.1.0
9
11
  */
10
12
  export function scanDependencies(target, reader) {
11
13
  const constructorMetadata = reader.getConstructorMetadata(target);
@@ -21,6 +23,8 @@ export function scanDependencies(target, reader) {
21
23
  *
22
24
  * @remarks Class identity is what exposure follows — a `Token`-keyed dependency is always mocked,
23
25
  * treating tokens as the declared boundary between the logic under test and the outside world.
26
+ *
27
+ * @since 0.1.0
24
28
  */
25
29
  export function scanSociableDependencies(target, exposed, reader) {
26
30
  const mockSlots = [];
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-scanner.js","sourceRoot":"","sources":["../../src/discovery/dependency-scanner.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAIxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB,EAAE,MAAsB;IAC1E,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClE,IAAI,mBAAmB,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACvG,CAAC;AAaD;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAmB,EACnB,OAAiC,EACjC,MAAsB;IAEtB,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAe,CAAC;IAC3C,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAuB,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACnB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"dependency-scanner.js","sourceRoot":"","sources":["../../src/discovery/dependency-scanner.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAIxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB,EAAE,MAAsB;IAC1E,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClE,IAAI,mBAAmB,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACvG,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAmB,EACnB,OAAiC,EACjC,MAAsB;IAEtB,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAe,CAAC;IAC3C,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAuB,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACnB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC/C,CAAC"}
@@ -6,6 +6,8 @@ import type { MockFactory } from "#/mocking/mock-factory";
6
6
  *
7
7
  * @remarks A stub's `setup` runs once per compile, so two beds built from one builder never share
8
8
  * seeded spies.
9
+ *
10
+ * @since 0.1.0
9
11
  */
10
12
  export type MockOverride = {
11
13
  readonly kind: "stub";
@@ -21,6 +23,8 @@ export type MockOverride = {
21
23
  };
22
24
  /**
23
25
  * Normalized slot criteria an override or a `mocks.get` lookup addresses one binding slot with.
26
+ *
27
+ * @since 0.1.0
24
28
  */
25
29
  export interface SlotCriteria {
26
30
  readonly name: string | undefined;
@@ -29,6 +33,8 @@ export interface SlotCriteria {
29
33
  /**
30
34
  * One override registration: how a dependency is supplied, and which slot it targets (none = every
31
35
  * slot of the token that has no more specific override).
36
+ *
37
+ * @since 0.1.0
32
38
  */
33
39
  export interface SlottedOverride {
34
40
  readonly criteria: SlotCriteria | undefined;
@@ -36,10 +42,14 @@ export interface SlottedOverride {
36
42
  }
37
43
  /**
38
44
  * What one bound entry was supplied with — only `auto` and `stub` entries carry a mock surface.
45
+ *
46
+ * @since 0.1.0
39
47
  */
40
48
  export type BoundMockKind = "auto" | "stub" | "value" | "absent" | "all" | "exposed";
41
49
  /**
42
50
  * One bound value `mocks` can look up: its slot criteria, the value, and how it was supplied.
51
+ *
52
+ * @since 0.1.0
43
53
  */
44
54
  export interface BoundMock {
45
55
  readonly criteria: SlotCriteria | undefined;
@@ -50,11 +60,16 @@ export interface BoundMock {
50
60
  * Folds an `InjectOptions` into slot criteria, or `undefined` when it names no criterion.
51
61
  *
52
62
  * @remarks Tags are copied and deduplicated by identity — di interns each `(key, value)` pair, so a
53
- * repeated pair is the same object.
63
+ * repeated pair is the same object. A reserved `slotName` criterion folds into `name`, so both
64
+ * spellings address one slot.
65
+ *
66
+ * @since 0.1.0
54
67
  */
55
68
  export declare function normalizeCriteria(options: InjectOptions | undefined): SlotCriteria | undefined;
56
69
  /**
57
70
  * Returns whether two criteria address the same slot — equal name and the same tag set.
71
+ *
72
+ * @since 0.1.0
58
73
  */
59
74
  export declare function criteriaEquals(left: SlotCriteria, right: SlotCriteria): boolean;
60
75
  /**
@@ -66,6 +81,8 @@ export declare function criteriaEquals(left: SlotCriteria, right: SlotCriteria):
66
81
  * An override that matches nothing is an {@link UndeclaredDependencyError}; `.absent()` on a
67
82
  * required slot or `.usingAll()` with no unconstrained `injectAll()` slot is an
68
83
  * {@link OverrideMismatchError}.
84
+ *
85
+ * @since 0.1.0
69
86
  */
70
87
  export declare function bindMocks(container: Container, dependencies: ReadonlyArray<DependencySlot>, overrides: ReadonlyMap<DependencyKey, ReadonlyArray<SlottedOverride>>, mockFactory: MockFactory, exposed?: ReadonlySet<Constructor>): ReadonlyMap<DependencyKey, ReadonlyArray<BoundMock>>;
71
88
  //# sourceMappingURL=mock-binder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-binder.d.ts","sourceRoot":"","sources":["../../src/discovery/mock-binder.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMrH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAKD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAU9F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAE/E;AAgDD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,EAC3C,SAAS,EAAE,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,EACrE,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GACjC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CA4ItD"}
1
+ {"version":3,"file":"mock-binder.d.ts","sourceRoot":"","sources":["../../src/discovery/mock-binder.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMrH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAEtE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAErF;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAU9F;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAE/E;AAiDD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,EAC3C,SAAS,EAAE,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,EACrE,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GACjC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CA4ItD"}
@@ -1,28 +1,46 @@
1
1
  /** Binds a unit's discovered dependencies onto a container as mocks — the sole container coupling. */
2
- import { tokenName } from "@codefast/di";
2
+ import { slotName, tokenName } from "@codefast/di";
3
3
  import { OverrideMismatchError, UndeclaredDependencyError } from "#/errors/errors";
4
4
  import { createAutoMock } from "#/mocking/auto-mock";
5
5
  /** The name prefix `usingAll` elements are bound under, so identical constants keep distinct slots. */
6
6
  const ALL_ELEMENT_SLOT_PREFIX = "di-testing:all:";
7
+ /**
8
+ * One name and plain tag set, with di's reserved criterion folded into the name.
9
+ *
10
+ * @remarks di treats `{name: "x"}` and `{tag: slotName.of("x")}` as one slot, so addressing here
11
+ * must too — mirroring `bindingSlotToResolveOptions` in di.
12
+ */
13
+ function foldReservedName(name, tags) {
14
+ const reserved = tags.find((tag) => tag.key === slotName);
15
+ if (reserved === undefined) {
16
+ return { name, tags };
17
+ }
18
+ return { name: name ?? reserved.value, tags: tags.filter((tag) => tag.key !== slotName) };
19
+ }
7
20
  /**
8
21
  * Folds an `InjectOptions` into slot criteria, or `undefined` when it names no criterion.
9
22
  *
10
23
  * @remarks Tags are copied and deduplicated by identity — di interns each `(key, value)` pair, so a
11
- * repeated pair is the same object.
24
+ * repeated pair is the same object. A reserved `slotName` criterion folds into `name`, so both
25
+ * spellings address one slot.
26
+ *
27
+ * @since 0.1.0
12
28
  */
13
29
  export function normalizeCriteria(options) {
14
30
  if (options === undefined) {
15
31
  return undefined;
16
32
  }
17
- const folded = options.tag === undefined ? (options.tags ?? []) : [options.tag, ...(options.tags ?? [])];
18
- const tags = [...new Set(folded)];
19
- if (options.name === undefined && tags.length === 0) {
33
+ const merged = options.tag === undefined ? (options.tags ?? []) : [options.tag, ...(options.tags ?? [])];
34
+ const { name, tags } = foldReservedName(options.name, [...new Set(merged)]);
35
+ if (name === undefined && tags.length === 0) {
20
36
  return undefined;
21
37
  }
22
- return { name: options.name, tags };
38
+ return { name, tags };
23
39
  }
24
40
  /**
25
41
  * Returns whether two criteria address the same slot — equal name and the same tag set.
42
+ *
43
+ * @since 0.1.0
26
44
  */
27
45
  export function criteriaEquals(left, right) {
28
46
  return left.name === right.name && tagSetEquals(left.tags, right.tags);
@@ -43,15 +61,16 @@ function tagSetEquals(left, right) {
43
61
  }
44
62
  /** Returns the slot's own criteria, or `undefined` for an unconstrained slot. */
45
63
  function criteriaOfSlot(slot) {
46
- const tags = slot.tags ?? [];
47
- if (slot.name === undefined && tags.length === 0) {
64
+ const { name, tags } = foldReservedName(slot.name, slot.tags ?? []);
65
+ if (name === undefined && tags.length === 0) {
48
66
  return undefined;
49
67
  }
50
- return { name: slot.name, tags };
68
+ return { name, tags };
51
69
  }
52
70
  /** Returns whether an override's criteria address exactly this slot. */
53
71
  function matchesSlot(criteria, slot) {
54
- return criteria.name === slot.name && tagSetEquals(criteria.tags, slot.tags ?? []);
72
+ const folded = foldReservedName(slot.name, slot.tags ?? []);
73
+ return criteria.name === folded.name && tagSetEquals(criteria.tags, folded.tags);
55
74
  }
56
75
  /** A readable rendering of criteria for error messages. */
57
76
  function describeCriteria(criteria) {
@@ -77,6 +96,8 @@ function acceptsAll(slot) {
77
96
  * An override that matches nothing is an {@link UndeclaredDependencyError}; `.absent()` on a
78
97
  * required slot or `.usingAll()` with no unconstrained `injectAll()` slot is an
79
98
  * {@link OverrideMismatchError}.
99
+ *
100
+ * @since 0.1.0
80
101
  */
81
102
  export function bindMocks(container, dependencies, overrides, mockFactory, exposed) {
82
103
  if (exposed !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"mock-binder.js","sourceRoot":"","sources":["../../src/discovery/mock-binder.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAGtG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA8CrD,uGAAuG;AACvG,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAkC;IAClE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACzG,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAkB,EAAE,KAAmB;IACpE,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,iGAAiG;AACjG,SAAS,YAAY,CAAC,IAA+B,EAAE,KAAgC;IACrF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AACjF,SAAS,cAAc,CAAC,IAAoB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,wEAAwE;AACxE,SAAS,WAAW,CAAC,QAAsB,EAAE,IAAoB;IAC/D,OAAO,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,2DAA2D;AAC3D,SAAS,gBAAgB,CAAC,QAAsB;IAC9C,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,sGAAsG;AACtG,SAAS,UAAU,CAAC,IAAoB;IACtC,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CACvB,SAAoB,EACpB,YAA2C,EAC3C,SAAqE,EACrE,WAAwB,EACxB,OAAkC;IAElC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,OAAO,GAAG,KAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,qBAAqB,CAC7B,SAAS,CAAC,GAAG,CAAC,EACd,2EAA2E,CAC5E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC5C,0FAA0F;IAC1F,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;IACvD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE3D,MAAM,MAAM,GAAG,CAAC,KAAoB,EAAE,KAAgB,EAAQ,EAAE;QAC9D,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,mFAAmF;QACnF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC3C,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC9D,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YACvC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CACvD,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,IAAoB,EAAE,KAAc,EAAQ,EAAE;QAClE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7C,8FAA8F;QAC9F,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACnG,IAAI,CAAC,IAAI,CACP,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAC3G,CAAC;QAEJ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEvB,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClC,MAAM,IAAI,qBAAqB,CAC7B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EACrB,+FAA+F,CAChG,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC1C,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACtF,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,qBAAqB,CAC7B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EACrB,gGAAgG,CACjG,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACxC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACrC,yFAAyF;oBACzF,0FAA0F;oBAC1F,iFAAiF;oBACjF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC9C,SAAS;6BACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;6BAChB,eAAe,CAAC,KAAK,CAAC;6BACtB,SAAS,CAAC,GAAG,uBAAuB,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC7D,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClF,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QAED,4FAA4F;QAC5F,MAAM,IAAI,GAAG,QAAQ,EAAE,QAAyE,CAAC;QACjG,MAAM,IAAI,GAAkB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpE,IAAI,KAAc,CAAC;QACnB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACzF,CAAC;YACD,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,iFAAiF;YACjF,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACtC,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,yBAAyB,CACjC,SAAS,CAAC,KAAK,CAAC,EAChB,QAAQ,CAAC,QAAQ,KAAK,SAAS;oBAC7B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK;wBAChC,CAAC,CAAC,mCAAmC;wBACrC,CAAC,CAAC,SAAS;oBACb,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2GAA2G;AAC3G,SAAS,SAAS,CAChB,QAAuE,EACvE,WAAwB;IAExB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IACD,qFAAqF;IACrF,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAyB,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"mock-binder.js","sourceRoot":"","sources":["../../src/discovery/mock-binder.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@
4
4
  *
5
5
  * @remarks Mirrors `@codefast/di`'s own `DiError` shape rather than extending it, so a caller can
6
6
  * catch testing-setup failures separately from resolution failures.
7
+ *
8
+ * @since 0.1.0
7
9
  */
8
10
  export declare abstract class TestingError extends Error {
9
11
  abstract readonly code: string;
@@ -11,6 +13,8 @@ export declare abstract class TestingError extends Error {
11
13
  }
12
14
  /**
13
15
  * A scanned class takes constructor parameters but carries no `@injectable` metadata.
16
+ *
17
+ * @since 0.1.0
14
18
  */
15
19
  export declare class NotInjectableError extends TestingError {
16
20
  readonly code = "NOT_INJECTABLE";
@@ -22,19 +26,27 @@ export declare class NotInjectableError extends TestingError {
22
26
  *
23
27
  * @remarks Almost always a typo or a stale token reference; failing loudly beats silently binding an
24
28
  * unused constant or returning `undefined`.
29
+ *
30
+ * @since 0.1.0
25
31
  */
26
32
  export declare class UndeclaredDependencyError extends TestingError {
27
33
  readonly code = "UNDECLARED_DEPENDENCY";
28
34
  readonly tokenName: string;
29
35
  constructor(tokenName: string, detail?: string);
30
36
  }
31
- /** What a sealed entry was supplied with, naming the one cause a lookup error should report. */
37
+ /**
38
+ * What a sealed entry was supplied with, naming the one cause a lookup error should report.
39
+ *
40
+ * @since 0.1.0
41
+ */
32
42
  export type SealedCause = "value" | "absent" | "all" | "exposed";
33
43
  /**
34
44
  * A `mocks.get(...)` lookup asked for a dependency that is not a retrievable mock.
35
45
  *
36
46
  * @remarks `.using()`, `.absent()`, and `.usingAll()` seal the value, and an exposed class is real —
37
47
  * none of them carries a mock surface, so handing them back typed as `Mocked` would lie.
48
+ *
49
+ * @since 0.1.0
38
50
  */
39
51
  export declare class SealedDependencyError extends TestingError {
40
52
  readonly code = "SEALED_DEPENDENCY";
@@ -44,6 +56,8 @@ export declare class SealedDependencyError extends TestingError {
44
56
  /**
45
57
  * An override whose shape does not fit the slot it targets — `.absent()` on a required dependency,
46
58
  * or `.usingAll()` where no unconstrained `injectAll()` slot exists.
59
+ *
60
+ * @since 0.1.0
47
61
  */
48
62
  export declare class OverrideMismatchError extends TestingError {
49
63
  readonly code = "OVERRIDE_MISMATCH";
@@ -53,6 +67,8 @@ export declare class OverrideMismatchError extends TestingError {
53
67
  /**
54
68
  * A sociable bed's exposure could not be honoured — the class is unreachable, already the unit, or
55
69
  * was asked for without having been exposed.
70
+ *
71
+ * @since 0.1.0
56
72
  */
57
73
  export declare class ExposureError extends TestingError {
58
74
  readonly code = "EXPOSURE";
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAEjG;;;;;GAKG;AACH,8BAAsB,YAAa,SAAQ,KAAK;IAC9C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,UAAU,EAAE,MAAM,EAK7B;CACF;AAED;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,YAAY;IACzD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAK7C;CACF;AAED,gGAAgG;AAChG,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AASjE;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAGhD;CACF;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAG5C;CACF;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAG7C;CACF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAEjG;;;;;;;GAOG;AACH,8BAAsB,YAAa,SAAQ,KAAK;IAC9C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,UAAU,EAAE,MAAM,EAK7B;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,yBAA0B,SAAQ,YAAY;IACzD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAK7C;CACF;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AASjE;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAGhD;CACF;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAG5C;CACF;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAG7C;CACF"}
@@ -4,6 +4,8 @@
4
4
  *
5
5
  * @remarks Mirrors `@codefast/di`'s own `DiError` shape rather than extending it, so a caller can
6
6
  * catch testing-setup failures separately from resolution failures.
7
+ *
8
+ * @since 0.1.0
7
9
  */
8
10
  export class TestingError extends Error {
9
11
  constructor(message) {
@@ -13,6 +15,8 @@ export class TestingError extends Error {
13
15
  }
14
16
  /**
15
17
  * A scanned class takes constructor parameters but carries no `@injectable` metadata.
18
+ *
19
+ * @since 0.1.0
16
20
  */
17
21
  export class NotInjectableError extends TestingError {
18
22
  code = "NOT_INJECTABLE";
@@ -27,6 +31,8 @@ export class NotInjectableError extends TestingError {
27
31
  *
28
32
  * @remarks Almost always a typo or a stale token reference; failing loudly beats silently binding an
29
33
  * unused constant or returning `undefined`.
34
+ *
35
+ * @since 0.1.0
30
36
  */
31
37
  export class UndeclaredDependencyError extends TestingError {
32
38
  code = "UNDECLARED_DEPENDENCY";
@@ -47,6 +53,8 @@ const SEALED_MESSAGES = {
47
53
  *
48
54
  * @remarks `.using()`, `.absent()`, and `.usingAll()` seal the value, and an exposed class is real —
49
55
  * none of them carries a mock surface, so handing them back typed as `Mocked` would lie.
56
+ *
57
+ * @since 0.1.0
50
58
  */
51
59
  export class SealedDependencyError extends TestingError {
52
60
  code = "SEALED_DEPENDENCY";
@@ -59,6 +67,8 @@ export class SealedDependencyError extends TestingError {
59
67
  /**
60
68
  * An override whose shape does not fit the slot it targets — `.absent()` on a required dependency,
61
69
  * or `.usingAll()` where no unconstrained `injectAll()` slot exists.
70
+ *
71
+ * @since 0.1.0
62
72
  */
63
73
  export class OverrideMismatchError extends TestingError {
64
74
  code = "OVERRIDE_MISMATCH";
@@ -71,6 +81,8 @@ export class OverrideMismatchError extends TestingError {
71
81
  /**
72
82
  * A sociable bed's exposure could not be honoured — the class is unreachable, already the unit, or
73
83
  * was asked for without having been exposed.
84
+ *
85
+ * @since 0.1.0
74
86
  */
75
87
  export class ExposureError extends TestingError {
76
88
  code = "EXPOSURE";
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAEjG;;;;;GAKG;AACH,MAAM,OAAgB,YAAa,SAAQ,KAAK;IAG9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IACzC,IAAI,GAAG,gBAAgB,CAAC;IACxB,UAAU,CAAS;IAE5B,YAAY,UAAkB;QAC5B,KAAK,CACH,oCAAoC,UAAU,gNAAgN,CAC/P,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,YAAY;IAChD,IAAI,GAAG,uBAAuB,CAAC;IAC/B,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,MAAe;QAC5C,KAAK,CACH,IAAI,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,oJAAoJ,CAChN,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAKD,MAAM,eAAe,GAA0C;IAC7D,KAAK,EAAE,iGAAiG;IACxG,MAAM,EAAE,yEAAyE;IACjF,GAAG,EAAE,qFAAqF;IAC1F,OAAO,EAAE,oFAAoF;CAC9F,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAC5C,IAAI,GAAG,mBAAmB,CAAC;IAC3B,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,KAAkB;QAC/C,KAAK,CAAC,IAAI,SAAS,gCAAgC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAC5C,IAAI,GAAG,mBAAmB,CAAC;IAC3B,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,MAAc;QAC3C,KAAK,CAAC,IAAI,SAAS,MAAM,MAAM,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,YAAY;IACpC,IAAI,GAAG,UAAU,CAAC;IAClB,UAAU,CAAS;IAE5B,YAAY,UAAkB,EAAE,MAAc;QAC5C,KAAK,CAAC,IAAI,UAAU,MAAM,MAAM,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAEjG;;;;;;;GAOG;AACH,MAAM,OAAgB,YAAa,SAAQ,KAAK;IAG9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IACzC,IAAI,GAAG,gBAAgB,CAAC;IACxB,UAAU,CAAS;IAE5B,YAAY,UAAkB;QAC5B,KAAK,CACH,oCAAoC,UAAU,gNAAgN,CAC/P,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,yBAA0B,SAAQ,YAAY;IAChD,IAAI,GAAG,uBAAuB,CAAC;IAC/B,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,MAAe;QAC5C,KAAK,CACH,IAAI,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,oJAAoJ,CAChN,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AASD,MAAM,eAAe,GAA0C;IAC7D,KAAK,EAAE,iGAAiG;IACxG,MAAM,EAAE,yEAAyE;IACjF,GAAG,EAAE,qFAAqF;IAC1F,OAAO,EAAE,oFAAoF;CAC9F,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAC5C,IAAI,GAAG,mBAAmB,CAAC;IAC3B,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,KAAkB;QAC/C,KAAK,CAAC,IAAI,SAAS,gCAAgC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAC5C,IAAI,GAAG,mBAAmB,CAAC;IAC3B,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,MAAc;QAC3C,KAAK,CAAC,IAAI,SAAS,MAAM,MAAM,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,YAAY;IACpC,IAAI,GAAG,UAAU,CAAC;IAClB,UAAU,CAAS;IAE5B,YAAY,UAAkB,EAAE,MAAc;QAC5C,KAAK,CAAC,IAAI,UAAU,MAAM,MAAM,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
@@ -11,6 +11,8 @@ import type { Spy } from "#/mocking/spy";
11
11
  *
12
12
  * @typeParam Dependency - The dependency type being mocked.
13
13
  * @typeParam Backend - The spy type the active mock factory produces.
14
+ *
15
+ * @since 0.1.0
14
16
  */
15
17
  export type Mocked<Dependency, Backend extends MockFunction = Spy> = Dependency extends (...args: infer Args) => infer Return ? [Backend] extends [Spy] ? [Spy] extends [Backend] ? Spy<Args, Return> : Backend & ((...args: Args) => Return) : Backend & ((...args: Args) => Return) : Dependency extends object ? {
16
18
  [Key in keyof Dependency]: Mocked<Dependency[Key], Backend>;
@@ -22,6 +24,8 @@ export type Mocked<Dependency, Backend extends MockFunction = Spy> = Dependency
22
24
  * optional so only the members a test cares about need spelling out.
23
25
  *
24
26
  * @typeParam Dependency - The dependency type being partially stubbed.
27
+ *
28
+ * @since 0.1.0
25
29
  */
26
30
  export type DeepPartial<Dependency> = Dependency extends (...args: Array<never>) => unknown ? Dependency : Dependency extends object ? {
27
31
  [Key in keyof Dependency]?: DeepPartial<Dependency[Key]>;
@@ -29,6 +33,8 @@ export type DeepPartial<Dependency> = Dependency extends (...args: Array<never>)
29
33
  /**
30
34
  * The key an auto-mock answers with its reset routine, clearing the root spy, every materialized
31
35
  * member, and the spies of its seed.
36
+ *
37
+ * @since 0.1.0
32
38
  */
33
39
  export declare const MOCK_RESET: unique symbol;
34
40
  /**
@@ -42,6 +48,8 @@ export declare const MOCK_RESET: unique symbol;
42
48
  *
43
49
  * @typeParam Dependency - The dependency type being mocked.
44
50
  * @typeParam Backend - The spy type the factory produces, threaded into the returned `Mocked` view.
51
+ *
52
+ * @since 0.1.0
45
53
  */
46
54
  export declare function createAutoMock<Dependency, Backend extends MockFunction = Spy>(mockFactory: MockFactory<Backend>, seed?: DeepPartial<Dependency>): Mocked<Dependency, Backend>;
47
55
  //# sourceMappingURL=auto-mock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-mock.d.ts","sourceRoot":"","sources":["../../src/mocking/auto-mock.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,MAAM,CAAC,UAAU,EAAE,OAAO,SAAS,YAAY,GAAG,GAAG,IAAI,UAAU,SAAS,CACtF,GAAG,IAAI,EAAE,MAAM,IAAI,KAChB,MAAM,MAAM,GACb,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GACrB,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GACrB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GACjB,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GACvC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GACvC,UAAU,SAAS,MAAM,GACvB;KAAG,GAAG,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CAAE,GAC/D,UAAU,CAAC;AAEjB;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,CAAC,UAAU,IAAI,UAAU,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,GACvF,UAAU,GACV,UAAU,SAAS,MAAM,GACvB;KAAG,GAAG,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;CAAE,GAC5D,UAAU,CAAC;AAEjB;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,OAAO,MAAwC,CAAC;AAoDzE;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,SAAS,YAAY,GAAG,GAAG,EAC3E,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAC7B,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAyH7B"}
1
+ {"version":3,"file":"auto-mock.d.ts","sourceRoot":"","sources":["../../src/mocking/auto-mock.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,MAAM,CAAC,UAAU,EAAE,OAAO,SAAS,YAAY,GAAG,GAAG,IAAI,UAAU,SAAS,CACtF,GAAG,IAAI,EAAE,MAAM,IAAI,KAChB,MAAM,MAAM,GACb,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GACrB,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GACrB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GACjB,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GACvC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,GACvC,UAAU,SAAS,MAAM,GACvB;KAAG,GAAG,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CAAE,GAC/D,UAAU,CAAC;AAEjB;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,UAAU,IAAI,UAAU,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,GACvF,UAAU,GACV,UAAU,SAAS,MAAM,GACvB;KAAG,GAAG,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;CAAE,GAC5D,UAAU,CAAC;AAEjB;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,OAAO,MAAwC,CAAC;AAoDzE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,SAAS,YAAY,GAAG,GAAG,EAC3E,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAC7B,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAyH7B"}
@@ -2,6 +2,8 @@
2
2
  /**
3
3
  * The key an auto-mock answers with its reset routine, clearing the root spy, every materialized
4
4
  * member, and the spies of its seed.
5
+ *
6
+ * @since 0.1.0
5
7
  */
6
8
  export const MOCK_RESET = Symbol("di-testing:mock-reset");
7
9
  // `then` would make every mock thenable and stall `await`; `toJSON` and `asymmetricMatch` are probed
@@ -59,6 +61,8 @@ function seedProvides(seed, key) {
59
61
  *
60
62
  * @typeParam Dependency - The dependency type being mocked.
61
63
  * @typeParam Backend - The spy type the factory produces, threaded into the returned `Mocked` view.
64
+ *
65
+ * @since 0.1.0
62
66
  */
63
67
  export function createAutoMock(mockFactory, seed) {
64
68
  // A primitive stub has no members to mock — the seed is the dependency's whole value.
@@ -1 +1 @@
1
- {"version":3,"file":"auto-mock.js","sourceRoot":"","sources":["../../src/mocking/auto-mock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-mock.js","sourceRoot":"","sources":["../../src/mocking/auto-mock.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import type { Spy } from "#/mocking/spy";
5
5
  *
6
6
  * @remarks Deliberately structural so any backend qualifies: the built-in {@link Spy}, a Vitest
7
7
  * `vi.fn()`, a `jest.fn()`, or a Sinon stub all satisfy it.
8
+ *
9
+ * @since 0.1.0
8
10
  */
9
11
  export type MockFunction = (...args: ReadonlyArray<unknown>) => unknown;
10
12
  /**
@@ -16,10 +18,14 @@ export type MockFunction = (...args: ReadonlyArray<unknown>) => unknown;
16
18
  * with no adapter package and no module augmentation.
17
19
  *
18
20
  * @typeParam Backend - The spy type one factory call produces; defaults to the loose callable.
21
+ *
22
+ * @since 0.1.0
19
23
  */
20
24
  export type MockFactory<Backend extends MockFunction = MockFunction> = () => Backend;
21
25
  /**
22
26
  * The default `MockFactory` — one built-in {@link Spy} per call, with no test-framework dependency.
27
+ *
28
+ * @since 0.1.0
23
29
  */
24
30
  export declare const defaultMockFactory: MockFactory<Spy>;
25
31
  //# sourceMappingURL=mock-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-factory.d.ts","sourceRoot":"","sources":["../../src/mocking/mock-factory.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGzC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,YAAY,GAAG,YAAY,IAAI,MAAM,OAAO,CAAC;AAErF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,GAAG,CAAqB,CAAC"}
1
+ {"version":3,"file":"mock-factory.d.ts","sourceRoot":"","sources":["../../src/mocking/mock-factory.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGzC;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;AAExE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,YAAY,GAAG,YAAY,IAAI,MAAM,OAAO,CAAC;AAErF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,GAAG,CAAqB,CAAC"}
@@ -2,6 +2,8 @@
2
2
  import { createSpy } from "#/mocking/spy";
3
3
  /**
4
4
  * The default `MockFactory` — one built-in {@link Spy} per call, with no test-framework dependency.
5
+ *
6
+ * @since 0.1.0
5
7
  */
6
8
  export const defaultMockFactory = () => createSpy();
7
9
  //# sourceMappingURL=mock-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-factory.js","sourceRoot":"","sources":["../../src/mocking/mock-factory.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAsB1C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqB,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"mock-factory.js","sourceRoot":"","sources":["../../src/mocking/mock-factory.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA0B1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqB,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC"}
@@ -1,6 +1,8 @@
1
1
  /** The built-in zero-dependency spy the default mock factory hands out. */
2
2
  /**
3
3
  * One recorded invocation's outcome — a returned value or a thrown error.
4
+ *
5
+ * @since 0.1.0
4
6
  */
5
7
  export interface SpyResult {
6
8
  readonly type: "return" | "throw";
@@ -10,6 +12,8 @@ export interface SpyResult {
10
12
  * The call log a spy exposes for assertions.
11
13
  *
12
14
  * @typeParam Args - The spy's argument tuple.
15
+ *
16
+ * @since 0.1.0
13
17
  */
14
18
  export interface SpyState<Args extends ReadonlyArray<unknown>> {
15
19
  readonly calls: ReadonlyArray<Args>;
@@ -20,6 +24,8 @@ export interface SpyState<Args extends ReadonlyArray<unknown>> {
20
24
  *
21
25
  * @remarks `Return` defaults to `any` so a spy drops into any typed method slot, exactly as Vitest's
22
26
  * own mock type does — the package's one deliberate `any`.
27
+ *
28
+ * @since 0.1.0
23
29
  */
24
30
  export interface Spy<Args extends ReadonlyArray<unknown> = ReadonlyArray<unknown>, Return = any> {
25
31
  (...args: Args): Return;
@@ -34,6 +40,8 @@ export interface Spy<Args extends ReadonlyArray<unknown> = ReadonlyArray<unknown
34
40
  }
35
41
  /**
36
42
  * Creates a fresh zero-dependency spy that records its calls and returns `undefined` until configured.
43
+ *
44
+ * @since 0.1.0
37
45
  */
38
46
  export declare function createSpy(): Spy;
39
47
  //# sourceMappingURL=spy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spy.d.ts","sourceRoot":"","sources":["../../src/mocking/spy.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CAC5C;AAGD;;;;;GAKG;AACH,MAAM,WAAW,GAAG,CAAC,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG;IAC7F,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,4DAA4D;IAC5D,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC;IACxD,mFAAmF;IACnF,SAAS,IAAI,IAAI,CAAC;CACnB;AAGD;;GAEG;AACH,wBAAgB,SAAS,IAAI,GAAG,CAwC/B"}
1
+ {"version":3,"file":"spy.d.ts","sourceRoot":"","sources":["../../src/mocking/spy.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CAC5C;AAGD;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAAC,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG;IAC7F,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,4DAA4D;IAC5D,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC;IACxD,mFAAmF;IACnF,SAAS,IAAI,IAAI,CAAC;CACnB;AAGD;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,GAAG,CAwC/B"}
@@ -2,6 +2,8 @@
2
2
  /* oxlint-enable typescript/no-explicit-any */
3
3
  /**
4
4
  * Creates a fresh zero-dependency spy that records its calls and returns `undefined` until configured.
5
+ *
6
+ * @since 0.1.0
5
7
  */
6
8
  export function createSpy() {
7
9
  const calls = [];
@@ -1 +1 @@
1
- {"version":3,"file":"spy.js","sourceRoot":"","sources":["../../src/mocking/spy.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAsC3E,8CAA8C;AAE9C;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,cAA0E,CAAC;IAC/E,IAAI,WAAoB,CAAC;IAEzB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CACvB,CAAC,GAAG,IAA4B,EAAW,EAAE;QAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EACD;QACE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;QACxB,eAAe,CAAC,KAAc;YAC5B,WAAW,GAAG,KAAK,CAAC;YACpB,cAAc,GAAG,SAAS,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,kBAAkB,CAAC,EAAgD;YACjE,cAAc,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,oEAAoE;QACpE,SAAS;YACP,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,cAAc,GAAG,SAAS,CAAC;YAC3B,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;KACF,CACK,CAAC;IAET,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"spy.js","sourceRoot":"","sources":["../../src/mocking/spy.ts"],"names":[],"mappings":"AAAA,2EAA2E;AA4C3E,8CAA8C;AAE9C;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,cAA0E,CAAC;IAC/E,IAAI,WAAoB,CAAC;IAEzB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CACvB,CAAC,GAAG,IAA4B,EAAW,EAAE;QAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EACD;QACE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;QACxB,eAAe,CAAC,KAAc;YAC5B,WAAW,GAAG,KAAK,CAAC;YACpB,cAAc,GAAG,SAAS,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,kBAAkB,CAAC,EAAgD;YACjE,cAAc,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,oEAAoE;QACpE,SAAS;YACP,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,cAAc,GAAG,SAAS,CAAC;YAC3B,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;KACF,CACK,CAAC;IAET,OAAO,GAAG,CAAC;AACb,CAAC"}