MCPcopy
hub / github.com/urfave/cli / TestStringFlagTerminator

Function TestStringFlagTerminator

command_test.go:5093–5174  ·  view source on GitHub ↗

TestStringFlagTerminator tests the string flag "--flag" with "--" terminator.

(t *testing.T)

Source from the content-addressed store, hash-verified

5091
5092// TestStringFlagTerminator tests the string flag "--flag" with "--" terminator.
5093func TestStringFlagTerminator(t *testing.T) {
5094 tests := []struct {
5095 name string
5096 input []string
5097 expectFlag string
5098 expectArgs []string
5099 expectErr bool
5100 errorContain string
5101 }{
5102 {
5103 name: "flag and args after terminator",
5104 input: []string{"test", "--flag", "x", "--", "test", "a1", "a2", "a3"},
5105 expectFlag: "x",
5106 expectArgs: []string{"test", "a1", "a2", "a3"},
5107 },
5108 /* {
5109 name: "missing flag value due to terminator",
5110 input: []string{"test", "--flag", "--", "x"},
5111 expectErr: true,
5112 errorContain: "flag needs an argument",
5113 },*/
5114 {
5115 name: "terminator with no trailing args",
5116 input: []string{"test", "--flag", "x", "--"},
5117 expectFlag: "x",
5118 expectArgs: []string{},
5119 },
5120 {
5121 name: "no terminator, only flag",
5122 input: []string{"test", "--flag", "x"},
5123 expectFlag: "x",
5124 expectArgs: []string{},
5125 },
5126 {
5127 name: "flag defined after --",
5128 input: []string{"test", "--", "x", "--flag=value"},
5129 expectFlag: "",
5130 expectArgs: []string{"x", "--flag=value"},
5131 },
5132 {
5133 name: "flag and without --",
5134 input: []string{"test", "--flag", "value", "x"},
5135 expectFlag: "value",
5136 expectArgs: []string{"x"},
5137 },
5138 }
5139
5140 for _, tc := range tests {
5141 t.Run(tc.name, func(t *testing.T) {
5142 var flagVal string
5143 var argsVal []string
5144
5145 // build minimal command with a StringFlag "flag"
5146 cmd := &Command{
5147 Name: "test",
5148 Flags: []Flag{
5149 &StringFlag{
5150 Name: "flag",

Callers

nothing calls this directly

Calls 4

RunMethod · 0.95
ArgsMethod · 0.80
SliceMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected