Skip to content

Commit d48b43d

Browse files
committed
testing: refactor to extract testOptionHelper for reuse
1 parent cde56b1 commit d48b43d

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

cli/parse_test.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,24 @@ func TestSameWords(t *testing.T) {
7777
test(f, f, true)
7878
}
7979

80+
func testOptionHelper(t *testing.T, cmd *cmds.Command, args string, expectedOpts kvs, expectedWords words, expectErr bool) {
81+
req := &cmds.Request{}
82+
err := parse(req, strings.Split(args, " "), cmd)
83+
if err == nil {
84+
err = req.FillDefaults()
85+
}
86+
if expectErr {
87+
if err == nil {
88+
t.Errorf("Command line '%v' parsing should have failed", args)
89+
}
90+
} else if err != nil {
91+
t.Errorf("Command line '%v' failed to parse: %v", args, err)
92+
} else if !sameWords(req.Arguments, expectedWords) || !sameKVs(kvs(req.Options), expectedOpts) {
93+
t.Errorf("Command line '%v':\n parsed as %v %v\n instead of %v %v",
94+
args, req.Options, req.Arguments, expectedOpts, expectedWords)
95+
}
96+
}
97+
8098
func TestOptionParsing(t *testing.T) {
8199
cmd := &cmds.Command{
82100
Options: []cmds.Option{
@@ -96,30 +114,12 @@ func TestOptionParsing(t *testing.T) {
96114
},
97115
}
98116

99-
testHelper := func(args string, expectedOpts kvs, expectedWords words, expectErr bool) {
100-
req := &cmds.Request{}
101-
err := parse(req, strings.Split(args, " "), cmd)
102-
if err == nil {
103-
err = req.FillDefaults()
104-
}
105-
if expectErr {
106-
if err == nil {
107-
t.Errorf("Command line '%v' parsing should have failed", args)
108-
}
109-
} else if err != nil {
110-
t.Errorf("Command line '%v' failed to parse: %v", args, err)
111-
} else if !sameWords(req.Arguments, expectedWords) || !sameKVs(kvs(req.Options), expectedOpts) {
112-
t.Errorf("Command line '%v':\n parsed as %v %v\n instead of %v %v",
113-
args, req.Options, req.Arguments, expectedOpts, expectedWords)
114-
}
115-
}
116-
117117
testFail := func(args string) {
118-
testHelper(args, kvs{}, words{}, true)
118+
testOptionHelper(t, cmd, args, kvs{}, words{}, true)
119119
}
120120

121121
test := func(args string, expectedOpts kvs, expectedWords words) {
122-
testHelper(args, expectedOpts, expectedWords, false)
122+
testOptionHelper(t, cmd, args, expectedOpts, expectedWords, false)
123123
}
124124

125125
test("test -", kvs{}, words{"-"})

0 commit comments

Comments
 (0)