diff options
| author | Alex Flint <[email protected]> | 2021-04-20 19:09:47 -0700 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2021-04-20 19:09:47 -0700 |
| commit | 2e81334206442a1853cdc5a3f626e8ee0b113494 (patch) | |
| tree | 5a1dae1764072858946018577df22b1ad622db4a /parse_test.go | |
| parent | 9d937ba6c92804fb0880d4f7ce1fd0cbfd239afe (diff) | |
fix case where an environment variable containing an empty string is parsed into a slice or map
Diffstat (limited to 'parse_test.go')
| -rw-r--r-- | parse_test.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/parse_test.go b/parse_test.go index 09fb508..695b1d8 100644 --- a/parse_test.go +++ b/parse_test.go @@ -721,6 +721,15 @@ func TestEnvironmentVariableSliceArgumentString(t *testing.T) { assert.Equal(t, []string{"bar", "baz, qux"}, args.Foo) } +func TestEnvironmentVariableSliceEmpty(t *testing.T) { + var args struct { + Foo []string `arg:"env"` + } + _, err := parseWithEnv("", []string{`FOO=`}, &args) + require.NoError(t, err) + assert.Len(t, args.Foo, 0) +} + func TestEnvironmentVariableSliceArgumentInteger(t *testing.T) { var args struct { Foo []int `arg:"env"` @@ -775,6 +784,15 @@ func TestEnvironmentVariableMap(t *testing.T) { assert.Equal(t, "ninetynine", args.Foo[99]) } +func TestEnvironmentVariableEmptyMap(t *testing.T) { + var args struct { + Foo map[int]string `arg:"env"` + } + _, err := parseWithEnv("", []string{`FOO=`}, &args) + require.NoError(t, err) + assert.Len(t, args.Foo, 0) +} + func TestEnvironmentVariableIgnored(t *testing.T) { var args struct { Foo string `arg:"env"` |
