diff --git a/pkg/cmd/hello/hello_test.go b/pkg/cmd/hello/hello_test.go index cd35a48c4..8a3fad622 100644 --- a/pkg/cmd/hello/hello_test.go +++ b/pkg/cmd/hello/hello_test.go @@ -1 +1,39 @@ package hello + +import "testing" + +type shellOnboardingPollDoneCase struct { + name string + res *OnboardingObject + want bool +} + +var shellOnboardingPollDoneCases = []shellOnboardingPollDoneCase{ + { + name: "hasRunBrevShell", + res: &OnboardingObject{HasRunBrevShell: true}, + want: true, + }, + { + name: "brevOpenOnly", + res: &OnboardingObject{HasRunBrevOpen: true, HasRunBrevShell: false}, + want: false, + }, + { + name: "nil", + res: nil, + want: false, + }, +} + +func TestShellOnboardingPollDone(t *testing.T) { + t.Parallel() + for _, c := range shellOnboardingPollDoneCases { + t.Run(c.name, func(t *testing.T) { + t.Parallel() + if got := shellOnboardingPollDone(c.res); got != c.want { + t.Fatalf("got %v, want %v", got, c.want) + } + }) + } +} diff --git a/pkg/cmd/hello/onboarding_utils.go b/pkg/cmd/hello/onboarding_utils.go index 7ea80b2fc..5165b38df 100644 --- a/pkg/cmd/hello/onboarding_utils.go +++ b/pkg/cmd/hello/onboarding_utils.go @@ -123,6 +123,10 @@ type OnboardingObject struct { HasRunBrevOpen bool `json:"hasRunBrevOpen"` } +func shellOnboardingPollDone(res *OnboardingObject) bool { + return res != nil && res.HasRunBrevShell +} + func SetupDefaultOnboardingFile() error { // get path path, err := GetOnboardingFilePath() diff --git a/pkg/cmd/hello/steps.go b/pkg/cmd/hello/steps.go index a49406b86..4c1f7a493 100644 --- a/pkg/cmd/hello/steps.go +++ b/pkg/cmd/hello/steps.go @@ -242,7 +242,7 @@ func doBrevShellOnboarding( if err1 != nil { return breverrors.WrapAndTrace(err1) } - if res.HasRunBrevOpen { + if shellOnboardingPollDone(res) { spinner.Suffix = spinnerSuffix time.Sleep(250 * time.Millisecond) spinner.Stop()