32 lines
794 B
Go
32 lines
794 B
Go
package tmpl
|
|
|
|
import (
|
|
"fmt"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestRenderTemplate(t *testing.T) {
|
|
valuesYamlContent := `foo:
|
|
bar: BAR
|
|
`
|
|
expected := `foo:
|
|
bar: FOO_BAR
|
|
`
|
|
expectedFilename := "values.yaml"
|
|
ctx := &Context{readFile: func(filename string) ([]byte, error) {
|
|
if filename != expectedFilename {
|
|
return nil, fmt.Errorf("unexpected filename: expected=%v, actual=%s", expectedFilename, filename)
|
|
}
|
|
return []byte(valuesYamlContent), nil
|
|
}}
|
|
buf, err := ctx.RenderTemplateToBuffer(`{{ readFile "values.yaml" | fromYaml | setValueAtPath "foo.bar" "FOO_BAR" | toYaml }}`)
|
|
if err != nil {
|
|
t.Errorf("unexpected error: %v", err)
|
|
}
|
|
actual := buf.String()
|
|
if !reflect.DeepEqual(actual, expected) {
|
|
t.Errorf("unexpected result: expected=%v, actual=%v", expected, actual)
|
|
}
|
|
}
|