diff --git a/cmd/app/link_test.go b/cmd/app/link_test.go index ccb0d795..227f045b 100644 --- a/cmd/app/link_test.go +++ b/cmd/app/link_test.go @@ -24,6 +24,7 @@ import ( "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/slackapi/slack-cli/test/testutil" @@ -569,10 +570,8 @@ func Test_Apps_LinkAppHeaderSection(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - // Setup parameters for test - ctx := context.Background() - // Create mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() diff --git a/cmd/app/uninstall_test.go b/cmd/app/uninstall_test.go index aeb1181e..43b52f5e 100644 --- a/cmd/app/uninstall_test.go +++ b/cmd/app/uninstall_test.go @@ -48,7 +48,7 @@ func TestAppsUninstall(t *testing.T) { testutil.TableTestCommand(t, testutil.CommandTests{ "Successfully uninstall": { Setup: func(t *testing.T, ctx context.Context, clientsMock *shared.ClientsMock, clients *shared.ClientFactory) { - prepareCommonUninstallMocks(clients, clientsMock) + prepareCommonUninstallMocks(ctx, clients, clientsMock) clientsMock.ApiInterface.On("UninstallApp", mock.Anything, mock.Anything, fakeAppID, fakeAppTeamID). Return(nil).Once() }, @@ -58,7 +58,7 @@ func TestAppsUninstall(t *testing.T) { }, "Successfully uninstall with a get-manifest hook error": { Setup: func(t *testing.T, ctx context.Context, clientsMock *shared.ClientsMock, clients *shared.ClientFactory) { - prepareCommonUninstallMocks(clients, clientsMock) + prepareCommonUninstallMocks(ctx, clients, clientsMock) clientsMock.ApiInterface.On("UninstallApp", mock.Anything, mock.Anything, fakeAppID, fakeAppTeamID). Return(nil).Once() manifestMock := &app.ManifestMockObject{} @@ -73,7 +73,7 @@ func TestAppsUninstall(t *testing.T) { "Fail to uninstall due to API error": { ExpectedError: slackerror.New("something went wrong"), Setup: func(t *testing.T, ctx context.Context, clientsMock *shared.ClientsMock, clients *shared.ClientFactory) { - prepareCommonUninstallMocks(clients, clientsMock) + prepareCommonUninstallMocks(ctx, clients, clientsMock) clientsMock.ApiInterface.On("UninstallApp", mock.Anything, mock.Anything, fakeAppID, fakeAppTeamID). Return(slackerror.New("something went wrong")).Once() }, @@ -82,7 +82,7 @@ func TestAppsUninstall(t *testing.T) { CmdArgs: []string{}, ExpectedError: slackerror.New(slackerror.ErrCredentialsNotFound), Setup: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory) { - prepareCommonUninstallMocks(cf, cm) + prepareCommonUninstallMocks(ctx, cf, cm) appSelectMock := prompts.NewAppSelectMock() uninstallAppSelectPromptFunc = appSelectMock.AppSelectPrompt appSelectMock.On("AppSelectPrompt").Return(prompts.SelectedApp{App: fakeApp}, nil) @@ -95,7 +95,7 @@ func TestAppsUninstall(t *testing.T) { }) } -func prepareCommonUninstallMocks(clients *shared.ClientFactory, clientsMock *shared.ClientsMock) *shared.ClientFactory { +func prepareCommonUninstallMocks(ctx context.Context, clients *shared.ClientFactory, clientsMock *shared.ClientsMock) *shared.ClientFactory { // Mock App Selection appSelectMock := prompts.NewAppSelectMock() @@ -124,7 +124,7 @@ func prepareCommonUninstallMocks(clients *shared.ClientFactory, clientsMock *sha clients.AppClient().AppClientInterface = appClientMock - err := clients.AppClient().SaveDeployed(context.Background(), fakeApp) + err := clients.AppClient().SaveDeployed(ctx, fakeApp) if err != nil { panic("error setting up test; cant write apps.json") } diff --git a/cmd/auth/token_test.go b/cmd/auth/token_test.go index adf8a7b5..b6015de1 100644 --- a/cmd/auth/token_test.go +++ b/cmd/auth/token_test.go @@ -15,18 +15,20 @@ package auth import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/api" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/test/testutil" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" ) func TestTokenCommand(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) + clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On("ValidateSession", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.AuthSession{UserID: &mockOrgAuth.UserID, TeamID: &mockOrgAuth.TeamID, @@ -42,7 +44,7 @@ func TestTokenCommand(t *testing.T) { tokenFlag = "xoxp-example-1234" cmd := NewTokenCommand(clients) - cmd.SetContext(context.Background()) + cmd.SetContext(ctx) testutil.MockCmdIO(clients.IO, cmd) serviceTokenFlag = true diff --git a/cmd/doctor/check_test.go b/cmd/doctor/check_test.go index acddc73e..da47c83c 100644 --- a/cmd/doctor/check_test.go +++ b/cmd/doctor/check_test.go @@ -15,7 +15,6 @@ package doctor import ( - "context" "fmt" "runtime" "testing" @@ -26,6 +25,7 @@ import ( "github.com/slackapi/slack-cli/internal/pkg/version" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -34,10 +34,10 @@ import ( func TestDoctorCheckOS(t *testing.T) { t.Run("returns the operating system version", func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() expected := Section{ Label: "Operating System", Value: "the computer conductor", @@ -56,10 +56,10 @@ func TestDoctorCheckOS(t *testing.T) { func TestDoctorCheckCLIVersion(t *testing.T) { t.Run("returns the current version of this tool", func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() expected := Section{ Label: "CLI", Value: "this tool for building Slack apps", @@ -141,13 +141,13 @@ func TestDoctorCheckProjectConfig(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() pcm := &config.ProjectConfigMock{} pcm.On("ReadProjectConfigFile", mock.Anything).Return(tt.projectConfig, nil) clientsMock.Config.ProjectConfig = pcm clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() expected := Section{ Label: "Configurations", Value: "your project's CLI settings", @@ -218,10 +218,10 @@ func TestDoctorCheckProjectDeps(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clients := tt.mockHookSetup(clientsMock) - ctx := context.Background() expected := Section{ Label: "Dependencies", Value: "requisites for development", @@ -246,6 +246,7 @@ func TestDoctorCheckCLIConfig(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() scm := &config.SystemConfigMock{} @@ -254,7 +255,6 @@ func TestDoctorCheckCLIConfig(t *testing.T) { }, nil) clientsMock.Config.SystemConfig = scm clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() expected := Section{ Label: "Configurations", Value: "any adjustments to settings", @@ -297,10 +297,10 @@ func TestDoctorCheckCLICreds(t *testing.T) { for name := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() expected := Section{ Label: "Credentials", Value: "your Slack authentication", @@ -391,10 +391,10 @@ func TestDoctorCheckProjectTooling(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clients := tt.mockHookSetup(clientsMock) - ctx := context.Background() expected := Section{ Label: "Runtime", Value: "foundations for the application", @@ -410,7 +410,7 @@ func TestDoctorCheckProjectTooling(t *testing.T) { func TestDoctorCheckGit(t *testing.T) { t.Run("returns the version of git", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) gitVersion, err := deputil.GetGitVersion() require.NoError(t, err) expected := Section{ diff --git a/cmd/doctor/doctor_test.go b/cmd/doctor/doctor_test.go index 289ddb12..0ea22afb 100644 --- a/cmd/doctor/doctor_test.go +++ b/cmd/doctor/doctor_test.go @@ -16,7 +16,6 @@ package doctor import ( "bytes" - "context" "fmt" "runtime" "testing" @@ -28,6 +27,7 @@ import ( "github.com/slackapi/slack-cli/internal/pkg/version" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/slackapi/slack-cli/test/testutil" "github.com/stretchr/testify/assert" @@ -401,7 +401,7 @@ func TestDoctorHook(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clients := tt.mockHookSetup(clientsMock) diff --git a/cmd/env/add_test.go b/cmd/env/add_test.go index 94ee8178..2a150463 100644 --- a/cmd/env/add_test.go +++ b/cmd/env/add_test.go @@ -145,7 +145,7 @@ func Test_Env_AddCommand(t *testing.T) { "add a variable using arguments": { CmdArgs: []string{"ENV_NAME", "ENV_VALUE"}, Setup: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory) { - setupEnvAddCommandMocks(cm, cf) + setupEnvAddCommandMocks(ctx, cm, cf) }, ExpectedAsserts: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock) { cm.ApiInterface.AssertCalled( @@ -169,7 +169,7 @@ func Test_Env_AddCommand(t *testing.T) { "provide a variable name by argument and value by prompt": { CmdArgs: []string{"ENV_NAME"}, Setup: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory) { - setupEnvAddCommandMocks(cm, cf) + setupEnvAddCommandMocks(ctx, cm, cf) cm.IO.On( "PasswordPrompt", mock.Anything, @@ -200,7 +200,7 @@ func Test_Env_AddCommand(t *testing.T) { "provide a variable name by argument and value by flag": { CmdArgs: []string{"ENV_NAME", "--value", "example_value"}, Setup: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory) { - setupEnvAddCommandMocks(cm, cf) + setupEnvAddCommandMocks(ctx, cm, cf) cm.IO.On( "PasswordPrompt", mock.Anything, @@ -231,7 +231,7 @@ func Test_Env_AddCommand(t *testing.T) { "provide both variable name and value by prompt": { CmdArgs: []string{}, Setup: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory) { - setupEnvAddCommandMocks(cm, cf) + setupEnvAddCommandMocks(ctx, cm, cf) cm.IO.On( "InputPrompt", mock.Anything, @@ -276,10 +276,10 @@ func Test_Env_AddCommand(t *testing.T) { } // setupEnvAddCommandMocks prepares common mocks for these tests -func setupEnvAddCommandMocks(cm *shared.ClientsMock, cf *shared.ClientFactory) { +func setupEnvAddCommandMocks(ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory) { cf.SDKConfig = hooks.NewSDKConfigMock() cm.AddDefaultMocks() - _ = cf.AppClient().SaveDeployed(context.Background(), mockApp) + _ = cf.AppClient().SaveDeployed(ctx, mockApp) appSelectMock := prompts.NewAppSelectMock() teamAppSelectPromptFunc = appSelectMock.TeamAppSelectPrompt diff --git a/cmd/feedback/feedback_test.go b/cmd/feedback/feedback_test.go index 1520ef6f..d3ff2c94 100644 --- a/cmd/feedback/feedback_test.go +++ b/cmd/feedback/feedback_test.go @@ -24,6 +24,7 @@ import ( "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/slackapi/slack-cli/internal/style" "github.com/stretchr/testify/assert" @@ -46,6 +47,7 @@ func TestFeedbackCommand(t *testing.T) { } // Prepare mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() @@ -69,7 +71,7 @@ func TestFeedbackCommand(t *testing.T) { // Execute test cmd := NewFeedbackCommand(clients) - err := runFeedbackCommand(context.Background(), clients, cmd) + err := runFeedbackCommand(ctx, clients, cmd) assert.NoError(t, err) clientsMock.Browser.AssertCalled(t, "OpenURL", "https://survey.com?project_id=projectID&system_id=systemID&utm_medium=cli&utm_source=cli") }) @@ -104,6 +106,7 @@ func TestFeedbackCommand(t *testing.T) { } // Prepare mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() @@ -134,7 +137,7 @@ func TestFeedbackCommand(t *testing.T) { // Execute test cmd := NewFeedbackCommand(clients) - err := runFeedbackCommand(context.Background(), clients, cmd) + err := runFeedbackCommand(ctx, clients, cmd) assert.NoError(t, err) clientsMock.Browser.AssertCalled(t, "OpenURL", "https://survey.com?project_id=projectID&system_id=systemID&utm_medium=cli&utm_source=cli") }) @@ -196,6 +199,7 @@ func TestShowSurveyMessages(t *testing.T) { } // Prepare mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() @@ -239,7 +243,7 @@ func TestShowSurveyMessages(t *testing.T) { SurveyStore = surveys // Execute test - err := ShowSurveyMessages(context.Background(), clients) + err := ShowSurveyMessages(ctx, clients) assert.NoError(t, err) clientsMock.Browser.AssertCalled(t, "OpenURL", "https://B.com?project_id=projectID&system_id=systemID&utm_medium=cli&utm_source=cli") clientsMock.Browser.AssertCalled(t, "OpenURL", "https://C.com?project_id=projectID&system_id=systemID&utm_medium=cli&utm_source=cli") diff --git a/cmd/function/access_test.go b/cmd/function/access_test.go index d5021f1b..aad25a75 100644 --- a/cmd/function/access_test.go +++ b/cmd/function/access_test.go @@ -21,6 +21,7 @@ import ( "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/slackapi/slack-cli/test/testutil" "github.com/spf13/afero" @@ -326,6 +327,7 @@ func TestFunctionDistributionCommand_PermissionsFile(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.IO.AddDefaultMocks() err := afero.WriteFile(clientsMock.Fs, tt.filename, []byte(tt.data), 0644) @@ -339,7 +341,6 @@ func TestFunctionDistributionCommand_PermissionsFile(t *testing.T) { clientsMock.ApiInterface.On("FunctionDistributionSet", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). Return([]types.FunctionDistributionUser{}, nil) - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) app := types.App{AppID: "A123"} @@ -400,6 +401,7 @@ func TestFunctionDistributeCommand_UpdateNamedEntitiesDistribution(t *testing.T) for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On("FunctionDistributionSet", mock.Anything, mock.Anything, mock.Anything, types.NAMED_ENTITIES, mock.Anything). Return([]types.FunctionDistributionUser{}, nil). @@ -414,7 +416,6 @@ func TestFunctionDistributeCommand_UpdateNamedEntitiesDistribution(t *testing.T) app := types.App{AppID: "A123"} function := "Ft123" - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) err := updateNamedEntitiesDistribution(ctx, clients, app, function, tt.updatedEntities) diff --git a/cmd/function/prompt_test.go b/cmd/function/prompt_test.go index 6cc6e7ee..960957de 100644 --- a/cmd/function/prompt_test.go +++ b/cmd/function/prompt_test.go @@ -15,13 +15,13 @@ package function import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -61,6 +61,7 @@ func TestFunction_ChooseFunctionPrompt(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.IO.On("SelectPrompt", mock.Anything, "Choose a function", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clientsMock.Config.Flags.Lookup("name"), @@ -77,7 +78,6 @@ func TestFunction_ChooseFunctionPrompt(t *testing.T) { clients := shared.NewClientFactory(clientsMock.MockClientFactory(), func(clients *shared.ClientFactory) { clients.SDKConfig = sdkConfigMock }) - ctx := context.Background() functions := []types.Function{ {CallbackID: "alphabet_function"}, {CallbackID: "hello_function"}, diff --git a/cmd/help/help_test.go b/cmd/help/help_test.go index e147b68f..c0686e1f 100644 --- a/cmd/help/help_test.go +++ b/cmd/help/help_test.go @@ -15,11 +15,11 @@ package help import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/experiment" "github.com/slackapi/slack-cli/internal/shared" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/style" "github.com/slackapi/slack-cli/test/testutil" "github.com/spf13/cobra" @@ -75,6 +75,7 @@ func TestHelpFunc(t *testing.T) { experiment.EnabledExperiments = _EnabledExperiments }() + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clientsMock.Config.ExperimentsFlag = tt.experiments @@ -90,7 +91,7 @@ func TestHelpFunc(t *testing.T) { Run: func(cmd *cobra.Command, args []string) {}, } rootCmd.AddCommand(subCommand) - rootCmd.SetContext(context.Background()) + rootCmd.SetContext(ctx) rootCmd.Flags().Bool("help", true, "mock help flag") clientsMock.Config.SetFlags(rootCmd) testutil.MockCmdIO(clientsMock.IO, rootCmd) diff --git a/cmd/platform/deploy_test.go b/cmd/platform/deploy_test.go index e7349deb..5b1598bf 100644 --- a/cmd/platform/deploy_test.go +++ b/cmd/platform/deploy_test.go @@ -29,6 +29,7 @@ import ( "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/slackapi/slack-cli/internal/slacktrace" "github.com/slackapi/slack-cli/test/testutil" @@ -145,6 +146,7 @@ func TestDeployCommand_HasValidDeploymentMethod(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory(), func(clients *shared.ClientFactory) { manifestMock := &app.ManifestMockObject{} @@ -157,7 +159,6 @@ func TestDeployCommand_HasValidDeploymentMethod(t *testing.T) { clients.SDKConfig = hooks.NewSDKConfigMock() clients.SDKConfig.Hooks.Deploy.Command = tt.deployScript }) - ctx := context.Background() err := hasValidDeploymentMethod(ctx, clients, types.App{}, types.SlackAuth{}) if tt.expectedError != nil { require.Error(t, err) diff --git a/cmd/project/create_samples_test.go b/cmd/project/create_samples_test.go index 8ab6a3d0..3fb5aac2 100644 --- a/cmd/project/create_samples_test.go +++ b/cmd/project/create_samples_test.go @@ -15,7 +15,6 @@ package project import ( - "context" "io" "net/http/httptest" "testing" @@ -23,6 +22,7 @@ import ( "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/pkg/create" "github.com/slackapi/slack-cli/internal/shared" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -102,6 +102,7 @@ func TestSamples_PromptSampleSelection(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) sampler := create.NewMockSampler() w := httptest.NewRecorder() _, _ = io.WriteString(w, tt.mockSlackHTTPResponse) @@ -118,7 +119,6 @@ func TestSamples_PromptSampleSelection(t *testing.T) { }), ).Return(tt.mockSelection, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Execute test repoName, err := PromptSampleSelection(ctx, clients, sampler) diff --git a/cmd/project/create_test.go b/cmd/project/create_test.go index bdf925a9..3fb1ea17 100644 --- a/cmd/project/create_test.go +++ b/cmd/project/create_test.go @@ -23,6 +23,7 @@ import ( "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/create" "github.com/slackapi/slack-cli/internal/shared" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/slackapi/slack-cli/test/testutil" "github.com/stretchr/testify/assert" @@ -235,6 +236,7 @@ func TestCreateCommand_confirmExternalTemplateSelection(t *testing.T) { func Test_CreateCommand_BoltExperiment(t *testing.T) { // Create mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() @@ -243,7 +245,7 @@ func Test_CreateCommand_BoltExperiment(t *testing.T) { // Set experiment flag clientsMock.Config.ExperimentsFlag = append(clientsMock.Config.ExperimentsFlag, "bolt") - clientsMock.Config.LoadExperiments(context.Background(), clientsMock.IO.PrintDebug) + clientsMock.Config.LoadExperiments(ctx, clientsMock.IO.PrintDebug) // Create the command cmd := NewCreateCommand(clients) diff --git a/cmd/project/init_test.go b/cmd/project/init_test.go index 381696b0..576da4e3 100644 --- a/cmd/project/init_test.go +++ b/cmd/project/init_test.go @@ -56,14 +56,14 @@ func Test_Project_InitCommand(t *testing.T) { CmdArgs: []string{}, Setup: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory) { // Do not set experiment flag - setupProjectInitCommandMocks(t, cm, cf, false) + setupProjectInitCommandMocks(t, ctx, cm, cf, false) }, ExpectedErrorStrings: []string{"Command requires the Bolt Framework experiment"}, }, "init a project and do not link an existing app": { CmdArgs: []string{}, Setup: func(t *testing.T, ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory) { - setupProjectInitCommandMocks(t, cm, cf, true) + setupProjectInitCommandMocks(t, ctx, cm, cf, true) // Do not link an existing app cm.IO.On("ConfirmPrompt", mock.Anything, app.LinkAppConfirmPromptText, mock.Anything).Return(false, nil) }, @@ -114,7 +114,7 @@ func Test_Project_InitCommand(t *testing.T) { mockLinkSlackAuth1, }, nil) // Default setup - setupProjectInitCommandMocks(t, cm, cf, true) + setupProjectInitCommandMocks(t, ctx, cm, cf, true) // Do not link an existing app cm.IO.On("ConfirmPrompt", mock.Anything, app.LinkAppConfirmPromptText, mock.Anything).Return(true, nil) // Mock prompt to link an existing app @@ -221,7 +221,7 @@ func Test_Project_InitCommand(t *testing.T) { } // setupProjectInitCommandMocks prepares common mocks for these tests -func setupProjectInitCommandMocks(t *testing.T, cm *shared.ClientsMock, cf *shared.ClientFactory, boltExperimentEnabled bool) { +func setupProjectInitCommandMocks(t *testing.T, ctx context.Context, cm *shared.ClientsMock, cf *shared.ClientFactory, boltExperimentEnabled bool) { // Mocks projectDirPath := "/path/to/project-name" cm.Os.On("Getwd").Return(projectDirPath, nil) @@ -230,7 +230,7 @@ func setupProjectInitCommandMocks(t *testing.T, cm *shared.ClientsMock, cf *shar // Set experiment flag if boltExperimentEnabled { cm.Config.ExperimentsFlag = append(cm.Config.ExperimentsFlag, "bolt") - cm.Config.LoadExperiments(context.Background(), cm.IO.PrintDebug) + cm.Config.LoadExperiments(ctx, cm.IO.PrintDebug) } // Create project directory diff --git a/cmd/triggers/create_test.go b/cmd/triggers/create_test.go index 23dbc16b..5207d680 100644 --- a/cmd/triggers/create_test.go +++ b/cmd/triggers/create_test.go @@ -26,6 +26,7 @@ import ( "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/test/testutil" "github.com/spf13/afero" "github.com/spf13/cobra" @@ -546,13 +547,13 @@ func TestTriggersCreateCommand_promptShouldInstallAndRetry(t *testing.T) { testcases := []struct { name string - prepareMocks func(*app.AppMock, *shared.ClientsMock) + prepareMocks func(*testing.T, context.Context, *shared.ClientsMock, *app.AppMock) check func(*testing.T, types.DeployedTrigger, bool, error) }{ { name: "Accept prompt to reinstall and create the trigger successfully", - prepareMocks: func(appCmdMock *app.AppMock, clientsMock *shared.ClientsMock) { - appCmdMock.On("RunAddCommand", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(context.Background(), types.SUCCESS, types.App{}, nil) + prepareMocks: func(t *testing.T, ctx context.Context, clientsMock *shared.ClientsMock, appCmdMock *app.AppMock) { + appCmdMock.On("RunAddCommand", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(ctx, types.SUCCESS, types.App{}, nil) clientsMock.ApiInterface.On("WorkflowsTriggersCreate", mock.Anything, mock.Anything, mock.Anything). Return(types.DeployedTrigger{Name: "trigger name", ID: "Ft123", Type: "shortcut"}, nil) clientsMock.IO.On("ConfirmPrompt", mock.Anything, "Re-install app to apply local file changes and try again?", mock.Anything).Return(true, nil) @@ -565,7 +566,7 @@ func TestTriggersCreateCommand_promptShouldInstallAndRetry(t *testing.T) { }, { name: "Decline prompt to reinstall and do nothing", - prepareMocks: func(appCmdMock *app.AppMock, clientsMock *shared.ClientsMock) { + prepareMocks: func(t *testing.T, ctx context.Context, clientsMock *shared.ClientsMock, appCmdMock *app.AppMock) { clientsMock.IO.On("ConfirmPrompt", mock.Anything, "Re-install app to apply local file changes and try again?", mock.Anything).Return(false, nil) }, check: func(t *testing.T, trigger types.DeployedTrigger, ok bool, err error) { @@ -575,8 +576,8 @@ func TestTriggersCreateCommand_promptShouldInstallAndRetry(t *testing.T) { }, { name: "Accept prompt to reinstall but fail to create the trigger", - prepareMocks: func(appCmdMock *app.AppMock, clientsMock *shared.ClientsMock) { - appCmdMock.On("RunAddCommand", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(context.Background(), types.SUCCESS, types.App{}, nil) + prepareMocks: func(t *testing.T, ctx context.Context, clientsMock *shared.ClientsMock, appCmdMock *app.AppMock) { + appCmdMock.On("RunAddCommand", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(ctx, types.SUCCESS, types.App{}, nil) clientsMock.ApiInterface.On("WorkflowsTriggersCreate", mock.Anything, mock.Anything, mock.Anything). Return(types.DeployedTrigger{}, errors.New("something_else_went_wrong")) clientsMock.Os.On("UserHomeDir").Return("", nil) // Called by clients.IO.PrintError @@ -594,17 +595,16 @@ func TestTriggersCreateCommand_promptShouldInstallAndRetry(t *testing.T) { fmt.Println("Running TriggersCreate test: ", testcase.name) // Prepare mocks - + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) cmd := NewCreateCommand(clients) triggerRequest := api.TriggerRequest{} - ctx := context.Background() appCmdMock := new(app.AppMock) workspaceInstallAppFunc = appCmdMock.RunAddCommand - testcase.prepareMocks(appCmdMock, clientsMock) + testcase.prepareMocks(t, ctx, clientsMock, appCmdMock) // Execute test diff --git a/cmd/triggers/generate_test.go b/cmd/triggers/generate_test.go index 58d30c10..d68f78b7 100644 --- a/cmd/triggers/generate_test.go +++ b/cmd/triggers/generate_test.go @@ -25,6 +25,7 @@ import ( "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/spf13/afero" "github.com/stretchr/testify/assert" @@ -54,7 +55,7 @@ func Test_TriggerGenerate_accept_prompt(t *testing.T) { } t.Run(tt.name, func(t *testing.T) { - ctx, clientsMock := prepareMocks(tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) + ctx, clientsMock := prepareMocks(t, tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) clientsMock.IO.On("SelectPrompt", mock.Anything, "Choose a trigger definition file:", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clientsMock.Config.Flags.Lookup("trigger-def"), @@ -94,7 +95,7 @@ func Test_TriggerGenerate_decline_prompt(t *testing.T) { } t.Run(tt.name, func(t *testing.T) { - ctx, clientsMock := prepareMocks(tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) + ctx, clientsMock := prepareMocks(t, tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) clientsMock.IO.On("SelectPrompt", mock.Anything, "Choose a trigger definition file:", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clientsMock.Config.Flags.Lookup("trigger-def"), })).Return(iostreams.SelectPromptResponse{ @@ -127,7 +128,7 @@ func Test_TriggerGenerate_skip_prompt(t *testing.T) { } t.Run(tt.name, func(t *testing.T) { - ctx, clientsMock := prepareMocks(tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) + ctx, clientsMock := prepareMocks(t, tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) clientsMock.ApiInterface.On("ListCollaborators", mock.Anything, mock.Anything, mock.Anything).Return([]types.SlackUser{}, nil) clientsMock.ApiInterface.On("TriggerPermissionsList", mock.Anything, mock.Anything, mock.Anything). Return(types.EVERYONE, []string{}, nil).Once() @@ -158,7 +159,7 @@ func Test_TriggerGenerate_handle_error(t *testing.T) { } t.Run(tt.name, func(t *testing.T) { - ctx, clientsMock := prepareMocks(tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, fmt.Errorf("something went wrong") /*trigger create error*/) + ctx, clientsMock := prepareMocks(t, tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, fmt.Errorf("something went wrong") /*trigger create error*/) clientsMock.IO.On("SelectPrompt", mock.Anything, "Choose a trigger definition file:", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clientsMock.Config.Flags.Lookup("trigger-def"), })).Return(iostreams.SelectPromptResponse{ @@ -197,7 +198,7 @@ func Test_TriggerGenerate_handle_invalid_paths(t *testing.T) { } t.Run(tt.name, func(t *testing.T) { - ctx, clientsMock := prepareMocks(tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil) + ctx, clientsMock := prepareMocks(t, tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory(), func(clients *shared.ClientFactory) { clients.SDKConfig = hooks.NewSDKConfigMock() @@ -226,7 +227,7 @@ func Test_TriggerGenerate_Config_TriggerPaths_Default(t *testing.T) { } t.Run(tt.name, func(t *testing.T) { - ctx, clientsMock := prepareMocks(tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) + ctx, clientsMock := prepareMocks(t, tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) clientsMock.IO.On("SelectPrompt", mock.Anything, "Choose a trigger definition file:", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clientsMock.Config.Flags.Lookup("trigger-def"), })).Return(iostreams.SelectPromptResponse{ @@ -266,7 +267,7 @@ func Test_TriggerGenerate_Config_TriggerPaths_Custom(t *testing.T) { } t.Run(tt.name, func(t *testing.T) { - ctx, clientsMock := prepareMocks(tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) + ctx, clientsMock := prepareMocks(t, tt.triggersListResponse, tt.globResponse, tt.triggersCreateResponse, nil /*trigger create error*/) clientsMock.IO.On("SelectPrompt", mock.Anything, "Choose a trigger definition file:", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clientsMock.Config.Flags.Lookup("trigger-def"), })).Return(iostreams.SelectPromptResponse{ @@ -451,8 +452,8 @@ func Test_ShowTriggers(t *testing.T) { } } -func prepareMocks(triggersListResponse []types.DeployedTrigger, globResponse []string, triggersCreateResponse types.DeployedTrigger, triggersCreateResponseError error) (context.Context, *shared.ClientsMock) { - ctx := context.Background() +func prepareMocks(t *testing.T, triggersListResponse []types.DeployedTrigger, globResponse []string, triggersCreateResponse types.DeployedTrigger, triggersCreateResponseError error) (context.Context, *shared.ClientsMock) { + ctx := slackcontext.MockContext(t.Context()) ctx = config.SetContextToken(ctx, "token") clientsMock := shared.NewClientsMock() diff --git a/internal/app/app_client_test.go b/internal/app/app_client_test.go index 1f7c5078..013baba5 100644 --- a/internal/app/app_client_test.go +++ b/internal/app/app_client_test.go @@ -15,7 +15,6 @@ package app import ( - "context" "encoding/json" "errors" "os" @@ -24,6 +23,7 @@ import ( "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/spf13/afero" @@ -211,8 +211,9 @@ func Test_AppClient_ReadDevApps_BrokenAppsJSON(t *testing.T) { func Test_AppClient_getDeployedAppTeamDomain_ViaCLIFlag(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) + ctx := slackcontext.MockContext(t.Context()) ac.config.TeamFlag = "flagname" - name := ac.getDeployedAppTeamDomain(context.Background()) + name := ac.getDeployedAppTeamDomain(ctx) assert.Equal(t, "flagname", name) } @@ -220,7 +221,7 @@ func Test_AppClient_getDeployedAppTeamDomain_ViaCLIFlag(t *testing.T) { func Test_AppClient_getDeployedAppTeamDomain_ViaDefaultDef(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) err := ac.apps.Set(types.App{ TeamID: "T123", TeamDomain: "shouty-rooster", @@ -235,7 +236,7 @@ func Test_AppClient_getDeployedAppTeamDomain_ViaDefaultDef(t *testing.T) { func Test_AppClient_getDeployedAppTeamDomain_ViaDefaultAppName(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) name := ac.getDeployedAppTeamDomain(ctx) assert.Equal(t, "prod", name) } @@ -244,7 +245,7 @@ func Test_AppClient_getDeployedAppTeamDomain_ViaDefaultAppName(t *testing.T) { func Test_AppClient_GetDeployed_Empty(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) // FIXME: This action is unsafely fetching an app. Please explicitly supply a TeamID // This test case is specifically trying to test existing behavior when "" supplied @@ -257,7 +258,7 @@ func Test_AppClient_GetDeployed_Empty(t *testing.T) { func Test_AppClient_GetDeployed_DefaultApp(t *testing.T) { ac, _, _, pathToAppsJSON, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) jsonContents := []byte(`{ "apps":{ "twistandshout":{ @@ -281,7 +282,7 @@ func Test_AppClient_GetDeployed_DefaultApp(t *testing.T) { func Test_AppClient_GetDeployed_TeamID_NoDefault(t *testing.T) { ac, _, _, pathToAppsJSON, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) jsonContents := []byte(`{ "apps":{ "T1":{ @@ -302,7 +303,7 @@ func Test_AppClient_GetDeployed_TeamID_NoDefault(t *testing.T) { func Test_AppClient_GetLocal_Empty(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) app, err := ac.GetLocal(ctx, "T123") require.NoError(t, err) assert.True(t, app.IsNew()) @@ -312,7 +313,7 @@ func Test_AppClient_GetLocal_Empty(t *testing.T) { func Test_AppClient_GetLocal_SingleApp(t *testing.T) { ac, _, _, _, pathToDevAppsJSON, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) jsonContents := []byte(`{ "U123":{ "name":"dev", @@ -332,7 +333,7 @@ func Test_AppClient_GetLocal_SingleApp(t *testing.T) { func Test_AppClient_GetDeployedAll_Empty(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) apps, defaultName, err := ac.GetDeployedAll(ctx) require.NoError(t, err) assert.Equal(t, []types.App{}, apps) @@ -343,7 +344,7 @@ func Test_AppClient_GetDeployedAll_Empty(t *testing.T) { func Test_AppClient_GetDeployedAll_SomeApps(t *testing.T) { ac, _, _, pathToAppsJSON, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) jsonContents := []byte(`{ "apps":{ "twistandshout":{ @@ -372,7 +373,7 @@ func Test_AppClient_GetDeployedAll_SomeApps(t *testing.T) { func Test_AppClient_GetLocalAll_Empty(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) apps, err := ac.GetLocalAll(ctx) require.NoError(t, err) assert.Equal(t, []types.App{}, apps) @@ -382,7 +383,7 @@ func Test_AppClient_GetLocalAll_Empty(t *testing.T) { func Test_AppClient_GetLocalAll_SomeApps(t *testing.T) { ac, _, _, _, pathToDevAppsJSON, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) jsonContents := []byte(`{ "U123":{ "name":"dev", @@ -401,7 +402,7 @@ func Test_AppClient_GetLocalAll_SomeApps(t *testing.T) { func Test_AppClient_Save_Empty(t *testing.T) { ac, _, _, pathToAppsJSON, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) app := types.App{ TeamID: "T123", TeamDomain: "shouty-rooster", @@ -430,7 +431,7 @@ func Test_AppClient_Save_Empty(t *testing.T) { func Test_AppClient_Save_NotEmpty(t *testing.T) { ac, _, _, pathToAppsJSON, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) app := types.App{ TeamID: "T123", TeamDomain: "shouty-rooster", @@ -467,7 +468,7 @@ func Test_AppClient_Save_NotEmpty(t *testing.T) { func Test_AppClient_SaveLocal_Empty(t *testing.T) { ac, _, _, _, pathToDevAppsJSON, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) appTeamID := "T1" app := types.App{ AppID: "A123", @@ -500,7 +501,7 @@ func Test_AppClient_SaveLocal_Empty(t *testing.T) { func Test_AppClient_SaveLocal_NotEmpty(t *testing.T) { ac, _, _, _, pathToDevAppsJSON, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) appTeamID := "T1" app := types.App{ AppID: "A123", @@ -533,7 +534,7 @@ func Test_AppClient_SaveLocal_NotEmpty(t *testing.T) { func Test_AppClient_RemoveDeployed(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) app := types.App{ TeamID: "T123", TeamDomain: "shouty-rooster", @@ -557,7 +558,7 @@ func Test_AppClient_RemoveDeployed(t *testing.T) { func Test_AppClient_RemoveLocal(t *testing.T) { ac, _, _, _, _, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) app := types.App{ AppID: "A123", UserID: "U123", @@ -694,7 +695,7 @@ func TestAppClient_CleanupAppsJsonFiles(t *testing.T) { for _, tt := range tests { ac, _, _, pathToAppsJSON, pathToDevAppsJSON, teardown := setup(t) defer teardown(t) - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) err := afero.WriteFile(ac.fs, pathToAppsJSON, tt.appsJSON, 0600) require.NoError(t, err) diff --git a/internal/app/manifest_test.go b/internal/app/manifest_test.go index aaac8a56..8116f34e 100644 --- a/internal/app/manifest_test.go +++ b/internal/app/manifest_test.go @@ -15,13 +15,13 @@ package app import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/api" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/assert" @@ -177,6 +177,7 @@ func Test_AppManifest_GetManifestRemote(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) fsMock := slackdeps.NewFsMock() osMock := slackdeps.NewOsMock() osMock.AddDefaultMocks() @@ -186,7 +187,6 @@ func Test_AppManifest_GetManifestRemote(t *testing.T) { Return(api.ExportAppResult{Manifest: tt.mockManifestResponse}, tt.mockManifestError) manifestClient := NewManifestClient(apic, configMock) - ctx := context.Background() manifest, err := manifestClient.GetManifestRemote(ctx, tt.mockToken, tt.mockAppID) if tt.expectedError != nil { assert.Equal(t, tt.expectedError, err) diff --git a/internal/cache/manifest_test.go b/internal/cache/manifest_test.go index bddb1200..880e076d 100644 --- a/internal/cache/manifest_test.go +++ b/internal/cache/manifest_test.go @@ -15,11 +15,11 @@ package cache import ( - "context" "path/filepath" "testing" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -43,13 +43,13 @@ func TestCache_Manifest(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) fsMock := slackdeps.NewFsMock() osMock := slackdeps.NewOsMock() projectDirPath := "/path/to/project-name" err := fsMock.MkdirAll(filepath.Dir(projectDirPath), 0o755) require.NoError(t, err) cache := NewCache(fsMock, osMock, projectDirPath) - ctx := context.Background() err = cache.SetManifestHash(ctx, tt.mockAppID, tt.mockCache.Hash) require.NoError(t, err) cache.ManifestCache.Apps = map[string]ManifestCacheApp{ @@ -104,12 +104,12 @@ func TestCache_Manifest_NewManifestHash(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) fsMock := slackdeps.NewFsMock() osMock := slackdeps.NewOsMock() projectDirPath := "/path/to/project-name" err := fsMock.MkdirAll(filepath.Dir(projectDirPath), 0o755) require.NoError(t, err) - ctx := context.Background() cache := NewCache(fsMock, osMock, projectDirPath) hash, err := cache.NewManifestHash(ctx, tt.mockManifest) assert.NoError(t, err) diff --git a/internal/cmdutil/project_test.go b/internal/cmdutil/project_test.go index d0cb35e2..149bfc22 100644 --- a/internal/cmdutil/project_test.go +++ b/internal/cmdutil/project_test.go @@ -15,7 +15,6 @@ package cmdutil import ( - "context" "fmt" "testing" @@ -23,6 +22,7 @@ import ( "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -79,6 +79,7 @@ func TestIsSlackHostedProject(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() manifestMock := &app.ManifestMockObject{} manifestMock.On( @@ -93,7 +94,6 @@ func TestIsSlackHostedProject(t *testing.T) { projectConfigMock := config.NewProjectConfigMock() projectConfigMock.On("GetManifestSource", mock.Anything).Return(tt.mockManifestSource, nil) clientsMock.Config.ProjectConfig = projectConfigMock - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) err := IsSlackHostedProject(ctx, clients) assert.Equal(t, tt.expectedError, err) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 8338bc05..7cea4538 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -20,6 +20,7 @@ import ( "testing" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/spf13/afero" "github.com/stretchr/testify/assert" @@ -28,7 +29,7 @@ import ( // setup func setup(t *testing.T) (context.Context, *slackdeps.FsMock, *slackdeps.OsMock, *Config, string, func(*testing.T)) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() os.AddDefaultMocks() diff --git a/internal/config/project_test.go b/internal/config/project_test.go index 9423e68d..b53a00bb 100644 --- a/internal/config/project_test.go +++ b/internal/config/project_test.go @@ -15,7 +15,6 @@ package config import ( - "context" "os" "path/filepath" "testing" @@ -23,6 +22,7 @@ import ( "github.com/google/uuid" "github.com/slackapi/slack-cli/internal/cache" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/spf13/afero" @@ -56,7 +56,7 @@ func Test_ProjectConfig_NewProjectConfig(t *testing.T) { func Test_ProjectConfig_InitProjectID(t *testing.T) { t.Run("When not a project directory, should return an error", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -72,7 +72,7 @@ func Test_ProjectConfig_InitProjectID(t *testing.T) { }) t.Run("When project_id is empty, should init project_id", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -90,7 +90,7 @@ func Test_ProjectConfig_InitProjectID(t *testing.T) { }) t.Run("When project_id exists, should not overwrite project_id (overwrite: false)", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -114,7 +114,7 @@ func Test_ProjectConfig_InitProjectID(t *testing.T) { }) t.Run("When project_id exists, should overwrite project_id (overwrite: true)", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -141,7 +141,7 @@ func Test_ProjectConfig_InitProjectID(t *testing.T) { func Test_ProjectConfig_GetProjectID(t *testing.T) { t.Run("When not a project directory, should return an error", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -157,7 +157,7 @@ func Test_ProjectConfig_GetProjectID(t *testing.T) { }) t.Run("When a project directory, should return trimmed project_id", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -183,7 +183,7 @@ func Test_ProjectConfig_GetProjectID(t *testing.T) { func Test_ProjectConfig_SetProjectID(t *testing.T) { t.Run("When not a project directory, should return an error", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -200,7 +200,7 @@ func Test_ProjectConfig_SetProjectID(t *testing.T) { }) t.Run("When a project directory, should update the project_id", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -254,7 +254,7 @@ func Test_ProjectConfig_ManifestSource(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() os.AddDefaultMocks() @@ -274,7 +274,7 @@ func Test_ProjectConfig_ManifestSource(t *testing.T) { func Test_ProjectConfig_ReadProjectConfigFile(t *testing.T) { t.Run("When not a project directory, should return an error", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -289,7 +289,7 @@ func Test_ProjectConfig_ReadProjectConfigFile(t *testing.T) { }) t.Run("When project directory doesn't have a .slack/config.json, should return a default config.json", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -310,7 +310,7 @@ func Test_ProjectConfig_ReadProjectConfigFile(t *testing.T) { }) t.Run("When a project directory has a .slack/config.json, should return config.json", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -335,7 +335,7 @@ func Test_ProjectConfig_ReadProjectConfigFile(t *testing.T) { }) t.Run("errors on invalid formatting of project config file", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -360,7 +360,7 @@ func Test_ProjectConfig_ReadProjectConfigFile(t *testing.T) { func Test_ProjectConfig_WriteProjectConfigFile(t *testing.T) { t.Run("When not a project directory, should return an error", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -379,7 +379,7 @@ func Test_ProjectConfig_WriteProjectConfigFile(t *testing.T) { }) t.Run("When a project directory, should write the .slack/config.json file", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -502,11 +502,11 @@ func Test_ProjectConfig_Cache(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() os.AddDefaultMocks() addProjectMocks(t, fs) - ctx := context.Background() projectConfig := NewProjectConfig(fs, os) cache := projectConfig.Cache() if !tt.mockHash.Equals("") { @@ -563,7 +563,7 @@ func Test_Config_CreateProjectConfigDir(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := afero.NewMemMapFs() if tt.existingDir { err := fs.MkdirAll(tt.projectDirPath+"/.slack", 0755) diff --git a/internal/config/system_test.go b/internal/config/system_test.go index 24729ab0..7035a5be 100644 --- a/internal/config/system_test.go +++ b/internal/config/system_test.go @@ -15,7 +15,6 @@ package config import ( - "context" "encoding/json" "errors" _os "os" @@ -26,6 +25,7 @@ import ( "time" "github.com/google/uuid" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/spf13/afero" @@ -54,7 +54,7 @@ func Test_SystemConfig_SetCustomConfigDirPath(t *testing.T) { func Test_SystemConfig_UserConfig(t *testing.T) { t.Run("Error reading configuration directory", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -70,7 +70,7 @@ func Test_SystemConfig_UserConfig(t *testing.T) { }) t.Run("Error when configuration file does not exist", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -86,7 +86,7 @@ func Test_SystemConfig_UserConfig(t *testing.T) { }) t.Run("Error when configuration file has bad formatting", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -111,7 +111,7 @@ func Test_SystemConfig_UserConfig(t *testing.T) { func Test_Config_SlackConfigDir(t *testing.T) { t.Run("Return home directory by default", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -126,7 +126,7 @@ func Test_Config_SlackConfigDir(t *testing.T) { }) t.Run("Return custom directory when it exists", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -142,9 +142,8 @@ func Test_Config_SlackConfigDir(t *testing.T) { require.NoError(t, err) }) - // TODO(@mbrooks) Uncomment t.Run("Return error when custom directory is missing", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -161,7 +160,7 @@ func Test_Config_SlackConfigDir(t *testing.T) { }) t.Run("Return error when home directory and working directory are unavailable", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -178,7 +177,7 @@ func Test_Config_SlackConfigDir(t *testing.T) { }) t.Run("Return error when creating default config directory fails", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -195,7 +194,7 @@ func Test_Config_SlackConfigDir(t *testing.T) { }) t.Run("Keep existing configuration files", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -215,7 +214,7 @@ func Test_Config_SlackConfigDir(t *testing.T) { func Test_SystemConfig_LogsDir(t *testing.T) { t.Run("Create logs folder in .slack directory", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -233,7 +232,7 @@ func Test_SystemConfig_LogsDir(t *testing.T) { func Test_Config_GetLastUpdateCheckedAt(t *testing.T) { t.Run("Error reading User Configuration file returns current time", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -252,7 +251,7 @@ func Test_Config_GetLastUpdateCheckedAt(t *testing.T) { }) t.Run("Returns LastUpdateCheckedAt from User Configuration File", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -272,7 +271,7 @@ func Test_Config_GetLastUpdateCheckedAt(t *testing.T) { func Test_Config_SetLastUpdateCheckedAt(t *testing.T) { t.Run("Error reading User Configuration file", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -290,7 +289,7 @@ func Test_Config_SetLastUpdateCheckedAt(t *testing.T) { }) t.Run("Writes LastUpdateCheckedAt to User Configuration file", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -311,7 +310,7 @@ func Test_Config_SetLastUpdateCheckedAt(t *testing.T) { func Test_SystemConfig_GetSystemID(t *testing.T) { t.Run("When no system_id is set, should return empty string", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -326,7 +325,7 @@ func Test_SystemConfig_GetSystemID(t *testing.T) { }) t.Run("When system_id is set, should return system_id", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -351,7 +350,7 @@ func Test_SystemConfig_GetSystemID(t *testing.T) { func Test_SystemConfig_SetSystemID(t *testing.T) { t.Run("Should update the system_id", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -385,7 +384,7 @@ func Test_SystemConfig_SetSystemID(t *testing.T) { func Test_SystemConfig_InitSystemID(t *testing.T) { t.Run("When system_id is empty, should generate a new system_id", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -413,7 +412,7 @@ func Test_SystemConfig_InitSystemID(t *testing.T) { }) t.Run("When system_id is not empty, should not overwrite it", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -596,7 +595,7 @@ func Test_SystemConfig_writeConfigFile(t *testing.T) { func Test_SystemConfig_GetTrustUnknownSources(t *testing.T) { t.Run("When no trust_unknown_sources is set, should return false", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -611,7 +610,7 @@ func Test_SystemConfig_GetTrustUnknownSources(t *testing.T) { }) t.Run("When trust_unknown_sources is set, should return true", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() @@ -635,7 +634,7 @@ func Test_SystemConfig_GetTrustUnknownSources(t *testing.T) { func Test_SystemConfig_SetTrustUnknownSources(t *testing.T) { t.Run("Should update the trust_unknown_sources", func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() diff --git a/internal/iostreams/logfile_test.go b/internal/iostreams/logfile_test.go index 89e93843..8ffd02ae 100644 --- a/internal/iostreams/logfile_test.go +++ b/internal/iostreams/logfile_test.go @@ -16,7 +16,6 @@ package iostreams import ( "bytes" - "context" "fmt" "log" "os" @@ -26,6 +25,7 @@ import ( "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/goutils" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/spf13/afero" "github.com/stretchr/testify/assert" @@ -162,6 +162,7 @@ func Test_FlushToLogFile(t *testing.T) { stderrBuff := bytes.Buffer{} stderrLogger := log.Logger{} stderrLogger.SetOutput(&stderrBuff) + ctx := slackcontext.MockContext(t.Context()) fsMock := slackdeps.NewFsMock() osMock := slackdeps.NewOsMock() osMock.AddDefaultMocks() @@ -173,7 +174,6 @@ func Test_FlushToLogFile(t *testing.T) { io = NewIOStreams(config, fsMock, osMock) io.Stderr = &stderrLogger - ctx := context.Background() err := io.FlushToLogFile(ctx, tt.prefix, tt.errStr) require.NoError(t, err) diff --git a/internal/iostreams/printer_test.go b/internal/iostreams/printer_test.go index 6cb37d92..064ca3e2 100644 --- a/internal/iostreams/printer_test.go +++ b/internal/iostreams/printer_test.go @@ -16,7 +16,6 @@ package iostreams import ( "bytes" - "context" "fmt" "log" "regexp" @@ -24,6 +23,7 @@ import ( "testing" "github.com/slackapi/slack-cli/internal/config" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -59,6 +59,7 @@ func Test_PrintDebug(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) fsMock := slackdeps.NewFsMock() osMock := slackdeps.NewOsMock() osMock.AddDefaultMocks() @@ -69,7 +70,6 @@ func Test_PrintDebug(t *testing.T) { stdoutLogger := log.Logger{} stdoutLogger.SetOutput(&stdoutBuffer) io.Stdout = &stdoutLogger - ctx := context.Background() io.PrintDebug(ctx, tt.format, tt.arguments...) // Assert output lines match the pattern: [YYYY-MM-DD HH:MM:SS] line @@ -127,6 +127,7 @@ func Test_PrintWarning(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) fsMock := slackdeps.NewFsMock() osMock := slackdeps.NewOsMock() osMock.AddDefaultMocks() @@ -136,7 +137,6 @@ func Test_PrintWarning(t *testing.T) { stderrLogger := log.Logger{} stderrLogger.SetOutput(&stderrBuffer) io.Stderr = &stderrLogger - ctx := context.Background() io.PrintWarning(ctx, tt.format, tt.arguments...) assert.Equal(t, tt.expected, stderrBuffer.String()) }) @@ -185,13 +185,13 @@ func Test_IOStreams_PrintTrace(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { // Setup + ctx := slackcontext.MockContext(t.Context()) var fsMock = slackdeps.NewFsMock() var osMock = slackdeps.NewOsMock() var config = config.NewConfig(fsMock, osMock) config.SlackTestTraceFlag = tt.traceEnabled var io = NewIOStreams(config, fsMock, osMock) - var ctx = context.Background() var stdoutBuffer = bytes.Buffer{} var stdoutLogger = log.Logger{} diff --git a/internal/iostreams/survey_test.go b/internal/iostreams/survey_test.go index 14ce7c4a..9fcda057 100644 --- a/internal/iostreams/survey_test.go +++ b/internal/iostreams/survey_test.go @@ -15,11 +15,11 @@ package iostreams import ( - "context" "fmt" "testing" "github.com/slackapi/slack-cli/internal/config" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/spf13/pflag" @@ -74,7 +74,7 @@ func TestPasswordPrompt(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fsMock := slackdeps.NewFsMock() osMock := slackdeps.NewOsMock() if tt.IsInteractive { diff --git a/internal/pkg/apps/delete_test.go b/internal/pkg/apps/delete_test.go index a8aa330a..d3ac90dc 100644 --- a/internal/pkg/apps/delete_test.go +++ b/internal/pkg/apps/delete_test.go @@ -15,13 +15,13 @@ package apps import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/api" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -79,6 +79,7 @@ func TestAppsDelete(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On("ResolveApiHost", mock.Anything, mock.Anything, mock.Anything).Return("api host") clientsMock.AuthInterface.On("ResolveLogstashHost", mock.Anything, mock.Anything, mock.Anything).Return("logstash host") @@ -89,7 +90,6 @@ func TestAppsDelete(t *testing.T) { clientsMock.ApiInterface.On("DeleteApp", mock.Anything, mock.Anything, tt.app.AppID).Return(nil) clientsMock.AddDefaultMocks() - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) if !tt.unsaved { if !tt.app.IsDev { diff --git a/internal/pkg/apps/install_test.go b/internal/pkg/apps/install_test.go index 1e064dc0..c3890c86 100644 --- a/internal/pkg/apps/install_test.go +++ b/internal/pkg/apps/install_test.go @@ -16,7 +16,6 @@ package apps import ( "bytes" - "context" "testing" "github.com/slackapi/slack-cli/internal/api" @@ -27,6 +26,7 @@ import ( "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -455,7 +455,7 @@ func TestInstall(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.IO.On("IsTTY").Return(tt.mockIsTTY) clientsMock.AddDefaultMocks() @@ -898,7 +898,7 @@ func TestInstallLocalApp(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.IO.On("IsTTY").Return(tt.mockIsTTY) clientsMock.AddDefaultMocks() @@ -1144,7 +1144,7 @@ func TestValidateManifestForInstall(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() tt.setup(clientsMock) clientsMock.ApiInterface.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, tt.app.AppID). @@ -1217,6 +1217,7 @@ func TestSetAppEnvironmentTokens(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.IO.AddDefaultMocks() if tt.envAppToken != "" { @@ -1236,7 +1237,6 @@ func TestSetAppEnvironmentTokens(t *testing.T) { clientsMock.IO.Stdout.SetOutput(output) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() err := setAppEnvironmentTokens(ctx, clients, tt.result) assert.NoError(t, err) assert.Equal(t, tt.expectedAppToken, clients.Os.Getenv("SLACK_APP_TOKEN")) diff --git a/internal/pkg/apps/list_test.go b/internal/pkg/apps/list_test.go index b7865b1c..b64fa9b5 100644 --- a/internal/pkg/apps/list_test.go +++ b/internal/pkg/apps/list_test.go @@ -15,12 +15,12 @@ package apps import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/api" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -91,11 +91,11 @@ var team2LocalApp = types.App{ } func TestAppsList_FetchInstallStates_NoAuthsShouldReturnUnknownState(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() apps, err := FetchAppInstallStates(ctx, clients, []types.App{team1DeployedApp, team2LocalApp}) require.NoError(t, err) clientsMock.ApiInterface.AssertNotCalled(t, "GetAppStatus") @@ -109,6 +109,7 @@ func TestAppsList_FetchInstallStates_NoAuthsShouldReturnUnknownState(t *testing. func TestAppsList_FetchInstallStates_HasEnterpriseApp_HasEnterpriseAuth(t *testing.T) { // Create mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On("Auths", mock.Anything).Return([]types.SlackAuth{ @@ -126,7 +127,6 @@ func TestAppsList_FetchInstallStates_HasEnterpriseApp_HasEnterpriseAuth(t *testi }, nil) require.True(t, team1DeployedApp.IsEnterpriseWorkspaceApp()) - ctx := context.Background() // Should successfully fetchAppInstallStates when the auth is enterprise and the app is enterprise workspace app appsWithStatus, _ := FetchAppInstallStates(ctx, clients, []types.App{team1DeployedApp}) @@ -135,6 +135,7 @@ func TestAppsList_FetchInstallStates_HasEnterpriseApp_HasEnterpriseAuth(t *testi } func TestAppsList_FetchInstallStates_TokenFlag(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On("Auths", mock.Anything). @@ -156,7 +157,6 @@ func TestAppsList_FetchInstallStates_TokenFlag(t *testing.T) { clients.Config.TokenFlag = team2Token - ctx := context.Background() apps, err := FetchAppInstallStates(ctx, clients, []types.App{team1DeployedApp, team2LocalApp}) require.NoError(t, err) require.Len(t, apps, 2) @@ -173,6 +173,7 @@ func TestAppsList_FetchInstallStates_TokenFlag(t *testing.T) { } func TestAppsList_FetchInstallStates_InvalidTokenFlag(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On("Auths", mock.Anything). Return([]types.SlackAuth{}, nil) @@ -183,7 +184,6 @@ func TestAppsList_FetchInstallStates_InvalidTokenFlag(t *testing.T) { clients.Config.TokenFlag = "xoxp-invalid" - ctx := context.Background() apps, err := FetchAppInstallStates(ctx, clients, []types.App{team1DeployedApp, team2LocalApp}) if assert.Error(t, err) { assert.Equal(t, slackerror.New(slackerror.ErrHttpRequestFailed), err) diff --git a/internal/pkg/auth/list_test.go b/internal/pkg/auth/list_test.go index 909ed892..893c188c 100644 --- a/internal/pkg/auth/list_test.go +++ b/internal/pkg/auth/list_test.go @@ -15,7 +15,6 @@ package auth import ( - "context" "errors" "testing" "time" @@ -24,16 +23,17 @@ import ( "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" ) func TestAuthList(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory(), func(clients *shared.ClientFactory) { clients.SDKConfig = hooks.NewSDKConfigMock() }) - ctx := context.Background() authMockA := types.SlackAuth{ Token: "xoxe.xoxp-", @@ -58,11 +58,11 @@ func TestAuthList(t *testing.T) { } func TestAuthList_SortedAuths(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory(), func(clients *shared.ClientFactory) { clients.SDKConfig = hooks.NewSDKConfigMock() }) - ctx := context.Background() authZ := types.SlackAuth{ Token: "xoxp-abc", diff --git a/internal/pkg/create/create_test.go b/internal/pkg/create/create_test.go index e2e63d07..9cc3abfd 100644 --- a/internal/pkg/create/create_test.go +++ b/internal/pkg/create/create_test.go @@ -15,7 +15,6 @@ package create import ( - "context" "fmt" "path/filepath" "testing" @@ -23,6 +22,7 @@ import ( "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/experiment" "github.com/slackapi/slack-cli/internal/shared" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/spf13/afero" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -220,17 +220,17 @@ func Test_Create_installProjectDependencies(t *testing.T) { }() // Setup parameters for test - ctx := context.Background() projectDirPath := "/path/to/project-name" // Create mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.Os.On("Getwd").Return(projectDirPath, nil) clientsMock.AddDefaultMocks() // Set experiment flag clientsMock.Config.ExperimentsFlag = append(clientsMock.Config.ExperimentsFlag, tt.experiments...) - clientsMock.Config.LoadExperiments(context.Background(), clientsMock.IO.PrintDebug) + clientsMock.Config.LoadExperiments(ctx, clientsMock.IO.PrintDebug) // Create clients that is mocked for testing clients := shared.NewClientFactory(clientsMock.MockClientFactory()) diff --git a/internal/pkg/datastore/bulk_delete_test.go b/internal/pkg/datastore/bulk_delete_test.go index 350d3315..a689baac 100644 --- a/internal/pkg/datastore/bulk_delete_test.go +++ b/internal/pkg/datastore/bulk_delete_test.go @@ -15,12 +15,12 @@ package datastore import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -57,6 +57,7 @@ func TestDatastoreBulkDeleteArguments(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() log := logger.Logger{ Data: map[string]interface{}{}, @@ -65,7 +66,7 @@ func TestDatastoreBulkDeleteArguments(t *testing.T) { Return(tt.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := BulkDelete(context.Background(), client, &log, tt.Query) + event, err := BulkDelete(ctx, client, &log, tt.Query) if assert.NoError(t, err) { assert.Equal(t, tt.Results, event.Data["bulkDeleteResult"]) } diff --git a/internal/pkg/datastore/bulk_get_test.go b/internal/pkg/datastore/bulk_get_test.go index 2bfc7812..8c07f499 100644 --- a/internal/pkg/datastore/bulk_get_test.go +++ b/internal/pkg/datastore/bulk_get_test.go @@ -15,12 +15,12 @@ package datastore import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -58,6 +58,7 @@ func TestDatastoreBulkGetArguments(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() log := logger.Logger{ Data: map[string]interface{}{}, @@ -66,7 +67,7 @@ func TestDatastoreBulkGetArguments(t *testing.T) { Return(tt.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := BulkGet(context.Background(), client, &log, tt.Query) + event, err := BulkGet(ctx, client, &log, tt.Query) if assert.NoError(t, err) { assert.Equal(t, tt.Results, event.Data["bulkGetResult"]) } diff --git a/internal/pkg/datastore/bulk_put_test.go b/internal/pkg/datastore/bulk_put_test.go index 42724be8..db3e8bb0 100644 --- a/internal/pkg/datastore/bulk_put_test.go +++ b/internal/pkg/datastore/bulk_put_test.go @@ -15,12 +15,12 @@ package datastore import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -65,6 +65,7 @@ func TestDatastoreBulkPutArguments(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() log := logger.Logger{ Data: map[string]interface{}{}, @@ -73,7 +74,7 @@ func TestDatastoreBulkPutArguments(t *testing.T) { Return(tt.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := BulkPut(context.Background(), client, &log, tt.Query) + event, err := BulkPut(ctx, client, &log, tt.Query) if assert.NoError(t, err) { assert.Equal(t, tt.Results, event.Data["bulkPutResult"]) } diff --git a/internal/pkg/datastore/delete_test.go b/internal/pkg/datastore/delete_test.go index c0917824..a24cb61b 100644 --- a/internal/pkg/datastore/delete_test.go +++ b/internal/pkg/datastore/delete_test.go @@ -15,12 +15,12 @@ package datastore import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -46,6 +46,7 @@ func TestDatastoreDeleteArguments(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() log := logger.Logger{ Data: map[string]interface{}{}, @@ -54,7 +55,7 @@ func TestDatastoreDeleteArguments(t *testing.T) { Return(tt.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Delete(context.Background(), client, &log, tt.Query) + event, err := Delete(ctx, client, &log, tt.Query) if assert.NoError(t, err) { assert.Equal(t, tt.Results, event.Data["deleteResult"]) } diff --git a/internal/pkg/datastore/get_test.go b/internal/pkg/datastore/get_test.go index bffef9b2..654c1df7 100644 --- a/internal/pkg/datastore/get_test.go +++ b/internal/pkg/datastore/get_test.go @@ -15,12 +15,12 @@ package datastore import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -46,6 +46,7 @@ func TestDatastoreGetArguments(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() log := logger.Logger{ Data: map[string]interface{}{}, @@ -54,7 +55,7 @@ func TestDatastoreGetArguments(t *testing.T) { Return(tt.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Get(context.Background(), client, &log, tt.Query) + event, err := Get(ctx, client, &log, tt.Query) if assert.NoError(t, err) { assert.Equal(t, tt.Results, event.Data["getResult"]) } diff --git a/internal/pkg/datastore/put_test.go b/internal/pkg/datastore/put_test.go index d7280d11..945680f1 100644 --- a/internal/pkg/datastore/put_test.go +++ b/internal/pkg/datastore/put_test.go @@ -15,12 +15,12 @@ package datastore import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -46,6 +46,7 @@ func TestDatastorePutArguments(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() log := logger.Logger{ Data: map[string]interface{}{}, @@ -54,7 +55,7 @@ func TestDatastorePutArguments(t *testing.T) { Return(tt.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Put(context.Background(), client, &log, tt.Query) + event, err := Put(ctx, client, &log, tt.Query) if assert.NoError(t, err) { assert.Equal(t, tt.Results, event.Data["putResult"]) } diff --git a/internal/pkg/datastore/query_test.go b/internal/pkg/datastore/query_test.go index 835a2e14..684e3af4 100644 --- a/internal/pkg/datastore/query_test.go +++ b/internal/pkg/datastore/query_test.go @@ -15,12 +15,12 @@ package datastore import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -104,6 +104,7 @@ func TestDatastoreQueryArguments(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() log := logger.Logger{ Data: map[string]interface{}{}, @@ -112,7 +113,7 @@ func TestDatastoreQueryArguments(t *testing.T) { Return(tt.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Query(context.Background(), client, &log, tt.Query) + event, err := Query(ctx, client, &log, tt.Query) if assert.NoError(t, err) { assert.Equal(t, tt.Results, event.Data["queryResult"]) } diff --git a/internal/pkg/datastore/update_test.go b/internal/pkg/datastore/update_test.go index e8b0adab..dd18063d 100644 --- a/internal/pkg/datastore/update_test.go +++ b/internal/pkg/datastore/update_test.go @@ -15,12 +15,12 @@ package datastore import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) @@ -46,6 +46,7 @@ func TestDatastoreUpdateArguments(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() log := logger.Logger{ Data: map[string]interface{}{}, @@ -54,7 +55,7 @@ func TestDatastoreUpdateArguments(t *testing.T) { Return(tt.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Update(context.Background(), client, &log, tt.Query) + event, err := Update(ctx, client, &log, tt.Query) if assert.NoError(t, err) { assert.Equal(t, tt.Results, event.Data["updateResult"]) } diff --git a/internal/pkg/externalauth/prompt_provider_auth_select_test.go b/internal/pkg/externalauth/prompt_provider_auth_select_test.go index 43d6e620..f9778b6b 100644 --- a/internal/pkg/externalauth/prompt_provider_auth_select_test.go +++ b/internal/pkg/externalauth/prompt_provider_auth_select_test.go @@ -15,23 +15,23 @@ package externalauth import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" ) func TestPrompt_ProviderAuthSelectPrompt_empty_list(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) workflowsInfo := types.WorkflowsInfo{} clientsMock.AddDefaultMocks() - ctx := context.Background() selectedProvider, err := ProviderAuthSelectPrompt(ctx, clients, workflowsInfo) require.Empty(t, selectedProvider) require.Error(t, err, slackerror.New("No oauth2 providers found")) @@ -84,6 +84,7 @@ func TestPrompt_ProviderAuthSelectPrompt_no_selected_auth(t *testing.T) { for _, tt := 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") @@ -95,7 +96,6 @@ func TestPrompt_ProviderAuthSelectPrompt_no_selected_auth(t *testing.T) { })).Return(tt.Selection, nil) clientsMock.AddDefaultMocks() - ctx := context.Background() selectedProvider, err := ProviderAuthSelectPrompt(ctx, clients, workflowsInfo) require.Equal(t, selectedProvider.ProviderKey, "provider_a") @@ -151,6 +151,7 @@ func TestPrompt_ProviderAuthSelectPrompt_with_selected_auth(t *testing.T) { for _, tt := 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") @@ -158,7 +159,6 @@ func TestPrompt_ProviderAuthSelectPrompt_with_selected_auth(t *testing.T) { Flag: clientsMock.Config.Flags.Lookup("provider"), })).Return(tt.Selection, nil) clientsMock.AddDefaultMocks() - ctx := context.Background() selectedProvider, err := ProviderAuthSelectPrompt(ctx, clients, workflowsInfo) require.Equal(t, selectedProvider.ProviderKey, "provider_b") diff --git a/internal/pkg/externalauth/prompt_provider_select_test.go b/internal/pkg/externalauth/prompt_provider_select_test.go index 8e8b4c1d..670b20c1 100644 --- a/internal/pkg/externalauth/prompt_provider_select_test.go +++ b/internal/pkg/externalauth/prompt_provider_select_test.go @@ -15,23 +15,23 @@ package externalauth import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" ) func TestPrompt_ProviderSelectPrompt_empty_list(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) authorizationInfoLists := types.ExternalAuthorizationInfoLists{} clientsMock.AddDefaultMocks() - ctx := context.Background() selectedProvider, err := ProviderSelectPrompt(ctx, clients, authorizationInfoLists) require.Empty(t, selectedProvider) require.Error(t, err, slackerror.New("No oauth2 providers found")) @@ -74,6 +74,7 @@ func TestPrompt_ProviderSelectPrompt_no_token(t *testing.T) { for _, tt := 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") @@ -81,7 +82,6 @@ func TestPrompt_ProviderSelectPrompt_no_token(t *testing.T) { Flag: clientsMock.Config.Flags.Lookup("provider"), })).Return(tt.Selection, nil) clientsMock.AddDefaultMocks() - ctx := context.Background() selectedProvider, err := ProviderSelectPrompt(ctx, clients, authorizationInfoLists) require.Equal(t, selectedProvider.ProviderKey, "provider_a") @@ -136,6 +136,7 @@ func TestPrompt_ProviderSelectPrompt_with_token(t *testing.T) { for _, tt := 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") @@ -146,7 +147,6 @@ func TestPrompt_ProviderSelectPrompt_with_token(t *testing.T) { Flag: clientsMock.Config.Flags.Lookup("provider"), })).Return(tt.Selection, nil) clientsMock.AddDefaultMocks() - ctx := context.Background() selectedProvider, err := ProviderSelectPrompt(ctx, clients, authorizationInfoLists) require.Equal(t, selectedProvider.ProviderKey, "provider_a") diff --git a/internal/pkg/externalauth/prompt_token_select_test.go b/internal/pkg/externalauth/prompt_token_select_test.go index c1a64704..971f606d 100644 --- a/internal/pkg/externalauth/prompt_token_select_test.go +++ b/internal/pkg/externalauth/prompt_token_select_test.go @@ -15,23 +15,23 @@ package externalauth import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" ) func TestPrompt_TokenSelectPrompt_empty_list(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) authorizationInfo := types.ExternalAuthorizationInfo{} clientsMock.AddDefaultMocks() - ctx := context.Background() selectedToken, err := TokenSelectPrompt(ctx, clients, authorizationInfo) require.Empty(t, selectedToken) @@ -83,6 +83,7 @@ func TestPrompt_TokenSelectPrompt_with_token(t *testing.T) { var externalAccountFlag string for _, tt := 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") @@ -93,7 +94,6 @@ func TestPrompt_TokenSelectPrompt_with_token(t *testing.T) { Flag: clientsMock.Config.Flags.Lookup("external-account"), })).Return(tt.Selection, nil) clientsMock.AddDefaultMocks() - ctx := context.Background() selectedToken, err := TokenSelectPrompt(ctx, clients, authorizationInfo) require.NoError(t, err) diff --git a/internal/pkg/externalauth/prompt_workflow_select_test.go b/internal/pkg/externalauth/prompt_workflow_select_test.go index e683590c..ae1d4fc6 100644 --- a/internal/pkg/externalauth/prompt_workflow_select_test.go +++ b/internal/pkg/externalauth/prompt_workflow_select_test.go @@ -15,12 +15,12 @@ package externalauth import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -29,13 +29,13 @@ import ( func TestPrompt_WorkflowSelectPrompt_empty_list(t *testing.T) { authorizationInfoLists := types.ExternalAuthorizationInfoLists{} + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a workflow", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clientsMock.Config.Flags.Lookup("workflow"), })).Return(iostreams.SelectPromptResponse{}, slackerror.New(slackerror.ErrMissingOptions)) clientsMock.AddDefaultMocks() - ctx := context.Background() selectedWorkflow, err := WorkflowSelectPrompt(ctx, clients, authorizationInfoLists) require.Empty(t, selectedWorkflow) @@ -55,13 +55,13 @@ func TestPrompt_WorkflowSelectPrompt_with_no_workflows(t *testing.T) { }, }} + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) clientsMock.IO.On("SelectPrompt", mock.Anything, "Select a workflow", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clients.Config.Flags.Lookup("workflow"), })).Return(iostreams.SelectPromptResponse{}, slackerror.New(slackerror.ErrMissingOptions)) clientsMock.AddDefaultMocks() - ctx := context.Background() selectedWorkflow, err := WorkflowSelectPrompt(ctx, clients, authorizationInfoLists) require.Empty(t, selectedWorkflow) @@ -144,6 +144,7 @@ func TestPrompt_WorkflowSelectPrompt_with_workflows(t *testing.T) { for _, tt := range tests { var mockWorkflowFlag string + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) clientsMock.Config.Flags.StringVar(&mockWorkflowFlag, "workflow", "", "mock workflow flag") @@ -154,7 +155,6 @@ func TestPrompt_WorkflowSelectPrompt_with_workflows(t *testing.T) { Flag: clientsMock.Config.Flags.Lookup("workflow"), })).Return(tt.Selection, nil) clientsMock.AddDefaultMocks() - ctx := context.Background() selectedWorkflow, err := WorkflowSelectPrompt(ctx, clients, authorizationInfoLists) require.NoError(t, err) diff --git a/internal/pkg/manifest/validate_test.go b/internal/pkg/manifest/validate_test.go index c3f46d2f..2e32c249 100644 --- a/internal/pkg/manifest/validate_test.go +++ b/internal/pkg/manifest/validate_test.go @@ -24,13 +24,14 @@ import ( "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" ) func Test_ManifestValidate_GetManifestLocal_Error(t *testing.T) { - ctx, clients, _, log, appMock, authMock := setupCommonMocks() + ctx, clients, _, log, appMock, authMock := setupCommonMocks(t) // Mock the manifest to return error on get manifestMock := &app.ManifestMockObject{} @@ -47,7 +48,7 @@ func Test_ManifestValidate_GetManifestLocal_Error(t *testing.T) { func Test_ManifestValidate_Success(t *testing.T) { t.Run("should return success when no errors or warnings", func(t *testing.T) { - ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks() + ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks(t) // Mock manifest validation api result with no error clientsMock.ApiInterface.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.ValidateAppManifestResult{}, nil) @@ -63,7 +64,7 @@ func Test_ManifestValidate_Success(t *testing.T) { func Test_ManifestValidate_Warnings(t *testing.T) { t.Run("should return warnings", func(t *testing.T) { - ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks() + ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks(t) // Mock manifest validation api result with no error clientsMock.ApiInterface.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.ValidateAppManifestResult{ @@ -87,7 +88,7 @@ func Test_ManifestValidate_Warnings(t *testing.T) { func Test_ManifestValidate_Error(t *testing.T) { t.Run("should return error when there are errors", func(t *testing.T) { - ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks() + ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks(t) // Mock manifest validation api result with an error clientsMock.ApiInterface.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( @@ -108,7 +109,7 @@ func Test_ManifestValidate_Error(t *testing.T) { func Test_ManifestValidate_Error_ErrConnectorNotInstalled(t *testing.T) { t.Run("should try to install connector apps when there are related errors", func(t *testing.T) { - ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks() + ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks(t) // Mock manifest validation api result with an error and error details clientsMock.ApiInterface.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.ValidateAppManifestResult{ @@ -150,7 +151,7 @@ func Test_HandleConnectorApprovalRequired(t *testing.T) { test_reason := "GIVE IT TO ME!" t.Run("should send request to approve connector", func(t *testing.T) { - ctx, clients, clientsMock, _, _, authMock := setupCommonMocks() + ctx, clients, clientsMock, _, _, authMock := setupCommonMocks(t) testErr := slackerror.New("a dummy error").WithDetails(slackerror.ErrorDetails{ slackerror.ErrorDetail{ Code: slackerror.ErrConnectorApprovalRequired, @@ -187,7 +188,7 @@ func Test_HandleConnectorApprovalRequired(t *testing.T) { }) t.Run("should not send request to approve connector if user refuses", func(t *testing.T) { - ctx, clients, clientsMock, _, _, authMock := setupCommonMocks() + ctx, clients, clientsMock, _, _, authMock := setupCommonMocks(t) testErr := slackerror.New("a dummy error").WithDetails(slackerror.ErrorDetails{ slackerror.ErrorDetail{ Code: slackerror.ErrConnectorApprovalRequired, @@ -208,7 +209,7 @@ func Test_HandleConnectorApprovalRequired(t *testing.T) { }) t.Run("should return error if request RequestAppApproval fails", func(t *testing.T) { - ctx, clients, clientsMock, _, _, authMock := setupCommonMocks() + ctx, clients, clientsMock, _, _, authMock := setupCommonMocks(t) testErr := slackerror.New("a dummy error").WithDetails(slackerror.ErrorDetails{ slackerror.ErrorDetail{ Code: slackerror.ErrConnectorApprovalRequired, @@ -231,8 +232,9 @@ func Test_HandleConnectorApprovalRequired(t *testing.T) { } // Setup -func setupCommonMocks() (ctx context.Context, clients *shared.ClientFactory, clientsMock *shared.ClientsMock, log *logger.Logger, mockApp types.App, mockAuth types.SlackAuth) { +func setupCommonMocks(t *testing.T) (ctx context.Context, clients *shared.ClientFactory, clientsMock *shared.ClientsMock, log *logger.Logger, mockApp types.App, mockAuth types.SlackAuth) { // Create mocks + ctx = slackcontext.MockContext(t.Context()) clientsMock = shared.NewClientsMock() clientsMock.AddDefaultMocks() @@ -241,8 +243,6 @@ func setupCommonMocks() (ctx context.Context, clients *shared.ClientFactory, cli clients.SDKConfig = hooks.NewSDKConfigMock() }) - ctx = context.Background() - // Mock valid auth session clientsMock.ApiInterface.On("ValidateSession", mock.Anything, mock.Anything).Return(api.AuthSession{}, nil) diff --git a/internal/pkg/platform/activity_test.go b/internal/pkg/platform/activity_test.go index 1a721e47..ee15e6ad 100644 --- a/internal/pkg/platform/activity_test.go +++ b/internal/pkg/platform/activity_test.go @@ -156,7 +156,7 @@ func TestPlatformActivity_StreamingLogs(t *testing.T) { } { t.Run(name, func(t *testing.T) { // Create mocks - ctxMock := slackcontext.MockContext(context.Background()) + ctxMock := slackcontext.MockContext(t.Context()) ctxMock = context.WithValue(ctxMock, config.CONTEXT_TOKEN, "sometoken") clientsMock := shared.NewClientsMock() // Create clients that is mocked for testing diff --git a/internal/pkg/platform/localserver_test.go b/internal/pkg/platform/localserver_test.go index ac40e895..bb0c1244 100644 --- a/internal/pkg/platform/localserver_test.go +++ b/internal/pkg/platform/localserver_test.go @@ -28,6 +28,7 @@ import ( "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -118,8 +119,8 @@ func Test_LocalServer_Start(t *testing.T) { defer ts.Close() wsFakeURL = "ws" + strings.TrimPrefix(ts.URL, "http") } - ctx := context.Background() // Create mocks + ctx := slackcontext.MockContext(t.Context()) conn := NewWebSocketConnMock() clientsMock := shared.NewClientsMock() // Create clients that is mocked for testing @@ -330,8 +331,8 @@ func Test_LocalServer_Listen(t *testing.T) { }, } { t.Run(name, func(t *testing.T) { - ctx := context.Background() // Create mocks + ctx := slackcontext.MockContext(t.Context()) conn := NewWebSocketConnMock() clientsMock := shared.NewClientsMock() // Create clients that is mocked for testing diff --git a/internal/prompts/app_select_test.go b/internal/prompts/app_select_test.go index 54e15337..b33084c4 100644 --- a/internal/prompts/app_select_test.go +++ b/internal/prompts/app_select_test.go @@ -27,6 +27,7 @@ import ( "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/slackapi/slack-cli/internal/style" "github.com/stretchr/testify/assert" @@ -220,6 +221,7 @@ func TestGetTeamApps(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On( AuthWithToken, @@ -257,7 +259,6 @@ func TestGetTeamApps(t *testing.T) { ) clientsMock.AddDefaultMocks() - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) for _, app := range tt.deployedApps { err := clients.AppClient().SaveDeployed(ctx, app) @@ -369,6 +370,7 @@ func TestGetTokenApp(t *testing.T) { for name, test := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(AuthWithToken, mock.Anything, test.tokenFlag). Return(test.tokenAuth, test.tokenErr) @@ -376,7 +378,6 @@ func TestGetTokenApp(t *testing.T) { Return(test.appStatus, test.statusErr) clientsMock.AddDefaultMocks() - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) for _, app := range test.saveLocal { err := clients.AppClient().SaveLocal(ctx, app) @@ -415,6 +416,7 @@ func TestFilterAuthsByToken_NoLogin(t *testing.T) { } test.expectedAuth.Token = test.TokenFlag // expect the same token + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(AuthWithToken, mock.Anything, test.TokenFlag). Return(test.expectedAuth, nil) @@ -423,7 +425,6 @@ func TestFilterAuthsByToken_NoLogin(t *testing.T) { clientsMock.AuthInterface.On(SetAuth, mock.Anything).Return(types.SlackAuth{}, nil) clientsMock.AddDefaultMocks() - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) clients.Config.TokenFlag = test.TokenFlag @@ -438,6 +439,8 @@ func TestFilterAuthsByToken_NoLogin(t *testing.T) { } func Test_FilterAuthsByToken_Flags(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) + mockAuthTeam1 := fakeAuthsByTeamDomain[team1TeamDomain] mockAuthTeam1.Token = team1Token mockAuthTeam2 := fakeAuthsByTeamDomain[team2TeamDomain] @@ -457,7 +460,6 @@ func Test_FilterAuthsByToken_Flags(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() err := clients.AppClient().SaveDeployed(ctx, types.App{ TeamID: team2TeamID, @@ -573,9 +575,8 @@ func Test_FilterAuthsByToken_Flags(t *testing.T) { // func TestPrompt_AppSelectPrompt_SelectedAuthExpired_UserReAuthenticates(t *testing.T) { - // Setup - + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() // Auth is present but invalid clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) @@ -601,7 +602,6 @@ func TestPrompt_AppSelectPrompt_SelectedAuthExpired_UserReAuthenticates(t *testi }, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() err := clients.AppClient().SaveDeployed(ctx, deployedTeam1InstalledApp) require.NoError(t, err) @@ -618,12 +618,12 @@ func TestPrompt_AppSelectPrompt_SelectedAuthExpired_UserReAuthenticates(t *testi func TestPrompt_AppSelectPrompt_AuthsNoApps(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On("ValidateSession", mock.Anything, mock.Anything).Return(api.AuthSession{}, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) clientsMock.AddDefaultMocks() - ctx := context.Background() // Execute test selectedApp, err := AppSelectPrompt(ctx, clients, AppInstallStatus(ShowInstalledAppsOnly)) @@ -691,6 +691,7 @@ func TestPrompt_AppSelectPrompt_TokenAppFlag(t *testing.T) { for name, test := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(AuthWithToken, mock.Anything, test.tokenFlag). Return(test.tokenAuth, nil) @@ -698,7 +699,6 @@ func TestPrompt_AppSelectPrompt_TokenAppFlag(t *testing.T) { Return(test.appStatus, test.statusErr) clientsMock.AddDefaultMocks() - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) clients.Config.TokenFlag = test.tokenFlag clients.Config.AppFlag = test.appFlag @@ -723,6 +723,7 @@ func TestPrompt_AppSelectPrompt_TokenAppFlag(t *testing.T) { func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_ShowAllApps(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -734,7 +735,6 @@ func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_ShowAllApps(t *tes clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() err := clients.AppClient().SaveDeployed(ctx, types.App{ TeamDomain: team1TeamDomain, TeamID: team1TeamID, @@ -770,6 +770,7 @@ func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_ShowAllApps(t *tes func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_ShowInstalledAppsOnly(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -781,7 +782,6 @@ func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_ShowInstalledAppsO clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Installed app err := clients.AppClient().SaveDeployed(ctx, types.App{ TeamID: team1TeamID, @@ -818,6 +818,7 @@ func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_ShowInstalledAppsO func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_InstalledAppOnly_Flags(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -829,7 +830,6 @@ func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_InstalledAppOnly_F clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Installed app deployedApp := types.App{ @@ -938,6 +938,8 @@ func TestPrompt_AppSelectPrompt_AuthsWithDeployedAppInstalled_InstalledAppOnly_F } func TestPrompt_AppSelectPrompt_AuthsWithBothEnvsInstalled_InstalledAppOnly_Flags(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) + mockAuthTeam1 := fakeAuthsByTeamDomain[team1TeamDomain] mockAuthTeam1.Token = team1Token mockAuthTeam2 := fakeAuthsByTeamDomain[team2TeamDomain] @@ -970,7 +972,6 @@ func TestPrompt_AppSelectPrompt_AuthsWithBothEnvsInstalled_InstalledAppOnly_Flag }, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Installed app team 1 deployed deployedApp := types.App{ @@ -1095,6 +1096,7 @@ func TestPrompt_AppSelectPrompt_AuthsWithBothEnvsInstalled_InstalledAppOnly_Flag func TestPrompt_AppSelectPrompt_AuthsWithBothEnvsInstalled_MultiWorkspaceAllApps_Flags(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -1109,7 +1111,6 @@ func TestPrompt_AppSelectPrompt_AuthsWithBothEnvsInstalled_MultiWorkspaceAllApps clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Installed app @@ -1221,6 +1222,7 @@ func TestPrompt_AppSelectPrompt_AuthsWithBothEnvsInstalled_MultiWorkspaceAllApps func TestPrompt_AppSelectPrompt_AuthsWithHostedInstalled_AllApps_CreateNew(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -1234,7 +1236,6 @@ func TestPrompt_AppSelectPrompt_AuthsWithHostedInstalled_AllApps_CreateNew(t *te clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Installed apps err := clients.AppClient().SaveDeployed(ctx, types.App{ @@ -1477,7 +1478,7 @@ func TestPrompt_AppSelectPrompt_ShowExpectedLabels(t *testing.T) { } for _, test := range tests { - + ctx := slackcontext.MockContext(t.Context()) clientsMock := setupClientsMock() // On select a team, choose @@ -1499,7 +1500,6 @@ func TestPrompt_AppSelectPrompt_ShowExpectedLabels(t *testing.T) { }, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() saveApps(ctx, clients) selectedApp, err := AppSelectPrompt(ctx, clients, test.status) @@ -1683,6 +1683,7 @@ func TestPrompt_AppSelectPrompt_GetApps(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On( GetAppStatus, @@ -1745,7 +1746,6 @@ func TestPrompt_AppSelectPrompt_GetApps(t *testing.T) { ) clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() for _, app := range tt.mockAppsSavedDeployed { err := clients.AppClient().SaveDeployed(ctx, app) require.NoError(t, err) @@ -2277,6 +2277,7 @@ func TestPrompt_AppSelectPrompt_FlatAppSelectPrompt(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On( Auths, @@ -2486,7 +2487,6 @@ func TestPrompt_AppSelectPrompt_FlatAppSelectPrompt(t *testing.T) { clientsMock.Config.TeamFlag = tt.mockFlagTeam clientsMock.Config.TokenFlag = tt.mockFlagToken clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() for _, app := range tt.mockAppsDeployed { err := clients.AppClient().SaveDeployed(ctx, app) require.NoError(t, err) @@ -2509,9 +2509,8 @@ func TestPrompt_AppSelectPrompt_FlatAppSelectPrompt(t *testing.T) { // func TestPrompt_TeamAppSelectPrompt_SelectedAuthExpired_UserReAuthenticates(t *testing.T) { - // Setup - + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() // Auth is present but invalid clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) @@ -2529,7 +2528,6 @@ func TestPrompt_TeamAppSelectPrompt_SelectedAuthExpired_UserReAuthenticates(t *t }, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() err := clients.AppClient().SaveDeployed(ctx, deployedTeam1InstalledApp) require.NoError(t, err) @@ -2544,9 +2542,8 @@ func TestPrompt_TeamAppSelectPrompt_SelectedAuthExpired_UserReAuthenticates(t *t } func TestPrompt_TeamAppSelectPrompt_NoAuths_UserReAuthenticates(t *testing.T) { - // Setup - + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() // No auths present clientsMock.AuthInterface.On(Auths, mock.Anything).Return([]types.SlackAuth{}, nil) @@ -2564,7 +2561,6 @@ func TestPrompt_TeamAppSelectPrompt_NoAuths_UserReAuthenticates(t *testing.T) { }, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() err := clients.AppClient().SaveDeployed(ctx, deployedTeam1InstalledApp) require.NoError(t, err) @@ -2680,6 +2676,7 @@ func TestPrompt_TeamAppSelectPrompt_TokenAppFlag(t *testing.T) { for name, test := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(AuthWithToken, mock.Anything, test.tokenFlag). Return(test.tokenAuth, nil) @@ -2687,7 +2684,6 @@ func TestPrompt_TeamAppSelectPrompt_TokenAppFlag(t *testing.T) { Return(test.appStatus, test.statusErr) clientsMock.AddDefaultMocks() - ctx := context.Background() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) for _, app := range test.saveLocal { err := clients.AppClient().SaveLocal(ctx, app) @@ -2715,12 +2711,12 @@ func TestPrompt_TeamAppSelectPrompt_TokenAppFlag(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_TeamNotFoundFor_TeamFlag(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Perform tests var tests = []struct { @@ -2745,6 +2741,7 @@ func TestPrompt_TeamAppSelectPrompt_TeamNotFoundFor_TeamFlag(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_NoApps(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) clientsMock.AuthInterface.On(AuthWithTeamID, mock.Anything, team1TeamID).Return(fakeAuthsByTeamDomain[team1TeamDomain], nil) @@ -2753,7 +2750,6 @@ func TestPrompt_TeamAppSelectPrompt_NoApps(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Install the app to team1 clientsMock.IO.On(SelectPrompt, mock.Anything, "Choose a deployed environment", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ @@ -2804,12 +2800,12 @@ func TestPrompt_TeamAppSelectPrompt_NoApps(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_NoInstalls_TeamFlagDomain(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Perform tests var tests = []struct { @@ -2838,13 +2834,13 @@ func TestPrompt_TeamAppSelectPrompt_NoInstalls_TeamFlagDomain(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_NoInstalls_TeamFlagID(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Perform tests var tests = []struct { @@ -2872,14 +2868,13 @@ func TestPrompt_TeamAppSelectPrompt_NoInstalls_TeamFlagID(t *testing.T) { } func TestPrompt_TeamAppSelectPrompt_NoInstalls_Flags(t *testing.T) { - // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Execute tests tests := []struct { @@ -3060,6 +3055,8 @@ func TestPrompt_TeamAppSelectPrompt_TokenFlag(t *testing.T) { } for name, test := range tests { + ctx := slackcontext.MockContext(t.Context()) + mockAuth := fakeAuthsByTeamDomain[test.teamDomain] mockAuth.Token = test.token @@ -3075,7 +3072,6 @@ func TestPrompt_TeamAppSelectPrompt_TokenFlag(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() var err error err = clients.AppClient().SaveDeployed(ctx, installedHostedApp) @@ -3100,6 +3096,7 @@ func TestPrompt_TeamAppSelectPrompt_TokenFlag(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -3111,7 +3108,6 @@ func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Select team2 clientsMock.IO.On(SelectPrompt, mock.Anything, "Choose a deployed environment", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ @@ -3181,6 +3177,7 @@ func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly_TeamFlagDomain(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -3191,7 +3188,6 @@ func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly_TeamFlagDomain(t *testing.T) clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Install apps err := clients.AppClient().SaveDeployed(ctx, types.App{ @@ -3229,6 +3225,7 @@ func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly_TeamFlagDomain(t *testing.T) func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly_TeamFlagID(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -3239,7 +3236,6 @@ func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly_TeamFlagID(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Install apps err := clients.AppClient().SaveDeployed(ctx, types.App{ @@ -3277,6 +3273,7 @@ func TestPrompt_TeamAppSelectPrompt_HostedAppsOnly_TeamFlagID(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -3289,7 +3286,6 @@ func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Install the app to team1 clientsMock.IO.On(SelectPrompt, mock.Anything, appInstallPromptNew, mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ @@ -3361,6 +3357,7 @@ func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly_TeamFlagDomain(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -3372,7 +3369,6 @@ func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly_TeamFlagDomain(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Install apps err := clients.AppClient().SaveLocal(ctx, types.App{ @@ -3412,6 +3408,7 @@ func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly_TeamFlagDomain(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly_TeamFlagID(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -3423,7 +3420,6 @@ func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly_TeamFlagID(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Install apps err := clients.AppClient().SaveLocal(ctx, types.App{ @@ -3463,6 +3459,7 @@ func TestPrompt_TeamAppSelectPrompt_LocalAppsOnly_TeamFlagID(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_AllApps(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -3479,7 +3476,6 @@ func TestPrompt_TeamAppSelectPrompt_AllApps(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Select team2 clientsMock.IO.On(SelectPrompt, mock.Anything, "Choose a deployed environment", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ @@ -3555,6 +3551,7 @@ func TestPrompt_TeamAppSelectPrompt_LegacyDevApps(t *testing.T) { // context is known // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( api.GetAppStatusResult{ @@ -3569,7 +3566,6 @@ func TestPrompt_TeamAppSelectPrompt_LegacyDevApps(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Select team2 clientsMock.IO.On(SelectPrompt, mock.Anything, "Choose a deployed environment", mock.Anything, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ @@ -3799,7 +3795,7 @@ func TestPrompt_TeamAppSelectPrompt_ShowExpectedLabels(t *testing.T) { } for _, test := range tests { - + ctx := slackcontext.MockContext(t.Context()) clientsMock := setupClientsMock() clientsMock.IO.On(SelectPrompt, mock.Anything, test.promptText, test.expectedTeamLabels, iostreams.MatchPromptConfig(iostreams.SelectPromptConfig{ Flag: clientsMock.Config.Flags.Lookup("team"), @@ -3809,7 +3805,6 @@ func TestPrompt_TeamAppSelectPrompt_ShowExpectedLabels(t *testing.T) { Index: test.selectedTeamIndex, }, nil) clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() saveApps(ctx, clients) selection, err := TeamAppSelectPrompt(ctx, clients, test.env, test.status) @@ -3821,6 +3816,7 @@ func TestPrompt_TeamAppSelectPrompt_ShowExpectedLabels(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_AllApps_TeamFlagID(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.GetAppStatusResult{}, nil) clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) @@ -3828,7 +3824,6 @@ func TestPrompt_TeamAppSelectPrompt_AllApps_TeamFlagID(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Install apps err := clients.AppClient().SaveDeployed(ctx, types.App{ @@ -3868,8 +3863,8 @@ func TestPrompt_TeamAppSelectPrompt_AllApps_TeamFlagID(t *testing.T) { } func TestPrompt_TeamAppSelectPrompt_AllApps_Flags(t *testing.T) { - // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.GetAppStatusResult{}, nil) clientsMock.AuthInterface.On(Auths, mock.Anything).Return(fakeAuthsByTeamDomainSlice, nil) @@ -3877,7 +3872,6 @@ func TestPrompt_TeamAppSelectPrompt_AllApps_Flags(t *testing.T) { clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Install apps appTeam1Hosted := types.App{ @@ -4036,6 +4030,7 @@ func TestPrompt_TeamAppSelectPrompt_AllApps_Flags(t *testing.T) { func TestPrompt_TeamAppSelectPrompt_AppSelectPrompt_EnterpriseWorkspaceApps_HasWorkspaceAuth(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.GetAppStatusResult{}, nil) @@ -4075,7 +4070,6 @@ func TestPrompt_TeamAppSelectPrompt_AppSelectPrompt_EnterpriseWorkspaceApps_HasW clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Save apps // Save a hosted and local enterprise workspace-level app @@ -4243,6 +4237,7 @@ func TestPrompt_TeamAppSelectPrompt_AppSelectPrompt_EnterpriseWorkspaceApps_HasW func TestPrompt_TeamAppSelectPrompt_AppSelectPrompt_EnterpriseWorkspaceApps_MissingWorkspaceAuth_MissingOrgAuth_UserReAuthenticates(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.GetAppStatusResult{}, nil) @@ -4279,7 +4274,6 @@ func TestPrompt_TeamAppSelectPrompt_AppSelectPrompt_EnterpriseWorkspaceApps_Miss clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Save apps // Save a hosted and local enterprise workspace-level app @@ -4432,6 +4426,7 @@ func TestPrompt_TeamAppSelectPrompt_AppSelectPrompt_EnterpriseWorkspaceApps_Miss func TestPrompt_TeamAppSelectPrompt_EnterpriseWorkspaceApps_MissingWorkspaceAuth_HasOrgAuth(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.GetAppStatusResult{}, nil) @@ -4469,7 +4464,6 @@ func TestPrompt_TeamAppSelectPrompt_EnterpriseWorkspaceApps_MissingWorkspaceAuth clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Save apps // Save a hosted and local enterprise workspace-level app @@ -4610,6 +4604,7 @@ func TestPrompt_TeamAppSelectPrompt_EnterpriseWorkspaceApps_MissingWorkspaceAuth func TestPrompt_AppSelectPrompt_EnterpriseWorkspaceApps_MissingWorkspaceAuth_HasOrgAuth(t *testing.T) { // Set up mocks + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On(GetAppStatus, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.GetAppStatusResult{}, nil) @@ -4647,7 +4642,6 @@ func TestPrompt_AppSelectPrompt_EnterpriseWorkspaceApps_MissingWorkspaceAuth_Has clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory()) - ctx := context.Background() // Save apps // Save a hosted and local enterprise workspace-level app @@ -4976,7 +4970,7 @@ func Test_ValidateGetOrgWorkspaceGrant(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.AddDefaultMocks() clients := shared.NewClientFactory(clientsMock.MockClientFactory(), func(clients *shared.ClientFactory) { @@ -5089,7 +5083,7 @@ func Test_ValidateAuth(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() clientsMock.ApiInterface.On( "ExchangeAuthTicket", diff --git a/internal/runtime/deno/deno_test.go b/internal/runtime/deno/deno_test.go index fd42c1c8..b0c12af4 100644 --- a/internal/runtime/deno/deno_test.go +++ b/internal/runtime/deno/deno_test.go @@ -15,7 +15,6 @@ package deno import ( - "context" "encoding/json" "fmt" "os/exec" @@ -26,6 +25,7 @@ import ( "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/spf13/afero" @@ -134,7 +134,7 @@ func Test_Deno_InstallProjectDependencies(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) projectDirPath := "/path/to/project-name" fs := slackdeps.NewFsMock() @@ -347,7 +347,7 @@ func Test_Deno_IsRuntimeForProject(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() projectDirPath := "/path/to/project-name" diff --git a/internal/runtime/node/node_test.go b/internal/runtime/node/node_test.go index 0a159ac6..f0402d8c 100644 --- a/internal/runtime/node/node_test.go +++ b/internal/runtime/node/node_test.go @@ -15,7 +15,6 @@ package node import ( - "context" "encoding/json" "errors" "fmt" @@ -26,6 +25,7 @@ import ( "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/spf13/afero" "github.com/stretchr/testify/mock" @@ -191,7 +191,7 @@ func Test_Node_InstallProjectDependencies(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) projectDirPath := "/path/to/project-name" fs := slackdeps.NewFsMock() @@ -347,7 +347,7 @@ func Test_Node_IsRuntimeForProject(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() projectDirPath := "/path/to/project-name" diff --git a/internal/runtime/node/npm_test.go b/internal/runtime/node/npm_test.go index 9e5be7cd..b8da4771 100644 --- a/internal/runtime/node/npm_test.go +++ b/internal/runtime/node/npm_test.go @@ -15,7 +15,6 @@ package node import ( - "context" "errors" "strings" "testing" @@ -23,6 +22,7 @@ import ( "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/iostreams" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -62,7 +62,7 @@ func Test_NPMClient_InstallAllPackages(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) projectDirPath := "/path/to/project-name" fs := slackdeps.NewFsMock() @@ -129,7 +129,7 @@ func Test_NPMClient_InstallDevPackage(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) projectDirPath := "/path/to/project-name" fs := slackdeps.NewFsMock() @@ -203,7 +203,7 @@ func Test_NPMClient_ListPackage(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) projectDirPath := "/path/to/project-name" fs := slackdeps.NewFsMock() diff --git a/internal/runtime/python/python_test.go b/internal/runtime/python/python_test.go index b6d0e563..75d154f6 100644 --- a/internal/runtime/python/python_test.go +++ b/internal/runtime/python/python_test.go @@ -15,7 +15,6 @@ package python import ( - "context" "encoding/json" "fmt" "path/filepath" @@ -25,6 +24,7 @@ import ( "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/iostreams" "github.com/slackapi/slack-cli/internal/shared/types" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/spf13/afero" "github.com/stretchr/testify/mock" @@ -170,8 +170,7 @@ func Test_Python_InstallProjectDependencies(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Setup - ctx := context.Background() - + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() os := slackdeps.NewOsMock() os.AddDefaultMocks() @@ -350,7 +349,7 @@ func Test_Python_IsRuntimeForProject(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := slackdeps.NewFsMock() projectDirPath := "/path/to/project-name" diff --git a/internal/runtime/runtime_test.go b/internal/runtime/runtime_test.go index 465a1791..85c3b7ee 100644 --- a/internal/runtime/runtime_test.go +++ b/internal/runtime/runtime_test.go @@ -15,13 +15,13 @@ package runtime import ( - "context" "testing" "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/runtime/deno" "github.com/slackapi/slack-cli/internal/runtime/node" "github.com/slackapi/slack-cli/internal/runtime/python" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/spf13/afero" "github.com/stretchr/testify/require" ) @@ -92,7 +92,7 @@ func Test_Runtime_NewDetectProject(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Setup - ctx := context.Background() + ctx := slackcontext.MockContext(t.Context()) fs := afero.NewMemMapFs() projectDirPath := "/path/to/project-name" diff --git a/internal/shared/clients_test.go b/internal/shared/clients_test.go index 4ea8ce3c..8944a710 100644 --- a/internal/shared/clients_test.go +++ b/internal/shared/clients_test.go @@ -15,12 +15,12 @@ package shared import ( - "context" "fmt" "os" "path/filepath" "testing" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/slackapi/slack-cli/internal/slackdeps" "github.com/slackapi/slack-cli/internal/slackerror" "github.com/spf13/afero" @@ -113,6 +113,7 @@ func Test_ClientFactory_InitSDKConfig(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clientsMock := NewClientsMock() clientsMock.AddDefaultMocks() clients := NewClientFactory(clientsMock.MockClientFactory()) @@ -120,7 +121,6 @@ func Test_ClientFactory_InitSDKConfig(t *testing.T) { require.NoError(t, err) err = afero.WriteFile(clients.Fs, tt.mockHooksJSONFilePath, []byte(tt.mockHooksJSONContent), 0o600) require.NoError(t, err) - ctx := context.Background() err = clients.InitSDKConfig(ctx, tt.mockWorkingDirectory) assert.Equal(t, tt.expectedError, err) assert.Equal(t, tt.expectedGetHooksScript, clients.SDKConfig.Hooks.GetHooks.Command) @@ -130,10 +130,11 @@ func Test_ClientFactory_InitSDKConfig(t *testing.T) { } func Test_ClientFactory_InitSDKConfigFromJSON(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) path := setupGetHooksScript(t) clients := NewClientFactory() getHooksJson := fmt.Sprintf(`{"hooks":{"get-hooks": "%s"}}`, path) - if err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)); err != nil { + if err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)); err != nil { t.Errorf("error init'ing SDK from JSON %s", err) } require.True(t, clients.SDKConfig.Hooks.GetHooks.IsAvailable()) @@ -143,11 +144,12 @@ func Test_ClientFactory_InitSDKConfigFromJSON(t *testing.T) { func Test_ClientFactory_InitSDKConfigFromJSON_reflectionSetsNameProperty(t *testing.T) { // Setup + ctx := slackcontext.MockContext(t.Context()) path := setupGetHooksScript(t) clients := NewClientFactory() getHooksJson := fmt.Sprintf(`{"hooks":{"get-hooks": "%s", "get-trigger": "echo {}", "": "echo {}"}}`, path) // Execute test - if err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)); err != nil { + if err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)); err != nil { t.Errorf("error init'ing SDK from JSON %s", err) } // Check @@ -157,11 +159,12 @@ func Test_ClientFactory_InitSDKConfigFromJSON_reflectionSetsNameProperty(t *test } func Test_ClientFactory_InitSDKConfigFromJSON_numberedDevInstance(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) path := setupGetHooksScript(t) clients := NewClientFactory() getHooksJson := fmt.Sprintf(`{"hooks":{"get-hooks": "%s"}}`, path) clients.Config.ApiHostResolved = "https://dev1234.slack.com" - if err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)); err != nil { + if err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)); err != nil { t.Errorf("error init'ing SDK from JSON %s", err) } require.True(t, clients.SDKConfig.Hooks.GetHooks.IsAvailable()) @@ -170,11 +173,12 @@ func Test_ClientFactory_InitSDKConfigFromJSON_numberedDevInstance(t *testing.T) } func Test_ClientFactory_InitSDKConfigFromJSON_dev(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) path := setupGetHooksScript(t) clients := NewClientFactory() getHooksJson := fmt.Sprintf(`{"hooks":{"get-hooks": "%s"}}`, path) clients.Config.ApiHostResolved = "https://dev.slack.com" - if err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)); err != nil { + if err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)); err != nil { t.Errorf("error init'ing SDK from JSON %s", err) } require.True(t, clients.SDKConfig.Hooks.GetHooks.IsAvailable()) @@ -183,11 +187,12 @@ func Test_ClientFactory_InitSDKConfigFromJSON_dev(t *testing.T) { } func Test_ClientFactory_InitSDKConfigFromJSON_qa(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) path := setupGetHooksScript(t) clients := NewClientFactory() getHooksJson := fmt.Sprintf(`{"hooks":{"get-hooks": "%s"}}`, path) clients.Config.ApiHostResolved = "https://qa.slack.com" - if err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)); err != nil { + if err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)); err != nil { t.Errorf("error init'ing SDK from JSON %s", err) } require.True(t, clients.SDKConfig.Hooks.GetHooks.IsAvailable()) @@ -196,10 +201,11 @@ func Test_ClientFactory_InitSDKConfigFromJSON_qa(t *testing.T) { } func Test_ClientFactory_InitSDKConfigFromJSON_mergesExistingFile(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) path := setupGetHooksScript(t) clients := NewClientFactory() getHooksJson := fmt.Sprintf(`{"hooks":{"get-hooks": "%s", "start": "foobar"}}`, path) - if err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)); err != nil { + if err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)); err != nil { t.Errorf("error init'ing SDK from JSON %s", err) } require.True(t, clients.SDKConfig.Hooks.GetHooks.IsAvailable()) @@ -208,11 +214,12 @@ func Test_ClientFactory_InitSDKConfigFromJSON_mergesExistingFile(t *testing.T) { } func Test_ClientFactory_InitSDKConfigFromJSON_noGetHooks(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clients := NewClientFactory() getHooksJson := `{"hooks":{"start": "foobar"}}` clients.Config.ApiHostResolved = "https://dev1234.slack.com" clients.Config.SlackDevFlag = true - if err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)); err != nil { + if err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)); err != nil { t.Errorf("error init'ing SDK from JSON %s", err) } require.False(t, clients.SDKConfig.Hooks.GetHooks.IsAvailable()) @@ -221,18 +228,20 @@ func Test_ClientFactory_InitSDKConfigFromJSON_noGetHooks(t *testing.T) { } func Test_ClientFactory_InitSDKConfigFromJSON_brokenGetHooks(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clients := NewClientFactory() getHooksJson := `{"hooks":{"get-hooks": "unknown-command"}}` - err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)) + err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)) require.Error(t, err) assert.Equal(t, slackerror.New(slackerror.ErrSDKHookInvocationFailed).Code, slackerror.ToSlackError(err).Code) assert.Contains(t, slackerror.ToSlackError(err).Message, "Command for 'GetHooks' returned an error") } func Test_ClientFactory_InitSDKConfigFromJSON_brokenJSONFile(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) clients := NewClientFactory() getHooksJson := `{"hooks":{"get-hooks":` - err := clients.InitSDKConfigFromJSON(context.Background(), []byte(getHooksJson)) + err := clients.InitSDKConfigFromJSON(ctx, []byte(getHooksJson)) require.Error(t, err) assert.Equal(t, slackerror.New(slackerror.ErrUnableToParseJson).Code, slackerror.ToSlackError(err).Code) } diff --git a/internal/slackcontext/slackcontext_test.go b/internal/slackcontext/slackcontext_test.go index d701d83e..323a2e75 100644 --- a/internal/slackcontext/slackcontext_test.go +++ b/internal/slackcontext/slackcontext_test.go @@ -41,7 +41,7 @@ func Test_SlackContext_OpenTracingSpan(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = opentracing.ContextWithSpan(ctx, tt.expectedSpan) actualSpan, actualError := OpenTracingSpan(ctx) require.Equal(t, tt.expectedSpan, actualSpan) @@ -60,7 +60,7 @@ func Test_SlackContext_SetOpenTracingSpan(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = SetOpenTracingSpan(ctx, tt.expectedSpan) actualSpan := opentracing.SpanFromContext(ctx) require.Equal(t, tt.expectedSpan, actualSpan) @@ -84,7 +84,7 @@ func Test_SlackContext_OpenTracingTraceID(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = context.WithValue(ctx, contextKeyOpenTracingTraceID, tt.expectedTraceID) actualTraceID, actualError := OpenTracingTraceID(ctx) require.Equal(t, tt.expectedTraceID, actualTraceID) @@ -103,7 +103,7 @@ func Test_SlackContext_SetOpenTracingTraceID(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = SetOpenTracingTraceID(ctx, tt.expectedTraceID) actualTraceID := ctx.Value(contextKeyOpenTracingTraceID).(string) require.Equal(t, tt.expectedTraceID, actualTraceID) @@ -129,7 +129,7 @@ func Test_SlackContext_OpenTracingTracer(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = context.WithValue(ctx, contextKeyOpenTracingTracer, tt.expectedTracer) actualTracer, actualError := OpenTracingTracer(ctx) require.Equal(t, tt.expectedTracer, actualTracer) @@ -150,7 +150,7 @@ func Test_SlackContext_SetOpenTracingTracer(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = SetOpenTracingTracer(ctx, tt.expectedTracer) actualTracer := ctx.Value(contextKeyOpenTracingTracer).(opentracing.Tracer) require.Equal(t, tt.expectedTracer, actualTracer) @@ -174,7 +174,7 @@ func Test_SlackContext_ProjectID(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = context.WithValue(ctx, contextKeyProjectID, tt.expectedProjectID) actualProjectID, actualError := ProjectID(ctx) require.Equal(t, tt.expectedProjectID, actualProjectID) @@ -193,7 +193,7 @@ func Test_SlackContext_SetProjectID(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = SetProjectID(ctx, tt.expectedProjectID) actualProjectID := ctx.Value(contextKeyProjectID).(string) require.Equal(t, tt.expectedProjectID, actualProjectID) @@ -217,7 +217,7 @@ func Test_SlackContext_SessionID(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = context.WithValue(ctx, contextKeySessionID, tt.expectedSessionID) actualSessionID, actualError := SessionID(ctx) require.Equal(t, tt.expectedSessionID, actualSessionID) @@ -236,7 +236,7 @@ func Test_SlackContext_SetSessionID(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = SetSessionID(ctx, tt.expectedSessionID) actualSessionID := ctx.Value(contextKeySessionID).(string) require.Equal(t, tt.expectedSessionID, actualSessionID) @@ -260,7 +260,7 @@ func Test_SlackContext_SystemID(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = context.WithValue(ctx, contextKeySystemID, tt.expectedSystemID) actualSystemID, actualError := SystemID(ctx) require.Equal(t, tt.expectedSystemID, actualSystemID) @@ -279,7 +279,7 @@ func Test_SlackContext_SetSystemID(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = SetSystemID(ctx, tt.expectedSystemID) actualSystemID := ctx.Value(contextKeySystemID).(string) require.Equal(t, tt.expectedSystemID, actualSystemID) @@ -303,7 +303,7 @@ func Test_SlackContext_Version(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = context.WithValue(ctx, contextKeyVersion, tt.expectedVersion) actualVersion, actualError := Version(ctx) require.Equal(t, tt.expectedVersion, actualVersion) @@ -322,7 +322,7 @@ func Test_SlackContext_SetVersion(t *testing.T) { } for name, tt := range tests { t.Run(name, func(t *testing.T) { - ctx := context.Background() + ctx := t.Context() ctx = SetVersion(ctx, tt.expectedVersion) actualVersion := ctx.Value(contextKeyVersion).(string) require.Equal(t, tt.expectedVersion, actualVersion) diff --git a/internal/update/cli_metadata_test.go b/internal/update/cli_metadata_test.go index 76ce133f..61ed78c6 100644 --- a/internal/update/cli_metadata_test.go +++ b/internal/update/cli_metadata_test.go @@ -15,13 +15,13 @@ package update import ( - "context" "fmt" "io" "net/http" "net/http/httptest" "testing" + "github.com/slackapi/slack-cli/internal/slackcontext" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" ) @@ -70,6 +70,8 @@ func Test_CLI_Metadata_CheckForUpdate(t *testing.T) { for name, s := range scenarios { t.Run(name, func(t *testing.T) { + ctx := slackcontext.MockContext(t.Context()) + // Mock an http.Response for the GitHub API w := httptest.NewRecorder() _, _ = io.WriteString(w, fmt.Sprintf( @@ -84,7 +86,7 @@ func Test_CLI_Metadata_CheckForUpdate(t *testing.T) { // Check for an update md := Metadata{httpClient: httpClientMock} - releaseInfo, err := md.CheckForUpdate(context.Background(), metaDataUrl, s.CurrentVersion) + releaseInfo, err := md.CheckForUpdate(ctx, metaDataUrl, s.CurrentVersion) // Assert expected results if s.ExpectsResult {