avoid side effects changing functions for testing, return the correct error when rendering

Signed-off-by: christopher dykstra <chrdyks@gmail.com>
pull/9797/head
christopher dykstra 4 years ago
parent d399bc1281
commit ee499502b4

@ -149,13 +149,9 @@ func (cfg *Configuration) render(ch *chart.Chart, values chartutil.Values, relea
} }
} }
var files map[string]string files, err := render(ch, values)
var err2 error
files, err = render(ch, values)
if err != nil { if err != nil {
return hs, b, "", err2 return hs, b, "", err
} }
// NOTES.txt gets rendered like all the other files, but because it's not a hook nor a resource, // NOTES.txt gets rendered like all the other files, but because it's not a hook nor a resource,

@ -322,26 +322,28 @@ func TestGetVersionSet(t *testing.T) {
} }
} }
var originalRenderStrategy = renderStrategy
var originalLocalRenderStrategy = localRenderStrategy
func renderStrategyDecorator(decoratorAction func(ch *chart.Chart, values chartutil.Values), strategy renderStrategyFunction) renderStrategyFunction {
return func(ch *chart.Chart, values chartutil.Values) (map[string]string, error) {
decoratorAction(ch, values)
return strategy(ch, values)
}
}
func TestRenderResources_RendersWithStrategy(t *testing.T) { func TestRenderResources_RendersWithStrategy(t *testing.T) {
var renderedLocally = false
var rendered = false var rendered = false
var renderedChart *chart.Chart var renderedChart *chart.Chart
var renderedValues *chartutil.Values var renderedValues *chartutil.Values
var nullRenderStrategy = func(ch *chart.Chart, values chartutil.Values) (map[string]string, error) { var captureChartAndValues = func(ch *chart.Chart, values chartutil.Values) {
renderedChart = ch renderedChart = ch
renderedValues = &values renderedValues = &values
return make(map[string]string), nil
} }
renderStrategy = func(cfg *Configuration) func(ch *chart.Chart, values chartutil.Values) (map[string]string, error) { renderStrategy = func(cfg *Configuration) renderStrategyFunction {
rendered = true rendered = true
return nullRenderStrategy return renderStrategyDecorator(captureChartAndValues, originalRenderStrategy(cfg))
}
localRenderStrategy = func(ch *chart.Chart, values chartutil.Values) (map[string]string, error) {
renderedLocally = true
return nullRenderStrategy(ch, values)
} }
var chart = buildChart() var chart = buildChart()
@ -352,7 +354,6 @@ func TestRenderResources_RendersWithStrategy(t *testing.T) {
actionConfigFixture(t).renderResources(chart, values, "", "", false, false, false, postRender) actionConfigFixture(t).renderResources(chart, values, "", "", false, false, false, postRender)
assert.True(t, rendered, "the chart should be rendered with cluster contact") assert.True(t, rendered, "the chart should be rendered with cluster contact")
assert.False(t, renderedLocally, "the chart should not be rendered without cluster contact")
assert.Same(t, chart, renderedChart, "the rendered chart and the chart resource should be the same") assert.Same(t, chart, renderedChart, "the rendered chart and the chart resource should be the same")
assert.Equal(t, values, *renderedValues, "the rendered values and the values resource should be the same") assert.Equal(t, values, *renderedValues, "the rendered values and the values resource should be the same")
} }
@ -362,21 +363,19 @@ func TestRenderResourcesLocally_RendersWithLocalStrategy(t *testing.T) {
var rendered = false var rendered = false
var renderedChart *chart.Chart var renderedChart *chart.Chart
var renderedValues *chartutil.Values var renderedValues *chartutil.Values
var nullRenderStrategy = func(ch *chart.Chart, values chartutil.Values) (map[string]string, error) { var captureChartAndValues = func(ch *chart.Chart, values chartutil.Values) {
renderedChart = ch renderedChart = ch
renderedValues = &values renderedValues = &values
return make(map[string]string), nil
} }
renderStrategy = func(cfg *Configuration) func(ch *chart.Chart, values chartutil.Values) (map[string]string, error) { renderStrategy = func(cfg *Configuration) renderStrategyFunction {
rendered = true rendered = true
return nullRenderStrategy return renderStrategyDecorator(captureChartAndValues, originalRenderStrategy(cfg))
} }
localRenderStrategy = func(ch *chart.Chart, values chartutil.Values) (map[string]string, error) { localRenderStrategy = func(ch *chart.Chart, values chartutil.Values) (map[string]string, error) {
renderedLocally = true renderedLocally = true
return nullRenderStrategy(ch, values) return renderStrategyDecorator(captureChartAndValues, originalLocalRenderStrategy)(ch, values)
} }
var chart = buildChart() var chart = buildChart()

Loading…
Cancel
Save