testkit

package
v2.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 25, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ALBTargetGroupRequest

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

func APIGatewayV2Request

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

func CloudWatchLogsSubscriptionData

func CloudWatchLogsSubscriptionData(opts CloudWatchLogsSubscriptionOptions) []byte

func KinesisEvent

func KinesisEvent(opts KinesisEventOptions) events.KinesisEvent

func LambdaFunctionURLRequest

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

func SNSEvent

func SNSEvent(opts SNSEventOptions) events.SNSEvent

func SQSEvent

func SQSEvent(opts SQSEventOptions) events.SQSEvent

func StepFunctionsTaskTokenEvent

func StepFunctionsTaskTokenEvent(opts StepFunctionsTaskTokenEventOptions) map[string]any

Types

type AppSyncEventOptions

type AppSyncEventOptions struct {
	FieldName      string
	ParentTypeName string
	Arguments      map[string]any
	Identity       map[string]any
	Source         map[string]any
	Headers        map[string]string
	Variables      map[string]any
	Prev           any
	Stash          map[string]any
}

type CloudWatchLogsSubscriptionOptions

type CloudWatchLogsSubscriptionOptions struct {
	MessageType         string
	Owner               string
	LogGroup            string
	LogStream           string
	SubscriptionFilters []string
	LogEvents           []apptheory.CloudWatchLogsSubscriptionLogEvent
}

type DynamoDBStreamEventOptions

type DynamoDBStreamEventOptions struct {
	StreamARN string
	Records   []DynamoDBStreamRecordOptions
}

type DynamoDBStreamRecordOptions

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) InvokeALB

func (*Env) InvokeAPIGatewayV2

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

func (*Env) InvokeAppSync

func (e *Env) InvokeAppSync(ctx context.Context, app *apptheory.App, event apptheory.AppSyncResolverEvent) any

func (*Env) InvokeDynamoDBStream

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

func (*Env) InvokeEventBridge

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

func (*Env) InvokeKinesis

func (e *Env) InvokeKinesis(
	ctx context.Context,
	app *apptheory.App,
	event events.KinesisEvent,
) events.KinesisEventResponse

func (*Env) InvokeLambdaFunctionURL

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

func (*Env) InvokeSNS

func (e *Env) InvokeSNS(ctx context.Context, app *apptheory.App, event events.SNSEvent) ([]any, error)

func (*Env) InvokeSQS

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

func (*Env) InvokeStreaming

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

InvokeStreaming executes an AppTheory request and captures streamed response chunks deterministically.

Headers and cookies are captured before reading the first chunk so tests can assert header finalization.

type EventBridgeEventOptions

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

type FakeSNSClient

type FakeSNSClient struct {
	Calls []SNSPublishCall

	PublishErr error
	// contains filtered or unexported fields
}

func NewFakeSNSClient

func NewFakeSNSClient() *FakeSNSClient

func (*FakeSNSClient) Publish

func (f *FakeSNSClient) Publish(
	_ context.Context,
	params *sns.PublishInput,
	_ ...func(*sns.Options),
) (*sns.PublishOutput, error)

type FakeStreamerClient

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

func NewFakeStreamerClient(endpoint string) *FakeStreamerClient

func (*FakeStreamerClient) DeleteConnection

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

func (*FakeStreamerClient) GetConnection

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

func (*FakeStreamerClient) PostToConnection

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

type HTTPEventOptions

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

HTTPEventOptions configures synthetic HTTP events for local testing.

type KinesisCloudWatchLogsSubscriptionRecordOptions

type KinesisCloudWatchLogsSubscriptionRecordOptions struct {
	EventID        string
	EventSourceARN string
	PartitionKey   string
	Subscription   CloudWatchLogsSubscriptionOptions
}

type KinesisEventOptions

type KinesisEventOptions struct {
	StreamARN string
	Records   []KinesisRecordOptions
}

type KinesisRecordOptions

type KinesisRecordOptions struct {
	EventID        string
	EventSourceARN string
	PartitionKey   string
	Data           []byte
}

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 SNSEventOptions

type SNSEventOptions struct {
	TopicARN string
	Records  []SNSRecordOptions
}

type SNSPublishCall

type SNSPublishCall struct {
	TopicARN string
	Subject  string
	Message  string
}

type SNSRecordOptions

type SNSRecordOptions struct {
	MessageID string
	TopicArn  string
	Subject   string
	Message   string
}

type SQSEventOptions

type SQSEventOptions struct {
	QueueARN string
	Records  []SQSMessageOptions
}

type SQSMessageOptions

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

type StepFunctionsTaskTokenEventOptions

type StepFunctionsTaskTokenEventOptions struct {
	TaskToken string
	Payload   map[string]any
}

type StreamResult

type StreamResult struct {
	Status          int
	Headers         map[string][]string
	Cookies         []string
	Chunks          [][]byte
	Body            []byte
	IsBase64        bool
	StreamErrorCode string
}

StreamResult captures a streamed AppTheory response deterministically for tests.

type StreamerCall

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

type WebSocketEventOptions

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
}

Directories

Path Synopsis
Package mcp provides deterministic MCP client simulation and assertion helpers for testing MCP tool implementations without deploying infrastructure.
Package mcp provides deterministic MCP client simulation and assertion helpers for testing MCP tool implementations without deploying infrastructure.
Package microvm provides deterministic test doubles for AppTheory MicroVM controllers.
Package microvm provides deterministic test doubles for AppTheory MicroVM controllers.
Package oauth provides a small test harness for OAuth flows used by Claude Remote MCP connectors (DCR + PKCE + refresh).
Package oauth provides a small test harness for OAuth flows used by Claude Remote MCP connectors (DCR + PKCE + refresh).
Package objectstore provides deterministic test doubles for AppTheory object-store code.
Package objectstore provides deterministic test doubles for AppTheory object-store code.

Jump to

Keyboard shortcuts

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