package test import ( "testing" "github.com/gruntwork-io/terratest/modules/terraform" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/aws/credentials/stscreds" "github.com/aws/aws-sdk-go/service/s3" "github.com/stretchr/testify/assert" ) func TestTerraformTestS3(t *testing.T) { // retryable errors in terraform testing. terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ TerraformDir: "./tftest", }) defer terraform.Destroy(t, terraformOptions) terraform.InitAndApply(t, terraformOptions) output := terraform.Output(t, terraformOptions, "role_arn") bucket := terraform.Output(t, terraformOptions, "bucket") // Assume role sess := session.Must(session.NewSession(&aws.Config{Region: aws.String("us-east-1")})) stscreds.NewCredentials(sess, output) svc := s3.New(sess) // List Objects _, err := svc.ListObjectsV2(&s3.ListObjectsV2Input{Bucket: aws.String(bucket)}) assert.Nil(t, err) }