From 1c8afb44080e8f767b8789c4955560b09e7cf744 Mon Sep 17 00:00:00 2001 From: Kim Christensen <kimworking@gmail.com> Date: Thu, 9 Jan 2025 14:32:14 +0100 Subject: [PATCH 1/3] fix(parameters): improve parameter set table output format - Add "PARAMETER SET" column to distinguish between parameter set name and parameter name - Rename internal variable from paramsSets to result for clarity - Include parameter set name in output rows for better identification - Update table headers to reflect new column structure Signed-off-by: Kim Christensen <kimworking@gmail.com> --- pkg/porter/parameters.go | 10 ++++----- tests/integration/parameters_test.go | 21 +++++++++++++++++++ tests/integration/params.json | 13 ++++++++++++ .../testdata/parametersets/params.json | 13 ++++++++++++ 4 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 tests/integration/parameters_test.go create mode 100644 tests/integration/params.json create mode 100644 tests/integration/testdata/parametersets/params.json diff --git a/pkg/porter/parameters.go b/pkg/porter/parameters.go index 630372d84..697e8bd21 100644 --- a/pkg/porter/parameters.go +++ b/pkg/porter/parameters.go @@ -79,16 +79,16 @@ func (p *Porter) PrintParameters(ctx context.Context, opts ListOptions) error { tp := dtprinter.DateTimePrinter{ Now: func() time.Time { return now }, } - paramsSets := [][]string{} + result := [][]string{} for _, ps := range params { for _, param := range ps.Parameters { list := []string{} - list = append(list, ps.Namespace, param.Name, param.Source.Strategy, param.Source.Hint, tp.Format(ps.Status.Modified)) - paramsSets = append(paramsSets, list) + list = append(list, ps.Namespace, ps.Name, param.Name, param.Source.Strategy, param.Source.Hint, tp.Format(ps.Status.Modified)) + result = append(result, list) } } - return printer.PrintTableParameterSet(p.Out, paramsSets, - "NAMESPACE", "NAME", "TYPE", "VALUE", "MODIFIED") + return printer.PrintTableParameterSet(p.Out, result, + "NAMESPACE", "PARAMETER SET", "NAME", "TYPE", "VALUE", "MODIFIED") default: return fmt.Errorf("invalid format: %s", opts.Format) } diff --git a/tests/integration/parameters_test.go b/tests/integration/parameters_test.go new file mode 100644 index 000000000..bd4a53b3d --- /dev/null +++ b/tests/integration/parameters_test.go @@ -0,0 +1,21 @@ +//go:build integration + +package integration + +import ( + "testing" + + "get.porter.sh/porter/tests/tester" + "github.com/stretchr/testify/require" +) + +func TestParametersOutputContainsParameterSetName(t *testing.T) { + test, err := tester.NewTest(t) + defer test.Close() + require.NoError(t, err, "test setup failed") + test.TestContext.AddTestFile("testdata/parametersets/params.json", "params.json") + test.RequirePorter("parameters", "apply", "params.json") + + output, _ := test.RequirePorter("parameters", "list") + require.Contains(t, output, "integration-test") +} diff --git a/tests/integration/params.json b/tests/integration/params.json new file mode 100644 index 000000000..293c96f19 --- /dev/null +++ b/tests/integration/params.json @@ -0,0 +1,13 @@ +{ + "schemaType": "ParameterSet", + "schemaVersion": "1.0.1", + "name": "integration-test", + "parameters": [ + { + "name": "name", + "source": { + "env": "FOO" + } + } + ] +} \ No newline at end of file diff --git a/tests/integration/testdata/parametersets/params.json b/tests/integration/testdata/parametersets/params.json new file mode 100644 index 000000000..293c96f19 --- /dev/null +++ b/tests/integration/testdata/parametersets/params.json @@ -0,0 +1,13 @@ +{ + "schemaType": "ParameterSet", + "schemaVersion": "1.0.1", + "name": "integration-test", + "parameters": [ + { + "name": "name", + "source": { + "env": "FOO" + } + } + ] +} \ No newline at end of file From b5caf34c2c8ad2b896129eaf3710cc048719b658 Mon Sep 17 00:00:00 2001 From: Kim Christensen <kimworking@gmail.com> Date: Mon, 20 Jan 2025 14:39:41 +0100 Subject: [PATCH 2/3] fix: Unit test Signed-off-by: Kim Christensen <kimworking@gmail.com> --- pkg/porter/testdata/parameters/mypsettable.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/porter/testdata/parameters/mypsettable.txt b/pkg/porter/testdata/parameters/mypsettable.txt index 4f085efff..9fddc3838 100644 --- a/pkg/porter/testdata/parameters/mypsettable.txt +++ b/pkg/porter/testdata/parameters/mypsettable.txt @@ -1,4 +1,4 @@ ---------------------------------------------------- - NAMESPACE NAME TYPE VALUE MODIFIED ---------------------------------------------------- - foo secret foo_secret 1983-04-18 +------------------------------------------------------------------ + NAMESPACE PARAMETER SET NAME TYPE VALUE MODIFIED +------------------------------------------------------------------ + mypset foo secret foo_secret 1983-04-18 From 9d22a26dc12942495c7e1b7f876c79f6145c14d8 Mon Sep 17 00:00:00 2001 From: Kim Christensen <kimworking@gmail.com> Date: Mon, 20 Jan 2025 14:43:32 +0100 Subject: [PATCH 3/3] test: Remove integration test as this is already covered by unit tests Signed-off-by: Kim Christensen <kimworking@gmail.com> --- tests/integration/parameters_test.go | 21 ------------------- tests/integration/params.json | 13 ------------ .../testdata/parametersets/params.json | 13 ------------ 3 files changed, 47 deletions(-) delete mode 100644 tests/integration/parameters_test.go delete mode 100644 tests/integration/params.json delete mode 100644 tests/integration/testdata/parametersets/params.json diff --git a/tests/integration/parameters_test.go b/tests/integration/parameters_test.go deleted file mode 100644 index bd4a53b3d..000000000 --- a/tests/integration/parameters_test.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build integration - -package integration - -import ( - "testing" - - "get.porter.sh/porter/tests/tester" - "github.com/stretchr/testify/require" -) - -func TestParametersOutputContainsParameterSetName(t *testing.T) { - test, err := tester.NewTest(t) - defer test.Close() - require.NoError(t, err, "test setup failed") - test.TestContext.AddTestFile("testdata/parametersets/params.json", "params.json") - test.RequirePorter("parameters", "apply", "params.json") - - output, _ := test.RequirePorter("parameters", "list") - require.Contains(t, output, "integration-test") -} diff --git a/tests/integration/params.json b/tests/integration/params.json deleted file mode 100644 index 293c96f19..000000000 --- a/tests/integration/params.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "schemaType": "ParameterSet", - "schemaVersion": "1.0.1", - "name": "integration-test", - "parameters": [ - { - "name": "name", - "source": { - "env": "FOO" - } - } - ] -} \ No newline at end of file diff --git a/tests/integration/testdata/parametersets/params.json b/tests/integration/testdata/parametersets/params.json deleted file mode 100644 index 293c96f19..000000000 --- a/tests/integration/testdata/parametersets/params.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "schemaType": "ParameterSet", - "schemaVersion": "1.0.1", - "name": "integration-test", - "parameters": [ - { - "name": "name", - "source": { - "env": "FOO" - } - } - ] -} \ No newline at end of file