refactor(engine): implement review feedback to wrap errors and use named mock chart type

Appends subchart name/path metadata to dependency errors in recAllTpls, wraps root template collection errors in Render, and refactors TestRenderInvalidChartType to use a named unsupportedChart struct.

Signed-off-by: Ankit Pramanik <59945244+ankit98040@users.noreply.github.com>
pull/32167/head
Ankit Pramanik 4 months ago
parent 0211dc877b
commit de83e2720f

@ -79,7 +79,7 @@ func New(config *rest.Config) Engine {
func (e Engine) Render(chrt ci.Charter, values common.Values) (map[string]string, error) { func (e Engine) Render(chrt ci.Charter, values common.Values) (map[string]string, error) {
tmap, err := allTemplates(chrt, values) tmap, err := allTemplates(chrt, values)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("collecting templates: %w", err)
} }
return e.render(tmap) return e.render(tmap)
} }
@ -570,7 +570,7 @@ func recAllTpls(c ci.Charter, templates map[string]renderable, values common.Val
} }
subTpls, err := recAllTpls(child, templates, next) subTpls, err := recAllTpls(child, templates, next)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("error rendering dependency chart %q at %q: %w", sub.Name(), sub.ChartFullPath(), err)
} }
subCharts[sub.Name()] = subTpls subCharts[sub.Name()] = subTpls
} }

@ -599,8 +599,10 @@ func TestAllTemplates(t *testing.T) {
} }
} }
type unsupportedChart struct{}
func TestRenderInvalidChartType(t *testing.T) { func TestRenderInvalidChartType(t *testing.T) {
_, err := Render(struct{}{}, common.Values{}) _, err := Render(unsupportedChart{}, common.Values{})
if err == nil { if err == nil {
t.Error("Expected error when rendering invalid chart type, got nil") t.Error("Expected error when rendering invalid chart type, got nil")
} else if !strings.Contains(err.Error(), "unsupported chart type") { } else if !strings.Contains(err.Error(), "unsupported chart type") {

Loading…
Cancel
Save