github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/args/flags_test.go (about) 1 package args_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/taubyte/tau-cli/cli/args" 8 "github.com/urfave/cli/v2" 9 ) 10 11 func TestFlags(t *testing.T) { 12 testBoolFlag := &cli.BoolFlag{ 13 Name: "global", 14 Aliases: []string{"g"}, 15 } 16 expectedBoolOptions := []string{"-global", "--global", "-g", "--g"} 17 18 testStringFlag := &cli.StringFlag{ 19 Name: "color", 20 Aliases: []string{"c"}, 21 } 22 expectedStringOptions := []string{"-color", "--color", "-c", "--c"} 23 24 parsed := args.ParseFlag(testBoolFlag) 25 26 if fmt.Sprintf("%v", parsed.Options) != fmt.Sprintf("%v", expectedBoolOptions) { 27 t.Errorf("Expected %v, got %v", expectedBoolOptions, parsed.Options) 28 } 29 30 if parsed.IsBoolFlag != true { 31 t.Errorf("Expected %v, got %v", true, parsed.IsBoolFlag) 32 } 33 34 parsed = args.ParseFlag(testStringFlag) 35 if fmt.Sprintf("%v", parsed.Options) != fmt.Sprintf("%v", expectedStringOptions) { 36 t.Errorf("Expected %v, got %v", expectedStringOptions, parsed.Options) 37 } 38 39 if parsed.IsBoolFlag != false { 40 t.Errorf("Expected %v, got %v", false, parsed.IsBoolFlag) 41 } 42 43 testFlags := []cli.Flag{testBoolFlag, testStringFlag} 44 parsedFlags := args.ParseFlags(testFlags) 45 if len(parsedFlags) != len(testFlags) { 46 t.Errorf("Expected %d flags, got %d", len(testFlags), len(parsedFlags)) 47 } 48 49 var foundBoolFlag bool 50 var foundStringFlag bool 51 for _, flag := range parsedFlags { 52 if flag.IsBoolFlag { 53 foundBoolFlag = true 54 if fmt.Sprintf("%v", flag.Options) != fmt.Sprintf("%v", expectedBoolOptions) { 55 t.Errorf("Expected %v, got %v", expectedBoolOptions, flag.Options) 56 } 57 } else { 58 foundStringFlag = true 59 if fmt.Sprintf("%v", flag.Options) != fmt.Sprintf("%v", expectedStringOptions) { 60 t.Errorf("Expected %v, got %v", expectedStringOptions, flag.Options) 61 } 62 } 63 } 64 65 if !foundBoolFlag { 66 t.Errorf("Expected to find a bool flag") 67 } 68 69 if !foundStringFlag { 70 t.Errorf("Expected to find a string flag") 71 } 72 }