From 4dd73d4efb6963fa528e13c0f74ae545fd616afc Mon Sep 17 00:00:00 2001 From: Viktor Oreshkin Date: Tue, 6 Sep 2022 09:47:58 +0300 Subject: [PATCH] test: move TestListWithJSONOutput to app_list_test Signed-off-by: Viktor Oreshkin --- pkg/app/app_list_test.go | 68 ++++++++++++++++++++++++++++++++++++++++ pkg/app/app_test.go | 58 ---------------------------------- 2 files changed, 68 insertions(+), 58 deletions(-) diff --git a/pkg/app/app_list_test.go b/pkg/app/app_list_test.go index bfb08b04..05b6b543 100644 --- a/pkg/app/app_list_test.go +++ b/pkg/app/app_list_test.go @@ -4,6 +4,7 @@ import ( "bufio" "bytes" "io" + "os" "sync" "testing" @@ -255,3 +256,70 @@ func TestListWithEnvironment(t *testing.T) { testListWithEnvironment(t, configImpl{withPreparedCharts: false}) }) } + +func testListWithJSONOutput(t *testing.T, cfg configImpl) { + cfg.output = "json" + + files := map[string]string{ + "/path/to/helmfile.d/first.yaml": ` +environments: + default: + values: + - myrelease2: + enabled: false +releases: +- name: myrelease1 + chart: mychart1 + installed: no + labels: + id: myrelease1 +- name: myrelease2 + chart: mychart1 + condition: myrelease2.enabled +`, + "/path/to/helmfile.d/second.yaml": ` +releases: +- name: myrelease3 + chart: mychart1 + installed: yes +- name: myrelease4 + chart: mychart1 + labels: + id: myrelease1 +`, + } + stdout := os.Stdout + defer func() { os.Stdout = stdout }() + + var buffer bytes.Buffer + logger := helmexec.NewLogger(&buffer, "debug") + + app := appWithFs(&App{ + OverrideHelmBinary: DefaultHelmBinary, + fs: ffs.DefaultFileSystem(), + OverrideKubeContext: "default", + Env: "default", + Logger: logger, + Namespace: "testNamespace", + }, files) + + expectNoCallsToHelm(app) + + out := testutil.CaptureStdout(func() { + err := app.ListReleases(cfg) + assert.Nil(t, err) + }) + + expected := `[{"name":"myrelease1","namespace":"","enabled":true,"installed":false,"labels":"id:myrelease1","chart":"mychart1","version":""},{"name":"myrelease2","namespace":"","enabled":false,"installed":true,"labels":"","chart":"mychart1","version":""},{"name":"myrelease3","namespace":"","enabled":true,"installed":true,"labels":"","chart":"mychart1","version":""},{"name":"myrelease4","namespace":"","enabled":true,"installed":true,"labels":"id:myrelease1","chart":"mychart1","version":""}] +` + assert.Equal(t, expected, out) +} + +func TestListWithJSONOutput(t *testing.T) { + t.Run("with prepared charts", func(t *testing.T) { + testListWithJSONOutput(t, configImpl{withPreparedCharts: true}) + }) + t.Run("without prepared charts", func(t *testing.T) { + testListWithJSONOutput(t, configImpl{withPreparedCharts: false}) + }) +} diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index d2ed95ec..15bfe67a 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -4627,64 +4627,6 @@ myrelease4 true true id:myrelease1 mychart1 assert.Equal(t, expected, out) } -func TestListWithJsonOutput(t *testing.T) { - files := map[string]string{ - "/path/to/helmfile.d/first.yaml": ` -environments: - default: - values: - - myrelease2: - enabled: false -releases: -- name: myrelease1 - chart: mychart1 - installed: no - labels: - id: myrelease1 -- name: myrelease2 - chart: mychart1 - condition: myrelease2.enabled -`, - "/path/to/helmfile.d/second.yaml": ` -releases: -- name: myrelease3 - chart: mychart1 - installed: yes -- name: myrelease4 - chart: mychart1 - labels: - id: myrelease1 -`, - } - stdout := os.Stdout - defer func() { os.Stdout = stdout }() - - var buffer bytes.Buffer - logger := helmexec.NewLogger(&buffer, "debug") - - app := appWithFs(&App{ - OverrideHelmBinary: DefaultHelmBinary, - fs: ffs.DefaultFileSystem(), - OverrideKubeContext: "default", - Env: "default", - Logger: logger, - Namespace: "testNamespace", - }, files) - - expectNoCallsToHelm(app) - - out := testutil.CaptureStdout(func() { - err := app.ListReleases(configImpl{ - output: "json", - }) - assert.Nil(t, err) - }) - - expected := `[{"name":"myrelease1","namespace":"","enabled":true,"installed":false,"labels":"id:myrelease1","chart":"mychart1","version":""},{"name":"myrelease2","namespace":"","enabled":false,"installed":true,"labels":"","chart":"mychart1","version":""},{"name":"myrelease3","namespace":"","enabled":true,"installed":true,"labels":"","chart":"mychart1","version":""},{"name":"myrelease4","namespace":"","enabled":true,"installed":true,"labels":"id:myrelease1","chart":"mychart1","version":""}] -` - assert.Equal(t, expected, out) -} - func TestSetValuesTemplate(t *testing.T) { files := map[string]string{ "/path/to/helmfile.yaml": `