...
1 package cmd
2
3 import (
4 "bytes"
5 "fmt"
6 "testing"
7
8 multicluster "github.com/linkerd/linkerd2/multicluster/values"
9 "github.com/linkerd/linkerd2/pkg/charts"
10 )
11
12 func TestRender(t *testing.T) {
13
14 defaultValues := map[string]interface{}{}
15
16 testCases := []struct {
17 values map[string]interface{}
18 multiclusterValues *multicluster.Values
19 goldenFileName string
20 }{
21 {
22 nil,
23 nil,
24 "install_default.golden",
25 },
26 {
27 map[string]interface{}{
28 "enablePSP": "true",
29 },
30 nil,
31 "install_psp.golden",
32 },
33 {
34 map[string]interface{}{
35 "enablePSP": "true",
36 "gateway": map[string]interface{}{
37 "replicas": 3,
38 },
39 "enablePodAntiAffinity": true,
40 },
41 nil,
42 "install_ha.golden",
43 },
44 }
45
46 for i, tc := range testCases {
47 tc := tc
48 t.Run(fmt.Sprintf("%d: %s", i, tc.goldenFileName), func(t *testing.T) {
49 var buf bytes.Buffer
50
51 if err := render(&buf, tc.multiclusterValues, charts.MergeMaps(defaultValues, tc.values)); err != nil {
52 t.Fatalf("Failed to render templates: %v", err)
53 }
54 if err := testDataDiffer.DiffTestYAML(tc.goldenFileName, buf.String()); err != nil {
55 t.Error(err)
56 }
57 })
58 }
59 }
60
View as plain text