**What happens** Each module tests its own happy path. Behaviour that every module should share is not tested per module, so regressions in it pass every suite: - starting the same builder twice - connecting after `restart()`, when the mapped ports have changed - `withReuse()` returning the same container, with the module's setup run once - a network alias being usable from another container - cleanup through `await using` - non-default credentials actually being applied **Expected** A shared contract test that each module runs against its own container: ```ts describeModuleContract({ create: () => new RedisContainer(IMAGE), connect: async (container) => { /* resolves when a client can use the container */ }, }); ``` **Where** - the shared helper in `packages/testcontainers/src/utils/test-helper.ts`, which modules may already import - one call in each `packages/modules/*/src/*-container.test.ts` **Notes** - No new images: each module uses the image it already tests with. - Some checks will fail on `main` until the bugs they cover are fixed. Those are the red tests for the fixes. **Dependencies** - Nothing blocks this. It can start now. - Coordinate with #1520, #1521: the start-twice and reuse checks are the failing tests for those fixes.
Activity