68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
package tmpl
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"github.com/roboll/helmfile/pkg/environment"
 | 
						|
	"reflect"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
var emptyEnvTmplData = map[string]interface{}{
 | 
						|
	"Environment": environment.EmptyEnvironment,
 | 
						|
	"Namespace":   "",
 | 
						|
}
 | 
						|
 | 
						|
func TestRenderToBytes_Gotmpl(t *testing.T) {
 | 
						|
	valuesYamlTmplContent := `foo:
 | 
						|
  bar: '{{ readFile "data.txt" }}'
 | 
						|
`
 | 
						|
	dataFileContent := "FOO_BAR"
 | 
						|
	expected := `foo:
 | 
						|
  bar: 'FOO_BAR'
 | 
						|
`
 | 
						|
	dataFile := "data.txt"
 | 
						|
	valuesTmplFile := "values.yaml.gotmpl"
 | 
						|
	r := NewFileRenderer(func(filename string) ([]byte, error) {
 | 
						|
		switch filename {
 | 
						|
		case valuesTmplFile:
 | 
						|
			return []byte(valuesYamlTmplContent), nil
 | 
						|
		case dataFile:
 | 
						|
			return []byte(dataFileContent), nil
 | 
						|
		}
 | 
						|
		return nil, fmt.Errorf("unexpected filename: expected=%v or %v, actual=%s", dataFile, valuesTmplFile, filename)
 | 
						|
	}, "", emptyEnvTmplData)
 | 
						|
	buf, err := r.RenderToBytes(valuesTmplFile)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("unexpected error: %v", err)
 | 
						|
	}
 | 
						|
	actual := string(buf)
 | 
						|
	if !reflect.DeepEqual(actual, expected) {
 | 
						|
		t.Errorf("unexpected result: expected=%v, actual=%v", expected, actual)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestRenderToBytes_Yaml(t *testing.T) {
 | 
						|
	valuesYamlContent := `foo:
 | 
						|
  bar: '{{ readFile "data.txt" }}'
 | 
						|
`
 | 
						|
	expected := `foo:
 | 
						|
  bar: '{{ readFile "data.txt" }}'
 | 
						|
`
 | 
						|
	valuesFile := "values.yaml"
 | 
						|
	r := NewFileRenderer(func(filename string) ([]byte, error) {
 | 
						|
		switch filename {
 | 
						|
		case valuesFile:
 | 
						|
			return []byte(valuesYamlContent), nil
 | 
						|
		}
 | 
						|
		return nil, fmt.Errorf("unexpected filename: expected=%v, actual=%s", valuesFile, filename)
 | 
						|
	}, "", emptyEnvTmplData)
 | 
						|
	buf, err := r.RenderToBytes(valuesFile)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("unexpected error: %v", err)
 | 
						|
	}
 | 
						|
	actual := string(buf)
 | 
						|
	if !reflect.DeepEqual(actual, expected) {
 | 
						|
		t.Errorf("unexpected result: expected=%v, actual=%v", expected, actual)
 | 
						|
	}
 | 
						|
}
 |