Test codecov CodeQL Go Report Card PkgGoDev License
Go Wrapper for using localstack in go testing
Please make sure that you have Docker installed.
go get github.com/elgohr/go-localstack
With SDK V2 (using EndpointResolverV2). Please have a look at resolvers for a complete list of resolvers.
func ExampleLocalstackSdkV2EndpointResolverV2(t *testing.T) { l, err := localstack.NewInstance() if err != nil { t.Fatalf("Could not connect to Docker %v", err) } if err := l.Start(); err != nil { t.Fatalf("Could not start localstack %v", err) } t.Cleanup(func() { if err := l.Stop(); err != nil { t.Fatalf("Could not stop localstack %v", err) } }) cfg, err := config.LoadDefaultConfig(ctx, config.WithRegion("us-east-1"), config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("dummy", "dummy", "dummy")), ) if err != nil { t.Fatalf("Could not get config %v", err) } resolver := localstack.NewDynamoDbResolverV2(i) client := dynamodb.NewFromConfig(cfg, dynamodb.WithEndpointResolverV2(resolver)) myTestWithV2Client(client) }
With SDK V2 (using EndpointResolverV1)
func ExampleLocalstackSdkV2(t *testing.T) { l, err := localstack.NewInstance() if err != nil { t.Fatalf("Could not connect to Docker %v", err) } if err := l.Start(); err != nil { t.Fatalf("Could not start localstack %v", err) } t.Cleanup(func() { if err := l.Stop(); err != nil { t.Fatalf("Could not stop localstack %v", err) } }) cfg, err := config.LoadDefaultConfig(ctx, config.WithRegion("us-east-1"), config.WithEndpointResolverWithOptions(aws.EndpointResolverWithOptionsFunc(func(_, _ string, _ ...interface{}) (aws.Endpoint, error) { return aws.Endpoint{ PartitionID: "aws", URL: l.EndpointV2(localstack.SQS), SigningRegion: "us-east-1", HostnameImmutable: true, }, nil })), config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("dummy", "dummy", "dummy")), ) if err != nil { t.Fatalf("Could not get config %v", err) } myTestWithV2(cfg) }
With SDK V1
func TestWithLocalStack(t *testing.T) { l, err := localstack.NewInstance() if err != nil { t.Fatalf("Could not connect to Docker %v", err) } if err := l.Start(); err != nil { t.Fatalf("Could not start localstack %v", err) } t.Cleanup(func() { if err := l.Stop(); err != nil { t.Fatalf("Could not stop localstack %v", err) } }) myTestWith(&aws.Config{ Credentials: credentials.NewStaticCredentials("not", "empty", ""), DisableSSL: aws.Bool(true), Region: aws.String(endpoints.UsWest1RegionID), Endpoint: aws.String(l.Endpoint(localstack.SQS)), }) }