diff options
| author | Alex Flint <[email protected]> | 2020-01-24 14:47:36 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-01-24 14:47:36 -0800 |
| commit | e9c71eb4fa701960bd054d4034d155717aef8373 (patch) | |
| tree | f8f784af05d2c822e1092fc6d423318c5743bac9 /parse_test.go | |
| parent | 7e2466d70798086a87f82713cfba49dae0af494f (diff) | |
| parent | cb4e079d13af069a75c6549216c6902a7569f57f (diff) | |
Merge pull request #107 from alexflint/fix-issue-100v1.3.0
fix issue with duplicate fields in embedded structs
Diffstat (limited to 'parse_test.go')
| -rw-r--r-- | parse_test.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/parse_test.go b/parse_test.go index f75d1a7..5cae598 100644 --- a/parse_test.go +++ b/parse_test.go @@ -910,6 +910,44 @@ func TestEmbeddedPtrIgnored(t *testing.T) { assert.Equal(t, 321, args.Y) } +func TestEmbeddedWithDuplicateField(t *testing.T) { + // see https://github.com/alexflint/go-arg/issues/100 + type T struct { + A string `arg:"--cat"` + } + type U struct { + A string `arg:"--dog"` + } + var args struct { + T + U + } + + err := parse("--cat=cat --dog=dog", &args) + require.NoError(t, err) + assert.Equal(t, "cat", args.T.A) + assert.Equal(t, "dog", args.U.A) +} + +func TestEmbeddedWithDuplicateField2(t *testing.T) { + // see https://github.com/alexflint/go-arg/issues/100 + type T struct { + A string + } + type U struct { + A string + } + var args struct { + T + U + } + + err := parse("--a=xyz", &args) + require.NoError(t, err) + assert.Equal(t, "xyz", args.T.A) + assert.Equal(t, "", args.U.A) +} + func TestEmptyArgs(t *testing.T) { origArgs := os.Args |
