updated unit tests to conform with helm best practices

Signed-off-by: Matthew Luckam <Matthew.Luckam@peraton.com>
pull/9260/head
Matthew Luckam 3 years ago
parent f402994461
commit 592c338242

@ -104,7 +104,7 @@ func TestValidateValuesFileSchemaFailure(t *testing.T) {
}
func TestValidateValuesFileSchemaOverrides(t *testing.T) {
yaml := "username: admin\npassword:"
yaml := "username: admin"
overrides := map[string]interface{}{
"password": "swordfish",
}
@ -118,21 +118,51 @@ func TestValidateValuesFileSchemaOverrides(t *testing.T) {
}
}
func TestValidateValuesFileSchemaOverridesFailure(t *testing.T) {
yaml := "username: admin\npassword:"
overrides := map[string]interface{}{
"username": "anotherUser",
func TestValidateValuesFile(t *testing.T) {
tests := []struct {
name string
yaml string
overrides map[string]interface{}
errorMessage string
}{
{
name: "value added",
yaml: "username: admin",
overrides: map[string]interface{}{"password": "swordfish"},
},
{
name: "value not overridden",
yaml: "username: admin\npassword:",
overrides: map[string]interface{}{"username": "anotherUser"},
errorMessage: "Expected: string, given: null",
},
{
name: "value overridden",
yaml: "username: admin\npassword:",
overrides: map[string]interface{}{"username": "anotherUser", "password": "swordfish"},
},
}
tmpdir := ensure.TempFile(t, "values.yaml", []byte(yaml))
defer os.RemoveAll(tmpdir)
createTestingSchema(t, tmpdir)
valfile := filepath.Join(tmpdir, "values.yaml")
err := validateValuesFile(valfile, overrides)
if err == nil {
t.Fatalf("expected values file to fail parsing")
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
tmpdir := ensure.TempFile(t, "values.yaml", []byte(tt.yaml))
defer os.RemoveAll(tmpdir)
createTestingSchema(t, tmpdir)
valfile := filepath.Join(tmpdir, "values.yaml")
err := validateValuesFile(valfile, tt.overrides)
switch {
case err != nil && tt.errorMessage == "":
t.Errorf("Failed validation with %s", err)
case err == nil && tt.errorMessage != "":
t.Error("expected values file to fail parsing")
case err != nil && tt.errorMessage != "":
assert.Contains(t, err.Error(), tt.errorMessage, "Failed with unexpected error")
}
})
}
assert.Contains(t, err.Error(), "Expected: string, given: null", "Null value for password should be caught by schema")
}
func createTestingSchema(t *testing.T, dir string) string {

Loading…
Cancel
Save