github.com/hairyhenderson/templater@v3.5.0+incompatible/cmd/gomplate/main_test.go (about) 1 package main 2 3 import ( 4 "testing" 5 6 "github.com/spf13/cobra" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestValidateOpts(t *testing.T) { 11 err := validateOpts(parseFlags(), nil) 12 assert.NoError(t, err) 13 14 cmd := parseFlags("-i=foo", "-f", "bar") 15 err = validateOpts(cmd, nil) 16 assert.Error(t, err) 17 18 cmd = parseFlags("-i=foo", "-o=bar", "-o=baz") 19 err = validateOpts(cmd, nil) 20 assert.Error(t, err) 21 22 cmd = parseFlags("-i=foo", "--input-dir=baz") 23 err = validateOpts(cmd, nil) 24 assert.Error(t, err) 25 26 cmd = parseFlags("--input-dir=foo", "-f=bar") 27 err = validateOpts(cmd, nil) 28 assert.Error(t, err) 29 30 cmd = parseFlags("--output-dir=foo", "-o=bar") 31 err = validateOpts(cmd, nil) 32 assert.Error(t, err) 33 34 cmd = parseFlags("--output-dir=foo") 35 err = validateOpts(cmd, nil) 36 assert.Error(t, err) 37 38 cmd = parseFlags("--output-map", "bar") 39 err = validateOpts(cmd, nil) 40 assert.Error(t, err) 41 42 cmd = parseFlags("-o", "foo", "--output-map", "bar") 43 err = validateOpts(cmd, nil) 44 assert.Error(t, err) 45 46 cmd = parseFlags( 47 "--input-dir", "in", 48 "--output-dir", "foo", 49 "--output-map", "bar", 50 ) 51 err = validateOpts(cmd, nil) 52 assert.Error(t, err) 53 54 cmd = parseFlags( 55 "--input-dir", "in", 56 "--output-map", "bar", 57 ) 58 err = validateOpts(cmd, nil) 59 assert.NoError(t, err) 60 } 61 62 func parseFlags(flags ...string) *cobra.Command { 63 cmd := &cobra.Command{} 64 initFlags(cmd) 65 err := cmd.ParseFlags(flags) 66 if err != nil { 67 panic(err) 68 } 69 return cmd 70 }