go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/cli/config/aws_ssm_ps_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package config
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  // aws-ssm-ps://region/us-east-2/parameter/MondooAgentConfig?decrypt=true&account=12345678
    14  
    15  func TestNewSSMParameter(t *testing.T) {
    16  	param, err := newSsmParameter("us-west-1", "test-name")
    17  	require.NoError(t, err)
    18  	assert.Equal(t, &SsmParameter{Region: "us-west-1", Parameter: "test-name"}, param)
    19  	assert.Equal(t, "region/us-west-1/parameter/test-name", param.String())
    20  }
    21  
    22  func TestParseSSMParameterPath(t *testing.T) {
    23  	ssmParam, err := parseSsmParameterPath("region/us-west-2/parameter/test-param-name")
    24  	require.NoError(t, err)
    25  	assert.Equal(t, &SsmParameter{Parameter: "test-param-name", Region: "us-west-2"}, ssmParam)
    26  }
    27  
    28  func TestNewSSMParameterPathReturnsErrWhenNoRegion(t *testing.T) {
    29  	_, err := newSsmParameter("", "test-name")
    30  	require.Error(t, err)
    31  	assert.EqualError(t, err, "invalid parameter. region and parameter name required.")
    32  }
    33  
    34  func TestParseSSMParameterPathBadPathReturnsError(t *testing.T) {
    35  	_, err := parseSsmParameterPath("region/us-west-2/parameter")
    36  	require.Error(t, err)
    37  	assert.EqualError(t, err, "invalid parameter path. expected region/<region-val>/parameter/<parameter-name>")
    38  	_, err = parseSsmParameterPath("region//parameter/testname")
    39  	require.Error(t, err)
    40  	assert.EqualError(t, err, "invalid parameter path. expected region/<region-val>/parameter/<parameter-name>")
    41  	_, err = parseSsmParameterPath("region/us-west-1/parameter/")
    42  	require.Error(t, err)
    43  	assert.EqualError(t, err, "invalid parameter path. expected region/<region-val>/parameter/<parameter-name>")
    44  }