Skip to content

Commit 457cbbe

Browse files
committed
add more test cases
1 parent e053fda commit 457cbbe

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

command_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -840,12 +840,14 @@ func TestCommand_OptionsWithSharedValue(t *testing.T) {
840840
{
841841
Name: "url",
842842
Flag: "url",
843+
Env: "URL",
843844
Default: def,
844845
Value: serpent.StringOf(&got),
845846
},
846847
{
847848
Name: "alt-url",
848849
Flag: "alt-url",
850+
Env: "ALT_URL",
849851
Default: altDef,
850852
Value: serpent.StringOf(&got),
851853
},
@@ -873,6 +875,30 @@ func TestCommand_OptionsWithSharedValue(t *testing.T) {
873875
require.NoError(t, err)
874876
require.Equal(t, "hup", got)
875877

878+
// Both flags are given, last wins.
879+
err = makeCmd("def.com", "").Invoke("--url", "sup", "--alt-url", "hup").Run()
880+
require.NoError(t, err)
881+
require.Equal(t, "hup", got)
882+
883+
// Both flags are given, last wins #2.
884+
err = makeCmd("", "def.com").Invoke("--alt-url", "hup", "--url", "sup").Run()
885+
require.NoError(t, err)
886+
require.Equal(t, "sup", got)
887+
888+
// Both flags are given, option type priority wins.
889+
inv := makeCmd("def.com", "").Invoke("--alt-url", "hup")
890+
inv.Environ.Set("URL", "sup")
891+
err = inv.Run()
892+
require.NoError(t, err)
893+
require.Equal(t, "hup", got)
894+
895+
// Both flags are given, option type priority wins #2.
896+
inv = makeCmd("", "def.com").Invoke("--url", "sup")
897+
inv.Environ.Set("ALT_URL", "hup")
898+
err = inv.Run()
899+
require.NoError(t, err)
900+
require.Equal(t, "sup", got)
901+
876902
// Catch invalid configuration.
877903
err = makeCmd("def.com", "alt-def.com").Invoke().Run()
878904
require.Error(t, err, "default values are different")

0 commit comments

Comments
 (0)