summaryrefslogtreecommitdiff
path: root/parse_test.go
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2020-03-01 16:47:25 -0600
committerGitHub <[email protected]>2020-03-01 16:47:25 -0600
commit6f3675fdf12421b56abafbc514ba723e6e4d696d (patch)
tree26f39c0737964ac3e480627a2b04d9550de37c4a /parse_test.go
parentce4cd0ce03f9d0ca40a3090a63997bfaf6757aaa (diff)
parent17bbf2e7ef446f0ca0c06259676987ec6e79462a (diff)
Merge pull request #109 from alexflint/ignore-env
Option 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
}