File: helmchartargs_test.go

package info (click to toggle)
golang-k8s-sigs-kustomize-api 0.20.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,768 kB
  • sloc: makefile: 206; sh: 67
file content (104 lines) | stat: -rw-r--r-- 3,274 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0

package types_test

import (
	"testing"

	"github.com/stretchr/testify/require"
	"sigs.k8s.io/kustomize/api/types"
)

func TestAsHelmArgs(t *testing.T) {
	t.Run("use generate-name", func(t *testing.T) {
		p := types.HelmChart{
			Name:                  "chart-name",
			Version:               "1.0.0",
			Repo:                  "https://helm.releases.hashicorp.com",
			ApiVersions:           []string{"foo", "bar"},
			KubeVersion:           "1.27",
			NameTemplate:          "template",
			SkipTests:             true,
			IncludeCRDs:           true,
			SkipHooks:             true,
			ValuesFile:            "values",
			AdditionalValuesFiles: []string{"values1", "values2"},
			Namespace:             "my-ns",
		}
		require.Equal(t, p.AsHelmArgs("/home/charts"),
			[]string{"template", "--generate-name",
				"/home/charts/chart-name",
				"--namespace", "my-ns",
				"--name-template", "template",
				"-f", "values",
				"-f", "values1", "-f", "values2",
				"--api-versions", "foo", "--api-versions", "bar",
				"--kube-version", "1.27",
				"--include-crds",
				"--skip-tests",
				"--no-hooks"})
	})

	t.Run("use release-name", func(t *testing.T) {
		p := types.HelmChart{
			Name:                  "chart-name",
			Version:               "1.0.0",
			Repo:                  "https://helm.releases.hashicorp.com",
			ApiVersions:           []string{"foo", "bar"},
			NameTemplate:          "template",
			ValuesFile:            "values",
			AdditionalValuesFiles: []string{"values1", "values2"},
			Namespace:             "my-ns",
			ReleaseName:           "test",
		}
		require.Equal(t, p.AsHelmArgs("/home/charts"),
			[]string{"template", "test", "/home/charts/chart-name",
				"--namespace", "my-ns",
				"--name-template", "template",
				"-f", "values",
				"-f", "values1", "-f", "values2",
				"--api-versions", "foo", "--api-versions", "bar"})
	})

	t.Run("use helm-debug", func(t *testing.T) {
		p := types.HelmChart{
			Name:                  "chart-name",
			Version:               "1.0.0",
			Repo:                  "https://helm.releases.hashicorp.com",
			ValuesFile:            "values",
			AdditionalValuesFiles: []string{"values1", "values2"},
			Debug:                 true,
		}
		require.Equal(t, p.AsHelmArgs("/home/charts"),
			[]string{"template", "--generate-name", "/home/charts/chart-name",
				"-f", "values",
				"-f", "values1",
				"-f", "values2",
				"--debug"})
	})

	t.Run("use helm-devel", func(t *testing.T) {
		// We first test that the devel flag is only appended when specified
		p := types.HelmChart{
			Name:                  "chart-name",
			Version:               "1.0.0",
			Repo:                  "https://helm.releases.hashicorp.com",
			ValuesFile:            "values",
			AdditionalValuesFiles: []string{"values1", "values2"},
		}
		require.Equal(t, p.AsHelmArgs("/home/charts"),
			[]string{"template", "--generate-name", "/home/charts/chart-name",
				"-f", "values",
				"-f", "values1",
				"-f", "values2"})

		p.Devel = true
		require.Equal(t, p.AsHelmArgs("/home/charts"),
			[]string{"template", "--generate-name", "/home/charts/chart-name",
				"-f", "values",
				"-f", "values1",
				"-f", "values2",
				"--devel"})
	})
}