Templates: don't validate deprecated parameters (#26292)

This commit is contained in:
andig 2025-12-31 13:38:57 +01:00 • committed by GitHub
parent 916de19f4f
commit 1bdc6a6fe5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 40 additions and 5 deletions

View file

@ -366,7 +366,7 @@ func (t *Template) RenderResult(renderMode int, other map[string]any) ([]byte, m
}
// validate required fields from yaml
if s == "" && p.IsRequired() && (renderMode == RenderModeUnitTest ||
if s == "" && p.IsRequired() && !p.IsDeprecated() && (renderMode == RenderModeUnitTest ||
renderMode == RenderModeInstance && !testing.Testing()) {
// validate required per usage
if len(p.Usages) == 0 || slices.Contains(p.Usages, usage) {

View file

@ -3,6 +3,7 @@ package templates
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -48,22 +49,56 @@ func TestRequired(t *testing.T) {
_, _, err := tmpl.RenderResult(RenderModeUnitTest, map[string]any{
"Param": "foo",
})
require.NoError(t, err)
assert.NoError(t, err, "test: required present")
_, _, err = tmpl.RenderResult(RenderModeUnitTest, map[string]any{
"Param": "",
})
require.Error(t, err)
assert.Error(t, err, "test: required present but empty")
_, _, err = tmpl.RenderResult(RenderModeUnitTest, map[string]any{
"Param": nil,
})
require.Error(t, err)
assert.Error(t, err, "test: required present but nil")
_, _, err = tmpl.RenderResult(RenderModeDocs, map[string]any{
"Param": nil,
})
require.NoError(t, err)
assert.NoError(t, err, "docs: required present but nil")
}
func TestRequiredDeprecated(t *testing.T) {
tmpl := &Template{
TemplateDefinition: TemplateDefinition{
Params: []Param{
{
Name: "param",
Required: true,
Deprecated: true,
},
},
},
}
_, _, err := tmpl.RenderResult(RenderModeUnitTest, map[string]any{
"Param": "foo",
})
assert.NoError(t, err, "test: required present")
_, _, err = tmpl.RenderResult(RenderModeUnitTest, map[string]any{
"Param": "",
})
assert.NoError(t, err, "test: required present but empty")
_, _, err = tmpl.RenderResult(RenderModeUnitTest, map[string]any{
"Param": nil,
})
assert.NoError(t, err, "test: required present but nil")
_, _, err = tmpl.RenderResult(RenderModeDocs, map[string]any{
"Param": nil,
})
assert.NoError(t, err, "docs: required present but nil")
}
func TestRequiredPerUsage(t *testing.T) {