From 7c75d26427c1ad3fb0fad0a437ffffa178c69939 Mon Sep 17 00:00:00 2001 From: Paul Annesley Date: Wed, 25 Oct 2017 21:17:18 +1100 Subject: [PATCH] Template parameters can have blank Default. --- main.go | 6 ++---- main_test.go | 9 +++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index 66a90ab..f2cee9c 100644 --- a/main.go +++ b/main.go @@ -30,9 +30,7 @@ type ParameterItem struct { } type ParsedParameterSpec struct { - Type string `yaml:"Type"` - Description string `yaml:"Description"` - Default string `yaml:"Default"` + Default *string `yaml:"Default",omitempty` } type ParsedTemplate struct { @@ -109,7 +107,7 @@ func getJsonForInput(input *Input) ([]byte, error) { specs := make(map[string]ParameterSpec) for name, parsed := range t.Parameters { - specs[name] = ParameterSpec{Name: name, HasDefault: parsed.Default != ""} + specs[name] = ParameterSpec{Name: name, HasDefault: parsed.Default != nil} } if err := validateParameters(input.Parameters, specs); err != nil { diff --git a/main_test.go b/main_test.go index a2ec6b0..a856d5f 100644 --- a/main_test.go +++ b/main_test.go @@ -109,6 +109,15 @@ func TestDeployScenario(t *testing.T) { } } +func TestBlankDefault(t *testing.T) { + input := &Input{ + TemplateBody: []byte("Parameters:\n Foo:\n Default: \"\"\n"), + AcceptDefaults: true, + } + actual := mustGetParameterItems(t, input) + assert.Equal(t, 0, len(actual)) +} + func mustGetParameterItems(t *testing.T, input *Input) []ParameterItem { j, err := getJsonForInput(input) require.NoError(t, err)