87 lines
2.1 KiB
Go
87 lines
2.1 KiB
Go
package state
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestAppendSkipSchemaValidationFlagToChartifyTemplateArgs(t *testing.T) {
|
|
enable := true
|
|
|
|
tests := []struct {
|
|
name string
|
|
defaults HelmSpec
|
|
release *ReleaseSpec
|
|
fromCLI bool
|
|
templateArgs string
|
|
want string
|
|
}{
|
|
{
|
|
name: "adds flag from release setting",
|
|
release: &ReleaseSpec{
|
|
SkipSchemaValidation: &enable,
|
|
},
|
|
want: "--skip-schema-validation",
|
|
},
|
|
{
|
|
name: "adds flag from helm defaults",
|
|
defaults: HelmSpec{
|
|
SkipSchemaValidation: &enable,
|
|
},
|
|
release: &ReleaseSpec{},
|
|
want: "--skip-schema-validation",
|
|
},
|
|
{
|
|
name: "appends flag to existing args",
|
|
release: &ReleaseSpec{
|
|
SkipSchemaValidation: &enable,
|
|
},
|
|
templateArgs: "--kube-context default",
|
|
want: "--kube-context default --skip-schema-validation",
|
|
},
|
|
{
|
|
name: "does not duplicate existing flag",
|
|
release: &ReleaseSpec{
|
|
SkipSchemaValidation: &enable,
|
|
},
|
|
templateArgs: "--skip-schema-validation --kube-context default",
|
|
want: "--skip-schema-validation --kube-context default",
|
|
},
|
|
{
|
|
name: "does not treat similar flag values as existing flag",
|
|
release: &ReleaseSpec{
|
|
SkipSchemaValidation: &enable,
|
|
},
|
|
templateArgs: "--set name=foo--skip-schema-validation",
|
|
want: "--set name=foo--skip-schema-validation --skip-schema-validation",
|
|
},
|
|
{
|
|
name: "adds flag from cli setting",
|
|
release: &ReleaseSpec{},
|
|
fromCLI: true,
|
|
templateArgs: "--kube-context default",
|
|
want: "--kube-context default --skip-schema-validation",
|
|
},
|
|
{
|
|
name: "does not add flag when disabled",
|
|
release: &ReleaseSpec{},
|
|
templateArgs: "--kube-context default",
|
|
want: "--kube-context default",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
st := &HelmState{
|
|
ReleaseSetSpec: ReleaseSetSpec{
|
|
HelmDefaults: tt.defaults,
|
|
},
|
|
}
|
|
|
|
got := st.appendSkipSchemaValidationFlagToChartifyTemplateArgs(tt.templateArgs, tt.release, tt.fromCLI)
|
|
require.Equal(t, tt.want, got)
|
|
})
|
|
}
|
|
}
|