From cc7e906d8847d935cffacac702f8e9d98156d604 Mon Sep 17 00:00:00 2001 From: Benoit Masson Date: Mon, 17 Apr 2017 18:33:30 +0200 Subject: [PATCH] Updated TestBindPFlagsStringSlice() to highlight a failure When pflag marked as changed, the value is not detected (and lower priority value used) --- viper_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/viper_test.go b/viper_test.go index f7262a7..d5c637d 100644 --- a/viper_test.go +++ b/viper_test.go @@ -613,6 +613,8 @@ func TestBindPFlags(t *testing.T) { } func TestBindPFlagsStringSlice(t *testing.T) { + defaultVal := []string{"default"} + for _, testValue := range []struct { Expected []string Value string @@ -624,6 +626,8 @@ func TestBindPFlagsStringSlice(t *testing.T) { for _, changed := range []bool{true, false} { v := New() // create independent Viper object + v.SetDefault("stringslice", defaultVal) + flagSet := pflag.NewFlagSet("test", pflag.ContinueOnError) flagSet.StringSlice("stringslice", testValue.Expected, "test") flagSet.Visit(func(f *pflag.Flag) { @@ -645,7 +649,11 @@ func TestBindPFlagsStringSlice(t *testing.T) { if err := v.Unmarshal(val); err != nil { t.Fatalf("%+#v cannot unmarshal: %s", testValue.Value, err) } - assert.Equal(t, testValue.Expected, val.StringSlice) + if changed { + assert.Equal(t, testValue.Expected, val.StringSlice) + } else { + assert.Equal(t, defaultVal, val.StringSlice) + } } } }