From f421c219cc44aab5c3e4498f77c646dc258cbec3 Mon Sep 17 00:00:00 2001 From: Benoit Travers Date: Thu, 13 Aug 2026 21:40:17 +0200 Subject: [PATCH] test: pin that a composition root can omit provides Closes #9 Co-Authored-By: Claude Fable 5 --- packages/di/src/module.test-d.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/di/src/module.test-d.ts b/packages/di/src/module.test-d.ts index affcc90..70e987a 100644 --- a/packages/di/src/module.test-d.ts +++ b/packages/di/src/module.test-d.ts @@ -163,6 +163,18 @@ describe("Module algebra", () => { }); }); + test("a composition root omits provides entirely", () => { + // The common deployment-module shape (btravstack/di#9): imports and + // re-exported ports only. `provides` (like `imports` and `exports`) is + // optional and defaults to empty — no `provides: []` ceremony required. + const root = Module("Root")({ + imports: [ConfigModule], + exports: [AppConfig], + }); + const typed: Module = root; + void typed; + }); + test("re-exporting an imported module widens Exports to its exports", () => { const facade = Module("Facade")({ imports: [ConfigModule],