From 98c4aec0d41e3db21e03223ca2317e6d770da02e Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Sun, 22 Oct 2023 20:49:18 +0800 Subject: [PATCH] add more tests for Desired func (#1082) Signed-off-by: yxxhero --- pkg/state/release_test.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/pkg/state/release_test.go b/pkg/state/release_test.go index d944869b..721b8351 100644 --- a/pkg/state/release_test.go +++ b/pkg/state/release_test.go @@ -43,3 +43,42 @@ func TestExecuteTemplateExpressions(t *testing.T) { require.NoErrorf(t, err, "failed to execute template expressions: %v", err) require.Equalf(t, result.ValuesTemplate[0].(map[string]any)["fullnameOverride"], "foo", "failed to execute template expressions") } + +func TestDesired(t *testing.T) { + cases := []struct { + name string + expected bool + release ReleaseSpec + }{ + { + name: "desired is true", + expected: true, + release: ReleaseSpec{ + Installed: &[]bool{true}[0], + }, + }, + { + name: "desired is false", + expected: false, + release: ReleaseSpec{ + Installed: &[]bool{false}[0], + }, + }, + { + name: "desired is nil", + expected: true, + release: ReleaseSpec{}, + }, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + actual := tc.release.Desired() + require.Equal(t, tc.expected, actual) + + // test compatibility with older versions of helmfile + // r.Installed != nil && !*r.Installed compare to !r.Desired() + require.Equal(t, tc.release.Installed != nil && !*tc.release.Installed, !actual) + }) + } +}