Documentation ¶
Overview ¶
Package ftltest contains test utilities for the ftl package.
Index ¶
- func Context(options ...Option) context.Context
- type Option
- func WhenEmpty(empty ftl.Empty, fake func(ctx context.Context) (err error)) Option
- func WhenMap[T, U any](mapper *ftl.MapHandle[T, U], fake func(context.Context) (any, error)) Option
- func WhenSink[Req any](sink ftl.Sink[Req], fake func(ctx context.Context, req Req) error) Option
- func WhenSource[Resp any](source ftl.Source[Resp], fake func(ctx context.Context) (resp Resp, err error)) Option
- func WhenVerb[Req any, Resp any](verb ftl.Verb[Req, Resp], fake ftl.Verb[Req, Resp]) Option
- func WithCallsAllowedWithinModule() Option
- func WithConfig[T ftl.ConfigType](config ftl.ConfigValue[T], value T) Option
- func WithDatabase(dbHandle ftl.Database) Option
- func WithMapsAllowed() Option
- func WithProjectFiles(paths ...string) Option
- func WithSecret[T ftl.SecretType](secret ftl.SecretValue[T], value T) Option
- type OptionsState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Option ¶ added in v0.201.0
type Option func(context.Context, *OptionsState) error
func WhenEmpty ¶ added in v0.202.3
WhenEmpty replaces an implementation for a verb with no request or response
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WhenEmpty(Example.Empty, func(ctx context.Context) error { ... }), )
func WhenMap ¶ added in v0.243.0
WhenMap injects a fake implementation of a Mapping function
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WhenMap(Example.MapHandle, func(ctx context.Context) (U, error) { // ... }), // ... other options )
func WhenSink ¶ added in v0.202.3
WhenSink replaces an implementation for a verb with no response
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WhenSink(example.Sink, func(ctx context.Context, req example.Req) error { ... }), // ... other options )
func WhenSource ¶ added in v0.202.3
func WhenSource[Resp any](source ftl.Source[Resp], fake func(ctx context.Context) (resp Resp, err error)) Option
WhenSource replaces an implementation for a verb with no request
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WhenSource(example.Source, func(ctx context.Context) (example.Resp, error) { // ... }), // ... other options )
func WhenVerb ¶ added in v0.189.0
WhenVerb replaces an implementation for a verb
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WhenVerb(Example.Verb, func(ctx context.Context, req Example.Req) (Example.Resp, error) { // ... }), // ... other options )
func WithCallsAllowedWithinModule ¶ added in v0.196.0
func WithCallsAllowedWithinModule() Option
WithCallsAllowedWithinModule allows tests to enable calls to all verbs within the current module
Any overrides provided by calling WhenVerb(...) will take precedence
func WithConfig ¶ added in v0.189.0
func WithConfig[T ftl.ConfigType](config ftl.ConfigValue[T], value T) Option
WithConfig sets a configuration for the current module
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WithConfig(exampleEndpoint, "https://example.com"), // ... other options )
func WithDatabase ¶ added in v0.207.0
WithDatabase sets up a database for testing by appending "_test" to the DSN and emptying all tables
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WithDatabase(db), // ... other options )
func WithMapsAllowed ¶ added in v0.243.0
func WithMapsAllowed() Option
WithMapsAllowed allows all `ftl.Map` calls to pass through to their original implementation.
Any overrides provided by calling WhenMap(...) will take precedence.
func WithProjectFiles ¶ added in v0.202.6
WithProjectFiles loads config and secrets from a project file
Takes a list of paths to project files. If multiple paths are provided, they are loaded in order, with later files taking precedence. If no paths are provided, the list is inferred from the FTL_CONFIG environment variable. If that is not found, the ftl-project.toml file in the git root is used. If ftl-project.toml is not found, no project files are loaded.
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WithProjectFiles("path/to/ftl-project.yaml"), // ... other options )
func WithSecret ¶ added in v0.189.0
func WithSecret[T ftl.SecretType](secret ftl.SecretValue[T], value T) Option
WithSecret sets a secret for the current module
To be used when setting up a context for a test:
ctx := ftltest.Context( ftltest.WithSecret(privateKey, "abc123"), // ... other options )
type OptionsState ¶ added in v0.201.0
type OptionsState struct {
// contains filtered or unexported fields
}