From cbfd8dfd27a1e7328375e1561158cb914d339920 Mon Sep 17 00:00:00 2001 From: yxxhero Date: Fri, 15 Sep 2023 08:44:27 +0800 Subject: [PATCH] fix tests Signed-off-by: yxxhero --- pkg/app/app_test.go | 109 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 98 insertions(+), 11 deletions(-) diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index 426300e8..73c07656 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -2755,8 +2755,9 @@ releases: func TestApply(t *testing.T) { type fields struct { - skipNeeds bool - includeNeeds bool + skipNeeds bool + includeNeeds bool + includeTransitiveNeeds bool } testcases := []struct { name string @@ -2778,6 +2779,10 @@ func TestApply(t *testing.T) { // complex test cases for smoke testing // { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "smoke", loc: location(), files: map[string]string{ @@ -2899,6 +2904,10 @@ backend-v2 4 Fri Nov 1 08:40:07 2019 DEPLOYED backend-3.1.0 3.1.0 // noop: no changes // { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "noop", loc: location(), files: map[string]string{ @@ -2929,6 +2938,10 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau // install // { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "install", loc: location(), files: map[string]string{ @@ -2962,6 +2975,10 @@ releases: // install with upgrade // { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "install-with-upgrade-with-validation-control", loc: location(), files: map[string]string{ @@ -3006,6 +3023,10 @@ baz 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart3-3.1.0 3.1.0 defau // install with upgrade and --skip-diff-on-install // { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "install-with-upgrade-with-skip-diff-on-install", loc: location(), skipDiffOnInstall: true, @@ -3050,6 +3071,10 @@ baz 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart3-3.1.0 3.1.0 defau // upgrades // { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "upgrade when foo needs bar", loc: location(), files: map[string]string{ @@ -3073,6 +3098,10 @@ releases: }, }, { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "upgrade when bar needs foo", loc: location(), files: map[string]string{ @@ -3096,6 +3125,10 @@ releases: }, }, { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "upgrade when foo needs bar, with ns override", loc: location(), ns: "testNamespace", @@ -3120,6 +3153,10 @@ releases: }, }, { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "upgrade when bar needs foo, with ns override", loc: location(), ns: "testNamespace", @@ -3144,6 +3181,10 @@ releases: }, }, { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "upgrade when ns1/foo needs ns2/bar", loc: location(), files: map[string]string{ @@ -3169,6 +3210,10 @@ releases: }, }, { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "upgrade when ns2/bar needs ns1/foo", loc: location(), files: map[string]string{ @@ -3197,6 +3242,10 @@ releases: // deletes: deleting all releases in the correct order // { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "delete foo and bar when foo needs bar", loc: location(), files: map[string]string{ @@ -3231,7 +3280,11 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau }, { name: "delete foo and bar when bar needs foo", - loc: location(), + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, + loc: location(), files: map[string]string{ "/path/to/helmfile.yaml": ` releases: @@ -3280,6 +3333,10 @@ releases: - bar `, }, + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, diffs: map[exectest.DiffKey]error{ {Name: "bar", Chart: "stable/mychart2", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, {Name: "foo", Chart: "stable/mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, @@ -3300,6 +3357,10 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau }, }, { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "delete bar when foo needs bar", loc: location(), files: map[string]string{ @@ -3334,6 +3395,10 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau }, }, { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "delete foo when bar needs foo", loc: location(), files: map[string]string{ @@ -3368,6 +3433,10 @@ bar 4 Fri Nov 1 08:40:07 2019 DEPLOYED mychart2-3.1.0 3.1.0 defau }, }, { + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, name: "delete bar when bar needs foo", loc: location(), files: map[string]string{ @@ -3599,9 +3668,13 @@ releases: `, }, selectors: []string{"app=test_non_existent"}, - diffs: map[exectest.DiffKey]error{}, - upgraded: []exectest.Release{}, - error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, + diffs: map[exectest.DiffKey]error{}, + upgraded: []exectest.Release{}, + error: "err: no releases found that matches specified selector(app=test_non_existent) and environment(default), in any helmfile", // as we check for log output, set concurrency to 1 to avoid non-deterministic test result concurrency: 1, log: `processing file "helmfile.yaml" in directory "." @@ -3678,6 +3751,10 @@ changing working directory back to "/path/to" name: "unselected release in needs", loc: location(), selectors: []string{"name=foo"}, + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, files: map[string]string{ "/path/to/helmfile.yaml": ` releases: @@ -3741,7 +3818,11 @@ changing working directory back to "/path/to" }, { name: "non-existent release in needs", - loc: location(), + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, + loc: location(), files: map[string]string{ "/path/to/helmfile.yaml": ` releases: @@ -3822,6 +3903,10 @@ releases: - ns1/bar `, }, + fields: fields{ + skipNeeds: false, + includeNeeds: true, + }, diffs: map[exectest.DiffKey]error{ {Name: "bar", Chart: "mychart3", Flags: "--kube-context default --namespace ns1 --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, {Name: "foo", Chart: "mychart1", Flags: "--kube-context default --detailed-exitcode --reset-values"}: helmexec.ExitError{Code: 2}, @@ -3925,10 +4010,12 @@ changing working directory back to "/path/to" applyErr := app.Apply(applyConfig{ // if we check log output, concurrency must be 1. otherwise the test becomes non-deterministic. - concurrency: tc.concurrency, - logger: logger, - skipDiffOnInstall: tc.skipDiffOnInstall, - skipNeeds: tc.fields.skipNeeds, + concurrency: tc.concurrency, + logger: logger, + skipDiffOnInstall: tc.skipDiffOnInstall, + skipNeeds: tc.fields.skipNeeds, + includeNeeds: tc.fields.includeNeeds, + includeTransitiveNeeds: tc.fields.includeTransitiveNeeds, }) switch { case tc.error == "" && applyErr != nil: