From a37acbf9305a02e9574b7f0609348df6eaefd30d Mon Sep 17 00:00:00 2001 From: Aiden Carpenter Date: Thu, 17 Aug 2023 13:50:44 -0700 Subject: [PATCH 1/2] allow fallback to default creds, write test --- internal/pkg/cli/env_init.go | 9 +- internal/pkg/cli/env_init_test.go | 207 ++++++++++++++++++++++++++++-- 2 files changed, 207 insertions(+), 9 deletions(-) diff --git a/internal/pkg/cli/env_init.go b/internal/pkg/cli/env_init.go index f317c41cafc..4e7f0b4a4dc 100644 --- a/internal/pkg/cli/env_init.go +++ b/internal/pkg/cli/env_init.go @@ -429,8 +429,15 @@ func (o *initEnvOpts) askEnvSession() error { selCreds, err := o.selCreds() if err != nil { - return err + errRetrieveCreds := err + sess, err := o.sessProvider.Default() + if err != nil { + return errors.Join(errRetrieveCreds, fmt.Errorf("falling back on default credentials: %w", err)) + } + o.sess = sess + return nil } + sess, err := selCreds.Creds(fmt.Sprintf(fmtEnvInitCredsPrompt, color.HighlightUserInput(o.name)), envInitCredsHelpPrompt) if err != nil { return fmt.Errorf("select creds: %w", err) diff --git a/internal/pkg/cli/env_init_test.go b/internal/pkg/cli/env_init_test.go index 34b4812d19e..818fa888935 100644 --- a/internal/pkg/cli/env_init_test.go +++ b/internal/pkg/cli/env_init_test.go @@ -356,12 +356,18 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAdjustVPCVars adjustVPCVars inInternalALBSubnets []string - setupMocks func(mocks initEnvMocks) + getMockCredsSelector func(credsSelector) func() (credsSelector, error) + setupMocks func(mocks initEnvMocks) wantedError error }{ "fail to get env name": { inAppName: mockApp, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { gomock.InOrder( m.prompt.EXPECT(). @@ -373,6 +379,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { }, "should error if environment already exists": { inAppName: mockApp, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { gomock.InOrder( m.prompt.EXPECT(). @@ -388,6 +399,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inEnv: mockEnv, inProfile: mockProfile, inDefault: true, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(mockProfile).Return(&session.Session{ Config: &aws.Config{ @@ -404,6 +420,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { SecretAccessKey: "efgh", }, inDefault: true, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromStaticCreds("abcd", "efgh", "").Return(mockSession, nil) }, @@ -412,15 +433,42 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inDefault: true, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.selCreds.EXPECT().Creds("Which credentials would you like to use to create test?", gomock.Any()).Return(mockSession, nil) }, }, + "should fallback on default session if credentials cant be found": { + inAppName: mockApp, + inEnv: mockEnv, + inDefault: true, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return nil, mockErr + } + }, + setupMocks: func(m initEnvMocks) { + m.sessProvider.EXPECT().Default().Return(&session.Session{ + Config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + }, nil) + }, + }, "should prompt for region if user configuration does not have one": { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, inDefault: true, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(&session.Session{ Config: &aws.Config{}, @@ -434,6 +482,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inProfile: mockProfile, inRegion: mockRegion, inDefault: true, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(&session.Session{ Config: &aws.Config{}, @@ -446,6 +499,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inEnv: mockEnv, inProfile: mockProfile, inDefault: true, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()).Times(0) @@ -455,6 +513,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -466,6 +529,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -476,6 +544,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -488,6 +561,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -501,6 +579,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -514,6 +597,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -529,6 +617,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -544,6 +637,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -561,6 +659,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -578,6 +681,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -594,6 +702,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -610,6 +723,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -631,6 +749,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { PrivateSubnetIDs: []string{"mockPrivateSubnetID", "anotherMockPrivateSubnetID"}, PublicSubnetIDs: []string{"mockPublicSubnetID", "anotherMockPublicSubnetID"}, }, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()).Times(0) @@ -644,6 +767,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inImportVPCVars: importVPCVars{ ID: "mockVPC", }, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -661,6 +789,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { PrivateSubnetIDs: []string{"mockPrivateSubnetID", "anotherMockPrivateSubnetID"}, PublicSubnetIDs: []string{"mockPublicSubnetID", "anotherMockPublicSubnetID"}, }, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.selVPC.EXPECT().VPC(envInitVPCSelectPrompt, "").Return("mockVPC", nil) @@ -675,6 +808,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { ID: "mockVPC", PrivateSubnetIDs: []string{"mockPrivateSubnetID", "anotherMockPrivateSubnetID"}, }, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -690,6 +828,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { ID: "mockVPC", PublicSubnetIDs: []string{"mockPublicSubnetID", "anotherMockPublicSubnetID"}, }, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -705,6 +848,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { ID: "mockVPC", }, inInternalALBSubnets: []string{"nonexistentSubnet", "anotherNonexistentSubnet"}, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -723,6 +871,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inImportVPCVars: importVPCVars{ ID: "mockVPC", }, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -738,6 +891,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inEnv: mockEnv, inProfile: mockProfile, inInternalALBSubnets: []string{"mockPrivateSubnet", "anotherMockPrivateSubnet"}, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.selVPC.EXPECT().VPC(envInitVPCSelectPrompt, "").Return("mockVPC", nil) @@ -752,6 +910,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -765,6 +928,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()). @@ -779,6 +947,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()). @@ -797,6 +970,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()). @@ -822,6 +1000,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()). @@ -849,6 +1032,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -884,6 +1072,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { PrivateSubnetCIDRs: []string{"mockPrivateCIDR1", "mockPrivateCIDR2"}, PublicSubnetCIDRs: []string{"mockPublicCIDR1", "mockPublicCIDR2"}, }, + getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { + return func() (credsSelector, error) { + return c, nil + } + }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()).Times(0) @@ -922,13 +1115,11 @@ func TestInitEnvOpts_Ask(t *testing.T) { }, sessProvider: mocks.sessProvider, selVPC: mocks.selVPC, - selCreds: func() (credsSelector, error) { - return mocks.selCreds, nil - }, - ec2Client: mocks.ec2Client, - prompt: mocks.prompt, - selApp: mocks.selApp, - store: mocks.store, + selCreds: tc.getMockCredsSelector(mocks.selCreds), + ec2Client: mocks.ec2Client, + prompt: mocks.prompt, + selApp: mocks.selApp, + store: mocks.store, } // WHEN From 5bb716d37287e8397de454b19a0a0a3efd29c57e Mon Sep 17 00:00:00 2001 From: Aiden Carpenter Date: Mon, 21 Aug 2023 09:34:33 -0700 Subject: [PATCH 2/2] reduce copied code in tests --- internal/pkg/cli/env_init_test.go | 198 ++---------------------------- 1 file changed, 13 insertions(+), 185 deletions(-) diff --git a/internal/pkg/cli/env_init_test.go b/internal/pkg/cli/env_init_test.go index 818fa888935..5aefa86de6f 100644 --- a/internal/pkg/cli/env_init_test.go +++ b/internal/pkg/cli/env_init_test.go @@ -356,18 +356,13 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAdjustVPCVars adjustVPCVars inInternalALBSubnets []string - getMockCredsSelector func(credsSelector) func() (credsSelector, error) + getMockCredsSelector func() (credsSelector, error) setupMocks func(mocks initEnvMocks) wantedError error }{ "fail to get env name": { inAppName: mockApp, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { gomock.InOrder( m.prompt.EXPECT(). @@ -379,11 +374,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { }, "should error if environment already exists": { inAppName: mockApp, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { gomock.InOrder( m.prompt.EXPECT(). @@ -399,11 +389,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inEnv: mockEnv, inProfile: mockProfile, inDefault: true, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(mockProfile).Return(&session.Session{ Config: &aws.Config{ @@ -420,11 +405,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { SecretAccessKey: "efgh", }, inDefault: true, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromStaticCreds("abcd", "efgh", "").Return(mockSession, nil) }, @@ -433,11 +413,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inDefault: true, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.selCreds.EXPECT().Creds("Which credentials would you like to use to create test?", gomock.Any()).Return(mockSession, nil) }, @@ -446,10 +421,8 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inDefault: true, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return nil, mockErr - } + getMockCredsSelector: func() (credsSelector, error) { + return nil, mockErr }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().Default().Return(&session.Session{ @@ -464,11 +437,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inEnv: mockEnv, inProfile: mockProfile, inDefault: true, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(&session.Session{ Config: &aws.Config{}, @@ -482,11 +450,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inProfile: mockProfile, inRegion: mockRegion, inDefault: true, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(&session.Session{ Config: &aws.Config{}, @@ -499,11 +462,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inEnv: mockEnv, inProfile: mockProfile, inDefault: true, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()).Times(0) @@ -513,11 +471,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -529,11 +482,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -544,11 +492,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -561,11 +504,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -579,11 +517,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -597,11 +530,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -617,11 +545,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -637,11 +560,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -659,11 +577,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -681,11 +594,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -702,11 +610,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -723,11 +626,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -749,11 +647,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { PrivateSubnetIDs: []string{"mockPrivateSubnetID", "anotherMockPrivateSubnetID"}, PublicSubnetIDs: []string{"mockPublicSubnetID", "anotherMockPublicSubnetID"}, }, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()).Times(0) @@ -767,11 +660,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inImportVPCVars: importVPCVars{ ID: "mockVPC", }, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -789,11 +677,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { PrivateSubnetIDs: []string{"mockPrivateSubnetID", "anotherMockPrivateSubnetID"}, PublicSubnetIDs: []string{"mockPublicSubnetID", "anotherMockPublicSubnetID"}, }, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.selVPC.EXPECT().VPC(envInitVPCSelectPrompt, "").Return("mockVPC", nil) @@ -808,11 +691,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { ID: "mockVPC", PrivateSubnetIDs: []string{"mockPrivateSubnetID", "anotherMockPrivateSubnetID"}, }, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -828,11 +706,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { ID: "mockVPC", PublicSubnetIDs: []string{"mockPublicSubnetID", "anotherMockPublicSubnetID"}, }, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -848,11 +721,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { ID: "mockVPC", }, inInternalALBSubnets: []string{"nonexistentSubnet", "anotherNonexistentSubnet"}, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -871,11 +739,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inImportVPCVars: importVPCVars{ ID: "mockVPC", }, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.ec2Client.EXPECT().HasDNSSupport("mockVPC").Return(true, nil) @@ -891,11 +754,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inEnv: mockEnv, inProfile: mockProfile, inInternalALBSubnets: []string{"mockPrivateSubnet", "anotherMockPrivateSubnet"}, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.selVPC.EXPECT().VPC(envInitVPCSelectPrompt, "").Return("mockVPC", nil) @@ -910,11 +768,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -928,11 +781,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()). @@ -947,11 +795,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()). @@ -970,11 +813,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()). @@ -1000,11 +838,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()). @@ -1032,11 +865,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { inAppName: mockApp, inEnv: mockEnv, inProfile: mockProfile, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, "", envInitCustomizedEnvTypes, gomock.Any()). @@ -1072,11 +900,6 @@ func TestInitEnvOpts_Ask(t *testing.T) { PrivateSubnetCIDRs: []string{"mockPrivateCIDR1", "mockPrivateCIDR2"}, PublicSubnetCIDRs: []string{"mockPublicCIDR1", "mockPublicCIDR2"}, }, - getMockCredsSelector: func(c credsSelector) func() (credsSelector, error) { - return func() (credsSelector, error) { - return c, nil - } - }, setupMocks: func(m initEnvMocks) { m.sessProvider.EXPECT().FromProfile(gomock.Any()).Return(mockSession, nil) m.prompt.EXPECT().SelectOne(envInitDefaultEnvConfirmPrompt, gomock.Any(), gomock.Any(), gomock.Any()).Times(0) @@ -1115,11 +938,16 @@ func TestInitEnvOpts_Ask(t *testing.T) { }, sessProvider: mocks.sessProvider, selVPC: mocks.selVPC, - selCreds: tc.getMockCredsSelector(mocks.selCreds), - ec2Client: mocks.ec2Client, - prompt: mocks.prompt, - selApp: mocks.selApp, - store: mocks.store, + selCreds: func() (credsSelector, error) { + if tc.getMockCredsSelector != nil { + return tc.getMockCredsSelector() + } + return mocks.selCreds, nil + }, + ec2Client: mocks.ec2Client, + prompt: mocks.prompt, + selApp: mocks.selApp, + store: mocks.store, } // WHEN