Stone.js API
    Preparing search index...

    Options for createTestApp.

    interface TestAppOptions {
        appDir?: string;
        bindings?: TestBindings;
        blueprint?: Partial<StoneBlueprint>;
        envFile?: string | false;
        modules?: unknown[];
        pattern?: string;
        platform?: string;
    }
    Index
    appDir?: string

    The application directory to discover modules from. Defaults to app. Ignored when modules is given.

    bindings?: TestBindings

    Container bindings to substitute, by alias: a fake repository, a fixed clock, a provider made to fail. Bound after the application's own registrations, so the substitution wins.

    blueprint?: Partial<StoneBlueprint>

    Blueprint values to force, whatever the application says.

    Merged after the application's own modules, so it wins. That is the only ordering a test can use: @StoneApp carries the default blueprint, which sets nearly every key, so anything merged before it is overwritten and the option would do nothing.

    This is the configuration counterpart of bindings: one replaces a service, the other replaces a value.

    const app = await createTestApp({ blueprint: { stone: { debug: true } } })
    
    envFile?: string | false

    The env file to load before booting. Defaults to .env.test; a missing file is not an error. Pass false to load none.

    modules?: unknown[]

    App modules to boot: decorated classes (@StoneApp, controllers, …) and/or blueprints.

    Omit it and they are discovered from app/**, the same files the CLI builds. Pass it to boot exactly what you name, for a test that deliberately runs a slice of the application.

    pattern?: string

    The glob to discover modules with, overriding appDir. Ignored when modules is given.

    platform?: string

    The platform to run the application as, when it stacks several.

    An app is one domain over many contexts, and a test may want a specific one: the HTTP context of an app that is also a CLI, or the browser context of a pure SPA (where nothing is the default, so nothing is selected). Omit it and the application's own default stands.