interface TestAppFromApp
Since 0.6.0

Composition-root arm of TestAppOptions: the test starts from the application the project actually ships and subtracts from it.

This is the arm that makes a test app compose like a real one. Everything the root registered — middleware, error handling, health indicators, route ordering — is present, so a test observes the composition production has rather than a second one assembled by hand.

Properties

An already-constructed, not yet started application — typically the createApp() a scaffolded project exports from setu.config.ts, or a starter factory's return value.

createTestApp applies without, then overrides, then starts it.

optional
without: readonly string[]

Plugin names to drop before start(), so their register() never runs and any eager side effect inside it never happens.

Throws naming the entry if the application holds no plugin with that name: a silently ignored without: ['databse'] would run the whole test against the real plugin while reporting success. Repeated entries are de-duplicated, so listing a name twice is not that error.

optional
overrides: readonly IPlugin[]

Plugins to append after without is applied — usually overrideCapability results, though any IPlugin is accepted.

This exists because the default autoStart: true leaves no window between construction and start() in which a caller could register them.

optional
autoStart: boolean

Whether to auto-start the application.

optional
plugins: never

Not available on this arm — supply plugins or app, never both.

Usage

import { type TestAppFromApp } from "testing/src/index.ts";