From 457cbbe7b3052749799be99e32efef54df8f43b1 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 13 Nov 2024 13:18:29 +0200 Subject: [PATCH] add more test cases --- command_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/command_test.go b/command_test.go index d6734ff..638e4ac 100644 --- a/command_test.go +++ b/command_test.go @@ -840,12 +840,14 @@ func TestCommand_OptionsWithSharedValue(t *testing.T) { { Name: "url", Flag: "url", + Env: "URL", Default: def, Value: serpent.StringOf(&got), }, { Name: "alt-url", Flag: "alt-url", + Env: "ALT_URL", Default: altDef, Value: serpent.StringOf(&got), }, @@ -873,6 +875,30 @@ func TestCommand_OptionsWithSharedValue(t *testing.T) { require.NoError(t, err) require.Equal(t, "hup", got) + // Both flags are given, last wins. + err = makeCmd("def.com", "").Invoke("--url", "sup", "--alt-url", "hup").Run() + require.NoError(t, err) + require.Equal(t, "hup", got) + + // Both flags are given, last wins #2. + err = makeCmd("", "def.com").Invoke("--alt-url", "hup", "--url", "sup").Run() + require.NoError(t, err) + require.Equal(t, "sup", got) + + // Both flags are given, option type priority wins. + inv := makeCmd("def.com", "").Invoke("--alt-url", "hup") + inv.Environ.Set("URL", "sup") + err = inv.Run() + require.NoError(t, err) + require.Equal(t, "hup", got) + + // Both flags are given, option type priority wins #2. + inv = makeCmd("", "def.com").Invoke("--url", "sup") + inv.Environ.Set("ALT_URL", "hup") + err = inv.Run() + require.NoError(t, err) + require.Equal(t, "sup", got) + // Catch invalid configuration. err = makeCmd("def.com", "alt-def.com").Invoke().Run() require.Error(t, err, "default values are different")