Skip to content

Commit 8073429

Browse files
authored
refactor: update CobraCommand.Execute to CobraCommand.ExecuteContext in tests (#58)
refactor: update CobraCommand.Execute to CobraCommand.ExecuteContext
1 parent 8ec404c commit 8073429

29 files changed

+96
-72
lines changed

cmd/app/app_test.go

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ import (
1919

2020
"github.com/slackapi/slack-cli/internal/hooks"
2121
"github.com/slackapi/slack-cli/internal/shared"
22+
"github.com/slackapi/slack-cli/internal/slackcontext"
2223
"github.com/slackapi/slack-cli/test/testutil"
2324
"github.com/stretchr/testify/assert"
2425
)
2526

2627
func TestWorkspaceCommand(t *testing.T) {
2728
// Create mocks
29+
ctx := slackcontext.MockContext(t.Context())
2830
clientsMock := shared.NewClientsMock()
2931

3032
// Create clients that is mocked for testing
@@ -40,42 +42,10 @@ func TestWorkspaceCommand(t *testing.T) {
4042
listFunc = listPkgMock.List
4143
listPkgMock.On("List").Return(nil)
4244

43-
err := cmd.Execute()
45+
err := cmd.ExecuteContext(ctx)
4446
if err != nil {
4547
assert.Fail(t, "cmd.Execute had unexpected error")
4648
}
4749

4850
listPkgMock.AssertCalled(t, "List")
4951
}
50-
51-
// TODO: this test may need a stubbed out parent (root) command to get aliasing working
52-
/*
53-
func TestPostRunWorkspaceDeprecationMessage(t *testing.T) {
54-
55-
// Create mocks
56-
clientsMock := shared.NewClientsMock()
57-
clientsMock.AddDefaultMocks()
58-
59-
// Create clients that is mocked for testing
60-
clients := shared.NewClientFactory(clientsMock.MockClientFactory(), func(clients *shared.ClientFactory) {
61-
clients.SDKConfig = hooks.NewSDKConfigMock()
62-
})
63-
clients.IO = clientsMock.IO
64-
cmd := NewCommand(clients)
65-
// TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory"
66-
cmd.PreRunE = func(cmd *cobra.Command, args []string) error { return nil }
67-
args := []string{"team"}
68-
cmd.SetArgs(args)
69-
70-
testutil.MockCmdIO(clientsMock.IO, cmd)
71-
listPkgMock := new(ListPkgMock)
72-
listFunc = listPkgMock.List
73-
listPkgMock.On("List").Return(nil)
74-
75-
err := cmd.Execute()
76-
if err != nil {
77-
assert.Fail(t, "cmd.Execute had unexpected error", err.Error())
78-
}
79-
require.Contains(t, clientsMock.GetStdoutOutput(), "You can now use")
80-
}
81-
*/

cmd/app/list_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/slackapi/slack-cli/internal/hooks"
2323
"github.com/slackapi/slack-cli/internal/shared"
2424
"github.com/slackapi/slack-cli/internal/shared/types"
25+
"github.com/slackapi/slack-cli/internal/slackcontext"
2526
"github.com/slackapi/slack-cli/test/testutil"
2627
"github.com/stretchr/testify/assert"
2728
"github.com/stretchr/testify/mock"
@@ -39,6 +40,7 @@ func (m *ListPkgMock) List(ctx context.Context, clients *shared.ClientFactory) (
3940

4041
func TestAppsListCommand(t *testing.T) {
4142
// Create mocks
43+
ctx := slackcontext.MockContext(t.Context())
4244
clientsMock := shared.NewClientsMock()
4345

4446
// Create clients that is mocked for testing
@@ -54,7 +56,7 @@ func TestAppsListCommand(t *testing.T) {
5456
listFunc = listPkgMock.List
5557

5658
listPkgMock.On("List").Return(nil)
57-
err := cmd.Execute()
59+
err := cmd.ExecuteContext(ctx)
5860
if err != nil {
5961
assert.Fail(t, "cmd.Execute had unexpected error")
6062
}

cmd/auth/auth_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/slackapi/slack-cli/internal/logger"
2323
"github.com/slackapi/slack-cli/internal/shared"
2424
"github.com/slackapi/slack-cli/internal/shared/types"
25+
"github.com/slackapi/slack-cli/internal/slackcontext"
2526
"github.com/slackapi/slack-cli/test/testutil"
2627
"github.com/stretchr/testify/assert"
2728
"github.com/stretchr/testify/mock"
@@ -38,6 +39,7 @@ func (m *listMockObject) MockListFunction(ctx context.Context, clients *shared.C
3839

3940
func TestAuthCommand(t *testing.T) {
4041
// Create mocks
42+
ctx := slackcontext.MockContext(t.Context())
4143
clientsMock := shared.NewClientsMock()
4244
clientsMock.AddDefaultMocks()
4345

@@ -53,7 +55,7 @@ func TestAuthCommand(t *testing.T) {
5355
mock.On("MockListFunction").Return([]types.SlackAuth{}, nil)
5456

5557
// Execute test
56-
err := cmd.Execute()
58+
err := cmd.ExecuteContext(ctx)
5759
if err != nil {
5860
assert.Fail(t, "cmd.Execute had unexpected error")
5961
}

cmd/auth/list_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/slackapi/slack-cli/internal/logger"
2222
"github.com/slackapi/slack-cli/internal/shared"
2323
"github.com/slackapi/slack-cli/internal/shared/types"
24+
"github.com/slackapi/slack-cli/internal/slackcontext"
2425
"github.com/slackapi/slack-cli/test/testutil"
2526
"github.com/stretchr/testify/assert"
2627
"github.com/stretchr/testify/mock"
@@ -38,6 +39,7 @@ func (m *ListPkgMock) List(ctx context.Context, clients *shared.ClientFactory, l
3839

3940
func TestListCommand(t *testing.T) {
4041
// Create mocks
42+
ctx := slackcontext.MockContext(t.Context())
4143
clientsMock := shared.NewClientsMock()
4244
clientsMock.AddDefaultMocks()
4345

@@ -52,7 +54,7 @@ func TestListCommand(t *testing.T) {
5254
listFunc = listPkgMock.List
5355

5456
listPkgMock.On("List").Return([]types.SlackAuth{}, nil)
55-
err := cmd.Execute()
57+
err := cmd.ExecuteContext(ctx)
5658
if err != nil {
5759
assert.Fail(t, "cmd.Execute had unexpected error")
5860
}

cmd/collaborators/collaborators_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/slackapi/slack-cli/internal/prompts"
2323
"github.com/slackapi/slack-cli/internal/shared"
2424
"github.com/slackapi/slack-cli/internal/shared/types"
25+
"github.com/slackapi/slack-cli/internal/slackcontext"
2526
"github.com/slackapi/slack-cli/internal/slacktrace"
2627
"github.com/stretchr/testify/mock"
2728
"github.com/stretchr/testify/require"
@@ -99,6 +100,7 @@ func TestCollaboratorsCommand(t *testing.T) {
99100

100101
for name, tt := range tests {
101102
t.Run(name, func(t *testing.T) {
103+
ctx := slackcontext.MockContext(t.Context())
102104
appSelectMock := prompts.NewAppSelectMock()
103105
teamAppSelectPromptFunc = appSelectMock.TeamAppSelectPrompt
104106
appSelectMock.On("TeamAppSelectPrompt").Return(prompts.SelectedApp{App: tt.app, Auth: types.SlackAuth{}}, nil)
@@ -110,7 +112,7 @@ func TestCollaboratorsCommand(t *testing.T) {
110112
clients.SDKConfig = hooks.NewSDKConfigMock()
111113
})
112114

113-
err := NewCommand(clients).Execute()
115+
err := NewCommand(clients).ExecuteContext(ctx)
114116
require.NoError(t, err)
115117
clientsMock.ApiInterface.AssertCalled(t, "ListCollaborators", mock.Anything, mock.Anything, tt.app.AppID)
116118
clientsMock.IO.AssertCalled(t, "PrintTrace", mock.Anything, slacktrace.CollaboratorListSuccess, mock.Anything)

cmd/collaborators/list_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/slackapi/slack-cli/internal/prompts"
2323
"github.com/slackapi/slack-cli/internal/shared"
2424
"github.com/slackapi/slack-cli/internal/shared/types"
25+
"github.com/slackapi/slack-cli/internal/slackcontext"
2526
"github.com/slackapi/slack-cli/internal/slacktrace"
2627
"github.com/stretchr/testify/mock"
2728
"github.com/stretchr/testify/require"
@@ -99,6 +100,7 @@ func TestListCommand(t *testing.T) {
99100

100101
for name, tt := range tests {
101102
t.Run(name, func(t *testing.T) {
103+
ctx := slackcontext.MockContext(t.Context())
102104
appSelectMock := prompts.NewAppSelectMock()
103105
teamAppSelectPromptFunc = appSelectMock.TeamAppSelectPrompt
104106
appSelectMock.On("TeamAppSelectPrompt").Return(prompts.SelectedApp{App: tt.app, Auth: types.SlackAuth{}}, nil)
@@ -110,7 +112,7 @@ func TestListCommand(t *testing.T) {
110112
clients.SDKConfig = hooks.NewSDKConfigMock()
111113
})
112114

113-
err := NewListCommand(clients).Execute()
115+
err := NewListCommand(clients).ExecuteContext(ctx)
114116
require.NoError(t, err)
115117
clientsMock.ApiInterface.AssertCalled(t, "ListCollaborators", mock.Anything, mock.Anything, tt.app.AppID)
116118
clientsMock.IO.AssertCalled(t, "PrintTrace", mock.Anything, slacktrace.CollaboratorListSuccess, mock.Anything)

cmd/datastore/bulk_delete_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"github.com/slackapi/slack-cli/internal/logger"
2626
"github.com/slackapi/slack-cli/internal/shared"
2727
"github.com/slackapi/slack-cli/internal/shared/types"
28+
"github.com/slackapi/slack-cli/internal/slackcontext"
2829
"github.com/slackapi/slack-cli/internal/slackerror"
2930
"github.com/spf13/cobra"
3031
"github.com/stretchr/testify/assert"
@@ -174,6 +175,7 @@ func TestBulkDeleteCommand(t *testing.T) {
174175
}
175176
for name, tt := range tests {
176177
t.Run(name, func(t *testing.T) {
178+
ctx := slackcontext.MockContext(t.Context())
177179
clientsMock := setupDatastoreMocks()
178180
if tt.Setup != nil {
179181
tt.Setup(clientsMock)
@@ -194,7 +196,7 @@ func TestBulkDeleteCommand(t *testing.T) {
194196
clients.IO.SetCmdIO(cmd)
195197

196198
// Create mocked command
197-
err := cmd.Execute()
199+
err := cmd.ExecuteContext(ctx)
198200
if assert.NoError(t, err) {
199201
bulkDeleteMock.AssertCalled(t, "BulkDelete", mock.Anything, mock.Anything, mock.Anything, tt.Query)
200202
}

cmd/datastore/bulk_get_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"github.com/slackapi/slack-cli/internal/logger"
2626
"github.com/slackapi/slack-cli/internal/shared"
2727
"github.com/slackapi/slack-cli/internal/shared/types"
28+
"github.com/slackapi/slack-cli/internal/slackcontext"
2829
"github.com/slackapi/slack-cli/internal/slackerror"
2930
"github.com/spf13/cobra"
3031
"github.com/stretchr/testify/assert"
@@ -174,6 +175,7 @@ func TestBulkGetCommand(t *testing.T) {
174175
}
175176
for name, tt := range tests {
176177
t.Run(name, func(t *testing.T) {
178+
ctx := slackcontext.MockContext(t.Context())
177179
clientsMock := setupDatastoreMocks()
178180
if tt.Setup != nil {
179181
tt.Setup(clientsMock)
@@ -194,7 +196,7 @@ func TestBulkGetCommand(t *testing.T) {
194196
clients.IO.SetCmdIO(cmd)
195197

196198
// Perform test
197-
err := cmd.Execute()
199+
err := cmd.ExecuteContext(ctx)
198200
if assert.NoError(t, err) {
199201
bulkGetMock.AssertCalled(t, "BulkGet", mock.Anything, mock.Anything, mock.Anything, tt.Query)
200202
}

cmd/datastore/bulk_put_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/slackapi/slack-cli/internal/logger"
2929
"github.com/slackapi/slack-cli/internal/shared"
3030
"github.com/slackapi/slack-cli/internal/shared/types"
31+
"github.com/slackapi/slack-cli/internal/slackcontext"
3132
"github.com/slackapi/slack-cli/internal/slackerror"
3233
"github.com/slackapi/slack-cli/test/testutil"
3334
"github.com/spf13/afero"
@@ -191,6 +192,7 @@ func TestBulkPutCommand(t *testing.T) {
191192
}
192193
for name, tt := range tests {
193194
t.Run(name, func(t *testing.T) {
195+
ctx := slackcontext.MockContext(t.Context())
194196
clientsMock := setupDatastoreMocks()
195197
if tt.Setup != nil {
196198
tt.Setup(clientsMock)
@@ -211,7 +213,7 @@ func TestBulkPutCommand(t *testing.T) {
211213
clients.IO.SetCmdIO(cmd)
212214

213215
// Perform test
214-
err := cmd.Execute()
216+
err := cmd.ExecuteContext(ctx)
215217
if assert.NoError(t, err) {
216218
bulkPutMock.AssertCalled(t, "BulkPut", mock.Anything, mock.Anything, mock.Anything, tt.Query)
217219
}

cmd/datastore/delete_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/slackapi/slack-cli/internal/logger"
2727
"github.com/slackapi/slack-cli/internal/shared"
2828
"github.com/slackapi/slack-cli/internal/shared/types"
29+
"github.com/slackapi/slack-cli/internal/slackcontext"
2930
"github.com/slackapi/slack-cli/internal/slackerror"
3031
"github.com/spf13/cobra"
3132
"github.com/stretchr/testify/assert"
@@ -202,6 +203,7 @@ func TestDeleteCommand(t *testing.T) {
202203
}
203204
for name, tt := range tests {
204205
t.Run(name, func(t *testing.T) {
206+
ctx := slackcontext.MockContext(t.Context())
205207
clientsMock := setupDatastoreMocks()
206208
if tt.Setup != nil {
207209
tt.Setup(clientsMock)
@@ -225,7 +227,7 @@ func TestDeleteCommand(t *testing.T) {
225227
clients.IO.SetCmdIO(cmd)
226228

227229
// Perform test
228-
err := cmd.Execute()
230+
err := cmd.ExecuteContext(ctx)
229231
if assert.NoError(t, err) {
230232
deleteMock.AssertCalled(t, "Delete", mock.Anything, mock.Anything, mock.Anything, tt.Query)
231233
}

0 commit comments

Comments
 (0)