-
Notifications
You must be signed in to change notification settings - Fork 450
/
Copy pathissue_188_test.go
33 lines (28 loc) · 1.24 KB
/
issue_188_test.go
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
package sprig
import (
"testing"
)
func TestIssue188(t *testing.T) {
tests := map[string]string{
// This first test shows two merges and the merge is NOT A DEEP COPY MERGE.
// The first merge puts $one on to $_target. When the second merge of $two
// on to $_target the nested dict brought over from $one is changed on
// $one as well as $_target.
`{{- $_target := dict -}}
{{- $one := dict "foo" (dict "bar" "baz") "qux" true -}}
{{- $two := dict "foo" (dict "bar" "baz2") "qux" false -}}
{{- mergeOverwrite $_target $one | toString | trunc 0 }}{{ $__ := mergeOverwrite $_target $two }}{{ $one }}`: "map[foo:map[bar:baz2] qux:true]",
// This test uses deepCopy on $one to create a deep copy and then merge
// that. In this case the merge of $two on to $_target does not affect
// $one because a deep copy was used for that merge.
`{{- $_target := dict -}}
{{- $one := dict "foo" (dict "bar" "baz") "qux" true -}}
{{- $two := dict "foo" (dict "bar" "baz2") "qux" false -}}
{{- deepCopy $one | mergeOverwrite $_target | toString | trunc 0 }}{{ $__ := mergeOverwrite $_target $two }}{{ $one }}`: "map[foo:map[bar:baz] qux:true]",
}
for tpl, expect := range tests {
if err := runt(tpl, expect); err != nil {
t.Error(err)
}
}
}