summaryrefslogtreecommitdiff
path: root/parse_test.go
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2020-03-01 16:32:59 -0600
committerAlex Flint <[email protected]>2020-03-01 16:32:59 -0600
commit17bbf2e7ef446f0ca0c06259676987ec6e79462a (patch)
tree26f39c0737964ac3e480627a2b04d9550de37c4a /parse_test.go
parentce4cd0ce03f9d0ca40a3090a63997bfaf6757aaa (diff)
add Config.IgnoreEnv to ignore environment variables
Diffstat (limited to 'parse_test.go')
-rw-r--r--parse_test.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/parse_test.go b/parse_test.go
index 5cae598..ad668a9 100644
--- a/parse_test.go
+++ b/parse_test.go
@@ -676,6 +676,36 @@ func TestEnvironmentVariableSliceArgumentWrongType(t *testing.T) {
assert.Error(t, err)
}
+func TestEnvironmentVariableIgnored(t *testing.T) {
+ var args struct {
+ Foo string `arg:"env"`
+ }
+ setenv(t, "FOO", "abc")
+
+ p, err := NewParser(Config{IgnoreEnv: true}, &args)
+ require.NoError(t, err)
+
+ err = p.Parse(nil)
+ assert.NoError(t, err)
+ assert.Equal(t, "", args.Foo)
+}
+
+func TestEnvironmentVariableInSubcommandIgnored(t *testing.T) {
+ var args struct {
+ Sub *struct {
+ Foo string `arg:"env"`
+ } `arg:"subcommand"`
+ }
+ setenv(t, "FOO", "abc")
+
+ p, err := NewParser(Config{IgnoreEnv: true}, &args)
+ require.NoError(t, err)
+
+ err = p.Parse([]string{"sub"})
+ assert.NoError(t, err)
+ assert.Equal(t, "", args.Sub.Foo)
+}
+
type textUnmarshaler struct {
val int
}