From cb8dbbcd621247e0f88e00e8c60992da2744c4b5 Mon Sep 17 00:00:00 2001 From: Antonio Gurgel Date: Sat, 26 Aug 2023 04:43:26 -0700 Subject: [PATCH] fix: Print valid JSON/YAML when workflow list empty #10873 (#11681) --- util/printer/workflow-printer.go | 6 +++++- util/printer/workflow-printer_test.go | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/util/printer/workflow-printer.go b/util/printer/workflow-printer.go index 4c442a719f2d..7b8d48aaa97c 100644 --- a/util/printer/workflow-printer.go +++ b/util/printer/workflow-printer.go @@ -17,7 +17,11 @@ import ( func PrintWorkflows(workflows wfv1.Workflows, out io.Writer, opts PrintOpts) error { if len(workflows) == 0 { - _, _ = fmt.Fprintln(out, "No workflows found") + if opts.Output == "json" || opts.Output == "yaml" { + _, _ = fmt.Fprintln(out, "[]") + } else { + _, _ = fmt.Fprintln(out, "No workflows found") + } return nil } diff --git a/util/printer/workflow-printer_test.go b/util/printer/workflow-printer_test.go index e0fcb76d9af4..1632b6481f73 100644 --- a/util/printer/workflow-printer_test.go +++ b/util/printer/workflow-printer_test.go @@ -50,6 +50,18 @@ func TestPrintWorkflows(t *testing.T) { var b bytes.Buffer assert.NoError(t, PrintWorkflows(emptyWorkflows, &b, PrintOpts{})) assert.Equal(t, `No workflows found +`, b.String()) + }) + t.Run("EmptyJSON", func(t *testing.T) { + var b bytes.Buffer + assert.NoError(t, PrintWorkflows(emptyWorkflows, &b, PrintOpts{Output: "json"})) + assert.Equal(t, `[] +`, b.String()) + }) + t.Run("EmptyYAML", func(t *testing.T) { + var b bytes.Buffer + assert.NoError(t, PrintWorkflows(emptyWorkflows, &b, PrintOpts{Output: "yaml"})) + assert.Equal(t, `[] `, b.String()) }) t.Run("Default", func(t *testing.T) {