@@ -1749,6 +1749,29 @@ func TestFlagActionFromEnv(t *testing.T) {
17491749 assert .Equal (t , x , 42 )
17501750}
17511751
1752+ func TestParseShortOptionBoolError (t * testing.T ) {
1753+ cmd := buildMinimalTestCommand ()
1754+ cmd .UseShortOptionHandling = true
1755+ cmd .Flags = []Flag {
1756+ & BoolFlag {Name : "debug" , Aliases : []string {"d" }},
1757+ & BoolFlag {Name : "verbose" , Aliases : []string {"v" }},
1758+ }
1759+
1760+ err := cmd .Run (buildTestContext (t ), []string {"run" , "-vd=notabool" })
1761+ assert .Error (t , err , "expected error parsing invalid bool" )
1762+ }
1763+
1764+ func TestParseShortOptionIntError (t * testing.T ) {
1765+ cmd := buildMinimalTestCommand ()
1766+ cmd .Flags = []Flag {
1767+ & IntFlag {Name : "port" , Aliases : []string {"p" }},
1768+ & BoolFlag {Name : "debug" , Aliases : []string {"d" }},
1769+ }
1770+
1771+ err := cmd .Run (buildTestContext (t ), []string {"run" , "-dp=notanint" })
1772+ assert .Error (t , err , "expected error parsing invalid int" )
1773+ }
1774+
17521775func TestParseMultiString (t * testing.T ) {
17531776 _ = (& Command {
17541777 Flags : []Flag {
@@ -3294,6 +3317,17 @@ func TestFileHint(t *testing.T) {
32943317 assert .Equal (t , "bar [/tmp/foo.txt]" , withFileHint ("/tmp/foo.txt" , "bar" ))
32953318}
32963319
3320+ func TestHasFlags (t * testing.T ) {
3321+ flagToCheck := & StringFlag {Name : "foo" }
3322+ flags := []Flag {
3323+ & StringFlag {Name : "bar" },
3324+ & Int64Flag {Name : "baz" },
3325+ flagToCheck ,
3326+ }
3327+
3328+ assert .True (t , hasFlag (flags , flagToCheck ))
3329+ }
3330+
32973331func TestFlagsByName (t * testing.T ) {
32983332 flags := []Flag {
32993333 & StringFlag {
0 commit comments