diff --git a/flag_bool_with_inverse.go b/flag_bool_with_inverse.go index 199d22c7d9..33c0927257 100644 --- a/flag_bool_with_inverse.go +++ b/flag_bool_with_inverse.go @@ -219,7 +219,7 @@ func (bif *BoolWithInverseFlag) Count() int { // GetDefaultText returns the default text for this flag func (bif *BoolWithInverseFlag) GetDefaultText() string { - if bif.Required { + if bif.DefaultText != "" { return bif.DefaultText } return boolValue{}.ToString(bif.Value) diff --git a/flag_bool_with_inverse_test.go b/flag_bool_with_inverse_test.go index 083a072e27..bb9849cae9 100644 --- a/flag_bool_with_inverse_test.go +++ b/flag_bool_with_inverse_test.go @@ -338,6 +338,12 @@ func TestBoolWithInverseNames(t *testing.T) { require.Equal(t, "bool", d.TypeName()) } +func TestBoolWithInverseDefaultText(t *testing.T) { + require.Equal(t, "false", (&BoolWithInverseFlag{}).GetDefaultText()) + require.Equal(t, "true", (&BoolWithInverseFlag{Value: true}).GetDefaultText()) + require.Equal(t, "auto", (&BoolWithInverseFlag{DefaultText: "auto"}).GetDefaultText()) +} + func TestBoolWithInverseString(t *testing.T) { tcs := []struct { testName string diff --git a/flag_test.go b/flag_test.go index e13d1b3147..7393944de7 100644 --- a/flag_test.go +++ b/flag_test.go @@ -482,6 +482,11 @@ func TestFlagStringifying(t *testing.T) { fl: &BoolWithInverseFlag{Name: "vividly"}, expected: "--vividly, --no-vividly\t(default: false)", }, + { + name: "bool-inv-flag-with-default-text", + fl: &BoolWithInverseFlag{Name: "vividly", DefaultText: "auto"}, + expected: "--vividly, --no-vividly\t(default: auto)", + }, { name: "duration-flag", fl: &DurationFlag{Name: "scream-for"},