github.com/jenkins-x/jx/v2@v2.1.155/pkg/cloud/amazon/session/common_test.go (about) 1 // +build unit 2 3 package session_test 4 5 import ( 6 "testing" 7 8 "github.com/jenkins-x/jx/v2/pkg/cloud/amazon/testutils" 9 10 "github.com/jenkins-x/jx/v2/pkg/cloud/amazon/session" 11 12 "github.com/stretchr/testify/assert" 13 ) 14 15 // Region tests 16 func TestResolvingDefaultRegion(t *testing.T) { 17 oldHome, err := testutils.SwitchAWSHome() 18 defer testutils.RestoreHome(oldHome) 19 assert.Nil(t, err) 20 testutils.ConfigureEnv("", "", "") 21 sess, err := session.NewAwsSessionWithoutOptions() 22 assert.Nil(t, err) 23 assert.Equal(t, session.DefaultRegion, *sess.Config.Region) 24 } 25 26 func TestResolvingRegionFromAwsRegionEnv(t *testing.T) { 27 oldHome, err := testutils.SwitchAWSHome() 28 defer testutils.RestoreHome(oldHome) 29 assert.Nil(t, err) 30 testutils.ConfigureEnv("us-east-1", "", "") 31 session, err := session.NewAwsSessionWithoutOptions() 32 assert.Nil(t, err) 33 assert.Equal(t, "us-east-1", *session.Config.Region) 34 } 35 36 func TestResolvingRegionFromAwsDefaultRegionEnv(t *testing.T) { 37 oldHome, err := testutils.SwitchAWSHome() 38 defer testutils.RestoreHome(oldHome) 39 assert.Nil(t, err) 40 testutils.ConfigureEnv("", "us-east-1", "") 41 session, err := session.NewAwsSessionWithoutOptions() 42 assert.Nil(t, err) 43 assert.Equal(t, "us-east-1", *session.Config.Region) 44 } 45 46 func TestReturnOption(t *testing.T) { 47 oldHome, err := testutils.SwitchAWSHome() 48 defer testutils.RestoreHome(oldHome) 49 assert.Nil(t, err) 50 testutils.ConfigureEnv("", "", "") 51 session, err := session.NewAwsSession("", "someRegion") 52 assert.Nil(t, err) 53 assert.Equal(t, "someRegion", *session.Config.Region) 54 } 55 56 func TestReadingRegionFromConfigProfile(t *testing.T) { 57 oldHome, err := testutils.SwitchAWSHome() 58 defer testutils.RestoreHome(oldHome) 59 assert.Nil(t, err) 60 testutils.ConfigureEnv("", "", "") 61 session, err := session.NewAwsSession("foo", "") 62 assert.Nil(t, err) 63 assert.Equal(t, "bar", *session.Config.Region) 64 } 65 66 func TestReadingRegionFromEnvProfile(t *testing.T) { 67 oldHome, err := testutils.SwitchAWSHome() 68 defer testutils.RestoreHome(oldHome) 69 assert.Nil(t, err) 70 testutils.ConfigureEnv("", "", "baz") 71 session, err := session.NewAwsSessionWithoutOptions() 72 assert.Nil(t, err) 73 assert.Equal(t, "qux", *session.Config.Region) 74 } 75 76 func TestParseContext(t *testing.T) { 77 t.Parallel() 78 tests := map[string]struct { 79 context string 80 cluster string 81 region string 82 }{ 83 "full cluster name from eksctl": { 84 context: "cluster-name-jx.us-east-1.eksctl.io", 85 cluster: "cluster-name-jx", 86 region: "us-east-1", 87 }, 88 "full cluster name no eksctl": { 89 context: "cluster-name-jx.us-east-1", 90 cluster: "cluster-name-jx", 91 region: "us-east-1", 92 }, 93 "full cluster name other region": { 94 context: "cluster-name-jx.eu-north-4", 95 cluster: "cluster-name-jx", 96 region: "eu-north-4", 97 }, 98 "full cluster name eks arn": { 99 context: "arn:aws:eks:us-east-1:111111111111:cluster/cluster-name-jx", 100 cluster: "cluster-name-jx", 101 region: "us-east-1", 102 }, 103 } 104 105 for name, tc := range tests { 106 t.Run(name, func(t *testing.T) { 107 cluster, region, err := session.ParseContext(tc.context) 108 assert.NoErrorf(t, err, "there shouldn't be an error parsing context %s", tc.context) 109 assert.Equal(t, tc.cluster, cluster) 110 assert.Equal(t, tc.region, region) 111 }) 112 } 113 }