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  }