From 64229c9fe78f0cfabce5c3713508ca9bb23b1a09 Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Sun, 3 Nov 2024 14:00:32 +1100 Subject: [PATCH] fix: format enum value Fixed in #415 --- context.go | 2 +- kong_test.go | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/context.go b/context.go index 2ed5d28..f174e63 100644 --- a/context.go +++ b/context.go @@ -996,7 +996,7 @@ func checkEnum(value *Value, target reflect.Value) error { } enums = append(enums, fmt.Sprintf("%q", enum)) } - return fmt.Errorf("%s must be one of %s but got %q", value.ShortSummary(), strings.Join(enums, ","), target.Interface()) + return fmt.Errorf("%s must be one of %s but got %q", value.ShortSummary(), strings.Join(enums, ","), fmt.Sprintf("%v", target.Interface())) } } diff --git a/kong_test.go b/kong_test.go index 4785dd0..9547dd4 100644 --- a/kong_test.go +++ b/kong_test.go @@ -2291,3 +2291,13 @@ func TestEnumPtrOmittedNoDefault(t *testing.T) { assert.NotZero(t, ctx) assert.Zero(t, cli.X) } + +func TestIntEnum(t *testing.T) { + var cli struct { + Enum int `enum:"1,2,3" default:"1"` + } + k, err := kong.New(&cli) + assert.NoError(t, err) + _, err = k.Parse([]string{"--enum=123"}) + assert.EqualError(t, err, `--enum must be one of "1","2","3" but got "123"`) +}