Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 43 additions & 39 deletions internal/pkg/externalauth/prompt_provider_auth_select_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,20 +59,20 @@ func TestPrompt_ProviderAuthSelectPrompt_no_selected_auth(t *testing.T) {
},
}

tests := []struct {
tests := map[string]struct {
ProviderFlag string
Selection iostreams.SelectPromptResponse
ExpectedProvider types.ProvidersInfo
}{
{
"Prompt selection": {
Selection: iostreams.SelectPromptResponse{
Prompt: true,
Option: "provider_a",
Index: 0,
},
ExpectedProvider: workflowsInfo.Providers[0],
},
{
"Flag selection": {
ProviderFlag: "provider_a",
Selection: iostreams.SelectPromptResponse{
Flag: true,
Expand All @@ -82,26 +82,28 @@ func TestPrompt_ProviderAuthSelectPrompt_no_selected_auth(t *testing.T) {
},
}

for _, tc := range tests {
var mockProviderFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&mockProviderFlag, "provider", "", "mock provider flag")
if tc.ProviderFlag != "" {
_ = clientsMock.Config.Flags.Set("provider", tc.ProviderFlag)
}
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a provider", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clients.Config.Flags.Lookup("provider"),
})).Return(tc.Selection, nil)
for name, tc := range tests {
t.Run(name, func(t *testing.T) {
var mockProviderFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&mockProviderFlag, "provider", "", "mock provider flag")
if tc.ProviderFlag != "" {
_ = clientsMock.Config.Flags.Set("provider", tc.ProviderFlag)
}
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a provider", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clients.Config.Flags.Lookup("provider"),
})).Return(tc.Selection, nil)

clientsMock.AddDefaultMocks()
clientsMock.AddDefaultMocks()

selectedProvider, err := ProviderAuthSelectPrompt(ctx, clients, workflowsInfo)
require.Equal(t, selectedProvider.ProviderKey, "provider_a")
require.Equal(t, selectedProvider, workflowsInfo.Providers[0])
require.NoError(t, err)
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select a provider", mock.Anything, mock.Anything)
selectedProvider, err := ProviderAuthSelectPrompt(ctx, clients, workflowsInfo)
require.Equal(t, selectedProvider.ProviderKey, "provider_a")
require.Equal(t, selectedProvider, workflowsInfo.Providers[0])
require.NoError(t, err)
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select a provider", mock.Anything, mock.Anything)
})
}
}

Expand All @@ -126,20 +128,20 @@ func TestPrompt_ProviderAuthSelectPrompt_with_selected_auth(t *testing.T) {
},
}

tests := []struct {
tests := map[string]struct {
ProviderFlag string
Selection iostreams.SelectPromptResponse
ExpectedProvider types.ProvidersInfo
}{
{
"Prompt selection": {
Selection: iostreams.SelectPromptResponse{
Prompt: true,
Option: "provider_b",
Index: 1,
},
ExpectedProvider: workflowsInfo.Providers[1],
},
{
"Flag selection": {
ProviderFlag: "provider_b",
Selection: iostreams.SelectPromptResponse{
Flag: true,
Expand All @@ -149,21 +151,23 @@ func TestPrompt_ProviderAuthSelectPrompt_with_selected_auth(t *testing.T) {
},
}

for _, tc := range tests {
var mockProviderFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&mockProviderFlag, "provider", "", "mock provider flag")
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a provider", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clientsMock.Config.Flags.Lookup("provider"),
})).Return(tc.Selection, nil)
clientsMock.AddDefaultMocks()
for name, tc := range tests {
t.Run(name, func(t *testing.T) {
var mockProviderFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&mockProviderFlag, "provider", "", "mock provider flag")
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a provider", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clientsMock.Config.Flags.Lookup("provider"),
})).Return(tc.Selection, nil)
clientsMock.AddDefaultMocks()

selectedProvider, err := ProviderAuthSelectPrompt(ctx, clients, workflowsInfo)
require.Equal(t, selectedProvider.ProviderKey, "provider_b")
require.Equal(t, selectedProvider, workflowsInfo.Providers[1])
require.NoError(t, err)
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select a provider", mock.Anything, mock.Anything)
selectedProvider, err := ProviderAuthSelectPrompt(ctx, clients, workflowsInfo)
require.Equal(t, selectedProvider.ProviderKey, "provider_b")
require.Equal(t, selectedProvider, workflowsInfo.Providers[1])
require.NoError(t, err)
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select a provider", mock.Anything, mock.Anything)
})
}
}
82 changes: 43 additions & 39 deletions internal/pkg/externalauth/prompt_provider_select_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,20 +49,20 @@ func TestPrompt_ProviderSelectPrompt_no_token(t *testing.T) {
},
}}

tests := []struct {
tests := map[string]struct {
ProviderFlag string
Selection iostreams.SelectPromptResponse
ExpectedAuthorization types.ExternalAuthorizationInfo
}{
{
"Flag selection": {
ProviderFlag: "provider_a",
Selection: iostreams.SelectPromptResponse{
Flag: true,
Option: "provider_a",
},
ExpectedAuthorization: authorizationInfoLists.Authorizations[0],
},
{
"Prompt selection": {
Selection: iostreams.SelectPromptResponse{
Prompt: true,
Option: "provider_a",
Expand All @@ -72,22 +72,24 @@ func TestPrompt_ProviderSelectPrompt_no_token(t *testing.T) {
},
}

for _, tc := range tests {
var mockProviderFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&mockProviderFlag, "provider", "", "mock provider flag")
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a provider", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clientsMock.Config.Flags.Lookup("provider"),
})).Return(tc.Selection, nil)
clientsMock.AddDefaultMocks()
for name, tc := range tests {
t.Run(name, func(t *testing.T) {
var mockProviderFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&mockProviderFlag, "provider", "", "mock provider flag")
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a provider", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clientsMock.Config.Flags.Lookup("provider"),
})).Return(tc.Selection, nil)
clientsMock.AddDefaultMocks()

selectedProvider, err := ProviderSelectPrompt(ctx, clients, authorizationInfoLists)
require.Equal(t, selectedProvider.ProviderKey, "provider_a")
require.Equal(t, selectedProvider, authorizationInfoLists.Authorizations[0])
require.NoError(t, err)
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select a provider", mock.Anything, mock.Anything)
selectedProvider, err := ProviderSelectPrompt(ctx, clients, authorizationInfoLists)
require.Equal(t, selectedProvider.ProviderKey, "provider_a")
require.Equal(t, selectedProvider, authorizationInfoLists.Authorizations[0])
require.NoError(t, err)
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select a provider", mock.Anything, mock.Anything)
})
}
}

Expand All @@ -111,20 +113,20 @@ func TestPrompt_ProviderSelectPrompt_with_token(t *testing.T) {
},
}}

tests := []struct {
tests := map[string]struct {
ProviderFlag string
Selection iostreams.SelectPromptResponse
ExpectedAuthorization types.ExternalAuthorizationInfo
}{
{
"Flag selection": {
ProviderFlag: "provider_a",
Selection: iostreams.SelectPromptResponse{
Flag: true,
Option: "provider_a",
},
ExpectedAuthorization: authorizationInfoLists.Authorizations[0],
},
{
"Prompt selection": {
Selection: iostreams.SelectPromptResponse{
Prompt: true,
Option: "provider_a",
Expand All @@ -134,24 +136,26 @@ func TestPrompt_ProviderSelectPrompt_with_token(t *testing.T) {
},
}

for _, tc := range tests {
var mockProviderFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&mockProviderFlag, "provider", "", "mock provider flag")
if tc.ProviderFlag != "" {
_ = clientsMock.Config.Flags.Set("provider", tc.ProviderFlag)
}
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a provider", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clientsMock.Config.Flags.Lookup("provider"),
})).Return(tc.Selection, nil)
clientsMock.AddDefaultMocks()
for name, tc := range tests {
t.Run(name, func(t *testing.T) {
var mockProviderFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&mockProviderFlag, "provider", "", "mock provider flag")
if tc.ProviderFlag != "" {
_ = clientsMock.Config.Flags.Set("provider", tc.ProviderFlag)
}
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a provider", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clientsMock.Config.Flags.Lookup("provider"),
})).Return(tc.Selection, nil)
clientsMock.AddDefaultMocks()

selectedProvider, err := ProviderSelectPrompt(ctx, clients, authorizationInfoLists)
require.Equal(t, selectedProvider.ProviderKey, "provider_a")
require.Equal(t, selectedProvider, authorizationInfoLists.Authorizations[0])
require.NoError(t, err)
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select a provider", mock.Anything, mock.Anything)
selectedProvider, err := ProviderSelectPrompt(ctx, clients, authorizationInfoLists)
require.Equal(t, selectedProvider.ProviderKey, "provider_a")
require.Equal(t, selectedProvider, authorizationInfoLists.Authorizations[0])
require.NoError(t, err)
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select a provider", mock.Anything, mock.Anything)
})
}
}
48 changes: 25 additions & 23 deletions internal/pkg/externalauth/prompt_token_select_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,18 +61,18 @@ func TestPrompt_TokenSelectPrompt_with_token(t *testing.T) {
},
}

tests := []struct {
tests := map[string]struct {
ExternalAccountFlag string
Selection iostreams.SelectPromptResponse
}{
{
"Prompt selection": {
Selection: iostreams.SelectPromptResponse{
Prompt: true,
Option: "xyz2@salesforce.com",
Index: 1,
},
},
{
"Flag selection": {
ExternalAccountFlag: "xyz2@salesforce.com",
Selection: iostreams.SelectPromptResponse{
Flag: true,
Expand All @@ -81,27 +81,29 @@ func TestPrompt_TokenSelectPrompt_with_token(t *testing.T) {
},
}

var externalAccountFlag string
for _, tc := range tests {
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&externalAccountFlag, "external-account", "", "mock external-account flag")
if tc.ExternalAccountFlag != "" {
_ = clientsMock.Config.Flags.Set("external-account", tc.ExternalAccountFlag)
}
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select an external account", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clientsMock.Config.Flags.Lookup("external-account"),
})).Return(tc.Selection, nil)
clientsMock.AddDefaultMocks()
for name, tc := range tests {
t.Run(name, func(t *testing.T) {
var externalAccountFlag string
ctx := slackcontext.MockContext(t.Context())
clientsMock := shared.NewClientsMock()
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
clientsMock.Config.Flags.StringVar(&externalAccountFlag, "external-account", "", "mock external-account flag")
if tc.ExternalAccountFlag != "" {
_ = clientsMock.Config.Flags.Set("external-account", tc.ExternalAccountFlag)
}
clientsMock.IO.On("SelectPrompt", mock.Anything, "Select an external account", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{
Flag: clientsMock.Config.Flags.Lookup("external-account"),
})).Return(tc.Selection, nil)
clientsMock.AddDefaultMocks()

selectedToken, err := TokenSelectPrompt(ctx, clients, authorizationInfo)
require.NoError(t, err)
require.Equal(t, selectedToken, types.ExternalTokenInfo{
ExternalTokenID: "Et0548LABCDE2",
ExternalUserID: "xyz2@salesforce.com",
DateUpdated: 1682021192,
selectedToken, err := TokenSelectPrompt(ctx, clients, authorizationInfo)
require.NoError(t, err)
require.Equal(t, selectedToken, types.ExternalTokenInfo{
ExternalTokenID: "Et0548LABCDE2",
ExternalUserID: "xyz2@salesforce.com",
DateUpdated: 1682021192,
})
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select an external account", mock.Anything, mock.Anything)
})
clientsMock.IO.AssertCalled(t, "SelectPrompt", mock.Anything, "Select an external account", mock.Anything, mock.Anything)
}
}
Loading
Loading