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  }