testkit

package
v0.2.0-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 20, 2026 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func APIGatewayV2Request

func APIGatewayV2Request(method, path string, opts HTTPEventOptions) events.APIGatewayV2HTTPRequest

func DynamoDBStreamEvent added in v0.2.0

func DynamoDBStreamEvent(opts DynamoDBStreamEventOptions) events.DynamoDBEvent

func EventBridgeEvent added in v0.2.0

func EventBridgeEvent(opts EventBridgeEventOptions) events.EventBridgeEvent

func LambdaFunctionURLRequest

func LambdaFunctionURLRequest(method, path string, opts HTTPEventOptions) events.LambdaFunctionURLRequest

func SQSEvent added in v0.2.0

func SQSEvent(opts SQSEventOptions) events.SQSEvent

func WebSocketEvent added in v0.2.0

Types

type DynamoDBStreamEventOptions added in v0.2.0

type DynamoDBStreamEventOptions struct {
	StreamARN string
	Records   []DynamoDBStreamRecordOptions
}

type DynamoDBStreamRecordOptions added in v0.2.0

type DynamoDBStreamRecordOptions struct {
	EventID   string
	EventName string
}

type Env

type Env struct {
	Clock *ManualClock
	IDs   *ManualIDGenerator
}

Env is a deterministic local test environment for AppTheory apps.

func New

func New() *Env

func NewWithTime

func NewWithTime(now time.Time) *Env

func (*Env) App

func (e *Env) App(opts ...apptheory.Option) *apptheory.App

func (*Env) Invoke

func (e *Env) Invoke(ctx context.Context, app *apptheory.App, req apptheory.Request) apptheory.Response

func (*Env) InvokeAPIGatewayV2

func (e *Env) InvokeAPIGatewayV2(
	ctx context.Context,
	app *apptheory.App,
	event events.APIGatewayV2HTTPRequest,
) events.APIGatewayV2HTTPResponse

func (*Env) InvokeDynamoDBStream added in v0.2.0

func (e *Env) InvokeDynamoDBStream(
	ctx context.Context,
	app *apptheory.App,
	event events.DynamoDBEvent,
) events.DynamoDBEventResponse

func (*Env) InvokeEventBridge added in v0.2.0

func (e *Env) InvokeEventBridge(
	ctx context.Context,
	app *apptheory.App,
	event events.EventBridgeEvent,
) (any, error)

func (*Env) InvokeLambdaFunctionURL

func (e *Env) InvokeLambdaFunctionURL(
	ctx context.Context,
	app *apptheory.App,
	event events.LambdaFunctionURLRequest,
) events.LambdaFunctionURLResponse

func (*Env) InvokeSQS added in v0.2.0

func (e *Env) InvokeSQS(ctx context.Context, app *apptheory.App, event events.SQSEvent) events.SQSEventResponse

func (*Env) InvokeWebSocket added in v0.2.0

type EventBridgeEventOptions added in v0.2.0

type EventBridgeEventOptions struct {
	ID         string
	Source     string
	DetailType string
	Resources  []string
	Detail     any
	Time       time.Time
	Region     string
	AccountID  string
}

type FakeStreamerClient added in v0.2.0

type FakeStreamerClient struct {
	Endpoint string
	Calls    []StreamerCall

	Connections map[string]streamer.Connection

	PostErr   error
	GetErr    error
	DeleteErr error
	// contains filtered or unexported fields
}

func NewFakeStreamerClient added in v0.2.0

func NewFakeStreamerClient(endpoint string) *FakeStreamerClient

func (*FakeStreamerClient) DeleteConnection added in v0.2.0

func (f *FakeStreamerClient) DeleteConnection(_ context.Context, connectionID string) error

func (*FakeStreamerClient) GetConnection added in v0.2.0

func (f *FakeStreamerClient) GetConnection(_ context.Context, connectionID string) (streamer.Connection, error)

func (*FakeStreamerClient) PostToConnection added in v0.2.0

func (f *FakeStreamerClient) PostToConnection(_ context.Context, connectionID string, data []byte) error

type HTTPEventOptions

type HTTPEventOptions struct {
	Query    map[string][]string
	Headers  map[string]string
	Cookies  []string
	Body     []byte
	IsBase64 bool
}

HTTPEventOptions configures synthetic HTTP events for local testing.

type ManualClock

type ManualClock struct {
	// contains filtered or unexported fields
}

ManualClock is a deterministic, mutable clock for tests.

func NewManualClock

func NewManualClock(now time.Time) *ManualClock

func (*ManualClock) Advance

func (c *ManualClock) Advance(d time.Duration) time.Time

func (*ManualClock) Now

func (c *ManualClock) Now() time.Time

func (*ManualClock) Set

func (c *ManualClock) Set(now time.Time)

type ManualIDGenerator

type ManualIDGenerator struct {
	// contains filtered or unexported fields
}

ManualIDGenerator is a deterministic, predictable ID generator for tests.

func NewManualIDGenerator

func NewManualIDGenerator() *ManualIDGenerator

func (*ManualIDGenerator) NewID

func (g *ManualIDGenerator) NewID() string

func (*ManualIDGenerator) Queue

func (g *ManualIDGenerator) Queue(ids ...string)

func (*ManualIDGenerator) Reset

func (g *ManualIDGenerator) Reset()

type SQSEventOptions added in v0.2.0

type SQSEventOptions struct {
	QueueARN string
	Records  []SQSMessageOptions
}

type SQSMessageOptions added in v0.2.0

type SQSMessageOptions struct {
	MessageID         string
	Body              string
	EventSourceARN    string
	MessageAttributes map[string]events.SQSMessageAttribute
}

type StreamerCall added in v0.2.0

type StreamerCall struct {
	Op           string
	ConnectionID string
	Data         []byte
}

type WebSocketEventOptions added in v0.2.0

type WebSocketEventOptions struct {
	RouteKey     string
	EventType    string
	ConnectionID string
	DomainName   string
	Stage        string
	RequestID    string
	Body         string
	IsBase64     bool

	Headers               map[string]string
	MultiValueHeaders     map[string][]string
	QueryStringParameters map[string]string
	MultiValueQueryString map[string][]string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL