diff options
Diffstat (limited to 'parse_test.go')
| -rw-r--r-- | parse_test.go | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/parse_test.go b/parse_test.go index 9aad2e3..00b0875 100644 --- a/parse_test.go +++ b/parse_test.go @@ -371,7 +371,7 @@ func TestNonsenseKey(t *testing.T) { assert.Error(t, err) } -func TestMissingValue(t *testing.T) { +func TestMissingValueAtEnd(t *testing.T) { var args struct { Foo string } @@ -379,6 +379,24 @@ func TestMissingValue(t *testing.T) { assert.Error(t, err) } +func TestMissingValueInMIddle(t *testing.T) { + var args struct { + Foo string + Bar string + } + err := parse("--foo --bar=abc", &args) + assert.Error(t, err) +} + +func TestNegativeValue(t *testing.T) { + var args struct { + Foo int + } + err := parse("--foo -123", &args) + require.NoError(t, err) + assert.Equal(t, -123, args.Foo) +} + func TestInvalidInt(t *testing.T) { var args struct { Foo int @@ -462,11 +480,10 @@ func TestPanicOnNonPointer(t *testing.T) { }) } -func TestPanicOnNonStruct(t *testing.T) { +func TestErrorOnNonStruct(t *testing.T) { var args string - assert.Panics(t, func() { - _ = parse("", &args) - }) + err := parse("", &args) + assert.Error(t, err) } func TestUnsupportedType(t *testing.T) { @@ -540,6 +557,15 @@ func TestEnvironmentVariable(t *testing.T) { assert.Equal(t, "bar", args.Foo) } +func TestEnvironmentVariableNotPresent(t *testing.T) { + var args struct { + NotPresent string `arg:"env"` + } + os.Args = []string{"example"} + MustParse(&args) + assert.Equal(t, "", args.NotPresent) +} + func TestEnvironmentVariableOverrideName(t *testing.T) { var args struct { Foo string `arg:"env:BAZ"` @@ -584,7 +610,7 @@ func TestEnvironmentVariableSliceArgumentString(t *testing.T) { var args struct { Foo []string `arg:"env"` } - setenv(t, "FOO", "bar,\"baz, qux\"") + setenv(t, "FOO", `bar,"baz, qux"`) MustParse(&args) assert.Equal(t, []string{"bar", "baz, qux"}, args.Foo) } @@ -985,3 +1011,10 @@ func TestReuseParser(t *testing.T) { err = p.Parse([]string{}) assert.Error(t, err) } + +func TestVersion(t *testing.T) { + var args struct{} + err := parse("--version", &args) + assert.Equal(t, ErrVersion, err) + +} |
