github.com/mponton/terratest@v0.44.0/modules/aws/ecr_test.go (about) 1 package aws 2 3 import ( 4 "fmt" 5 "strings" 6 "testing" 7 8 "github.com/aws/aws-sdk-go/aws" 9 "github.com/mponton/terratest/modules/random" 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestEcrRepo(t *testing.T) { 15 t.Parallel() 16 17 region := GetRandomStableRegion(t, nil, nil) 18 ecrRepoName := fmt.Sprintf("terratest%s", strings.ToLower(random.UniqueId())) 19 repo1, err := CreateECRRepoE(t, region, ecrRepoName) 20 defer DeleteECRRepo(t, region, repo1) 21 require.NoError(t, err) 22 23 assert.Equal(t, ecrRepoName, aws.StringValue(repo1.RepositoryName)) 24 25 repo2, err := GetECRRepoE(t, region, ecrRepoName) 26 require.NoError(t, err) 27 assert.Equal(t, ecrRepoName, aws.StringValue(repo2.RepositoryName)) 28 } 29 30 func TestGetEcrRepoLifecyclePolicyError(t *testing.T) { 31 t.Parallel() 32 33 region := GetRandomStableRegion(t, nil, nil) 34 ecrRepoName := fmt.Sprintf("terratest%s", strings.ToLower(random.UniqueId())) 35 repo1, err := CreateECRRepoE(t, region, ecrRepoName) 36 defer DeleteECRRepo(t, region, repo1) 37 require.NoError(t, err) 38 39 assert.Equal(t, ecrRepoName, aws.StringValue(repo1.RepositoryName)) 40 41 _, err = GetECRRepoLifecyclePolicyE(t, region, repo1) 42 require.Error(t, err) 43 } 44 45 func TestCanSetECRRepoLifecyclePolicyWithSingleRule(t *testing.T) { 46 t.Parallel() 47 48 region := GetRandomStableRegion(t, nil, nil) 49 ecrRepoName := fmt.Sprintf("terratest%s", strings.ToLower(random.UniqueId())) 50 repo1, err := CreateECRRepoE(t, region, ecrRepoName) 51 defer DeleteECRRepo(t, region, repo1) 52 require.NoError(t, err) 53 54 lifecyclePolicy := `{ 55 "rules": [ 56 { 57 "rulePriority": 1, 58 "description": "Expire images older than 14 days", 59 "selection": { 60 "tagStatus": "untagged", 61 "countType": "sinceImagePushed", 62 "countUnit": "days", 63 "countNumber": 14 64 }, 65 "action": { 66 "type": "expire" 67 } 68 } 69 ] 70 }` 71 72 err = PutECRRepoLifecyclePolicyE(t, region, repo1, lifecyclePolicy) 73 require.NoError(t, err) 74 75 policy := GetECRRepoLifecyclePolicy(t, region, repo1) 76 assert.JSONEq(t, lifecyclePolicy, policy) 77 }