From d68df4a9d8b7aa986aafddb4a59775d3f56394b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Fri, 16 Jul 2021 15:10:36 +0200 Subject: [PATCH] Do not output error messages for nontty --- pkg/cmd/extensions/command.go | 9 ++++++--- pkg/cmd/extensions/command_test.go | 22 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/pkg/cmd/extensions/command.go b/pkg/cmd/extensions/command.go index 29c4d1fb4..75a2a4dfb 100644 --- a/pkg/cmd/extensions/command.go +++ b/pkg/cmd/extensions/command.go @@ -121,11 +121,14 @@ func NewCmdExtensions(f *cmdutil.Factory) *cobra.Command { Short: "Remove an installed extension", Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - if err := m.Remove(args[0]); err != nil { + extName := args[0] + if err := m.Remove(extName); err != nil { return err } - cs := io.ColorScheme() - fmt.Fprintf(io.Out, "%s Removed extension %s\n", cs.SuccessIcon(), args[0]) + if io.IsStdoutTTY() { + cs := io.ColorScheme() + fmt.Fprintf(io.Out, "%s Removed extension %s\n", cs.SuccessIcon(), extName) + } return nil }, }, diff --git a/pkg/cmd/extensions/command_test.go b/pkg/cmd/extensions/command_test.go index 58ece3740..699c9a1ab 100644 --- a/pkg/cmd/extensions/command_test.go +++ b/pkg/cmd/extensions/command_test.go @@ -24,6 +24,7 @@ func TestNewCmdExtensions(t *testing.T) { name string args []string managerStubs func(em *extensions.ExtensionManagerMock) func(*testing.T) + isTTY bool wantErr bool wantStdout string wantStderr string @@ -90,7 +91,7 @@ func TestNewCmdExtensions(t *testing.T) { }, }, { - name: "remove extension", + name: "remove extension tty", args: []string{"remove", "hello"}, managerStubs: func(em *extensions.ExtensionManagerMock) func(*testing.T) { em.RemoveFunc = func(name string) error { @@ -102,13 +103,32 @@ func TestNewCmdExtensions(t *testing.T) { assert.Equal(t, "hello", calls[0].Name) } }, + isTTY: true, wantStdout: "✓ Removed extension hello\n", }, + { + name: "remove extension nontty", + args: []string{"remove", "hello"}, + managerStubs: func(em *extensions.ExtensionManagerMock) func(*testing.T) { + em.RemoveFunc = func(name string) error { + return nil + } + return func(t *testing.T) { + calls := em.RemoveCalls() + assert.Equal(t, 1, len(calls)) + assert.Equal(t, "hello", calls[0].Name) + } + }, + isTTY: false, + wantStdout: "", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { ios, _, stdout, stderr := iostreams.Test() + ios.SetStdoutTTY(tt.isTTY) + ios.SetStderrTTY(tt.isTTY) var assertFunc func(*testing.T) em := &extensions.ExtensionManagerMock{}