diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index 937a3b4fd..b1bc93040 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -200,14 +200,14 @@ func parseTemplateError(filename string, err error) error { tokens := strings.Split(err.Error(), ": ") if len(tokens) == 1 { // This might happen if a non-templating error occurs - return fmt.Errorf("render error in %s: %q", filename, err) + return fmt.Errorf("render error in (%s): %s", filename, err) } // The first token is "template" // The second token is either "filename:lineno" or "filename:lineNo:columnNo" location := tokens[1] // The remaining tokens make up a stacktrace-like chain, ending with the relevant error errMsg := tokens[len(tokens)-1] - return fmt.Errorf("%s (%s)", errMsg, string(location)) + return fmt.Errorf("render error at (%s): %s", string(location), errMsg) } func sortTemplates(tpls map[string]renderable) []string { diff --git a/pkg/engine/engine_test.go b/pkg/engine/engine_test.go index 7c52077f5..9d708f193 100644 --- a/pkg/engine/engine_test.go +++ b/pkg/engine/engine_test.go @@ -197,7 +197,7 @@ func TestRenderErrors(t *testing.T) { if err == nil { t.Fatalf("Expected failures while rendering: %s", err) } - expected := `foo is required (missing_required:1:2)` + expected := `render error at (missing_required:1:2): foo is required` if err.Error() != expected { t.Errorf("Expected '%s', got %q", expected, err.Error()) } @@ -209,7 +209,7 @@ func TestRenderErrors(t *testing.T) { if err == nil { t.Fatalf("Expected failures while rendering: %s", err) } - expected = `function "foo" not defined (undefined_function:1)` + expected = `render error at (undefined_function:1): function "foo" not defined` if err.Error() != expected { t.Errorf("Expected '%s', got %q", expected, err.Error()) }