@@ -3,7 +3,9 @@ package gcli
3
3
import (
4
4
"context"
5
5
"errors"
6
+ "fmt"
6
7
"io"
8
+ "strings"
7
9
"testing"
8
10
9
11
"github.com/stretchr/testify/assert"
@@ -15,6 +17,7 @@ import (
15
17
type cfg2 struct {
16
18
StringValue1 string
17
19
StringValue2 string `flag:"string-value-two s"`
20
+ StringValue3 string `flag:",required"`
18
21
19
22
CounterValue1 sflags.Counter
20
23
@@ -36,6 +39,7 @@ func TestParseV3(t *testing.T) {
36
39
cfg : & cfg2 {
37
40
StringValue1 : "string_value1_value" ,
38
41
StringValue2 : "string_value2_value" ,
42
+ StringValue3 : "string_value3_value" ,
39
43
40
44
CounterValue1 : 1 ,
41
45
@@ -44,6 +48,7 @@ func TestParseV3(t *testing.T) {
44
48
expCfg : & cfg2 {
45
49
StringValue1 : "string_value1_value2" ,
46
50
StringValue2 : "string_value2_value2" ,
51
+ StringValue3 : "string_value3_value2" ,
47
52
48
53
CounterValue1 : 3 ,
49
54
@@ -53,6 +58,7 @@ func TestParseV3(t *testing.T) {
53
58
args : []string {
54
59
"--string-value1" , "string_value1_value2" ,
55
60
"--string-value-two" , "string_value2_value2" ,
61
+ "--string-value3" , "string_value3_value2" ,
56
62
"--counter-value1" , "--counter-value1" ,
57
63
"--string-slice-value1" , "one2" ,
58
64
"--string-slice-value1" , "two2" ,
@@ -69,7 +75,8 @@ func TestParseV3(t *testing.T) {
69
75
StringValue1 : "string_value1_value" ,
70
76
StringValue2 : "" ,
71
77
},
72
- args : []string {},
78
+ args : []string {},
79
+ expErr2 : fmt .Errorf ("required flag \" string-value3\" not set" ),
73
80
},
74
81
{
75
82
name : "Test cfg2 short option" ,
@@ -78,8 +85,10 @@ func TestParseV3(t *testing.T) {
78
85
},
79
86
expCfg : & cfg2 {
80
87
StringValue2 : "string_value2_value2" ,
88
+ StringValue3 : "string_value3_value2" ,
81
89
},
82
90
args : []string {
91
+ "--string-value3" , "string_value3_value2" ,
83
92
"-s=string_value2_value2" ,
84
93
},
85
94
},
@@ -89,12 +98,14 @@ func TestParseV3(t *testing.T) {
89
98
expCfg : & cfg2 {
90
99
StringValue1 : "string_value1_value2" ,
91
100
StringValue2 : "string_value2_value2" ,
101
+ StringValue3 : "string_value3_value2" ,
92
102
93
103
CounterValue1 : 3 ,
94
104
},
95
105
args : []string {
96
106
"--string-value1" , "string_value1_value2" ,
97
107
"--string-value-two" , "string_value2_value2" ,
108
+ "--string-value3" , "string_value3_value2" ,
98
109
"--counter-value1=2" , "--counter-value1" ,
99
110
},
100
111
},
@@ -143,7 +154,7 @@ func TestParseV3(t *testing.T) {
143
154
err = cmd .Run (context .Background (), args )
144
155
if test .expErr2 != nil {
145
156
require .Error (t , err )
146
- require .Equal (t , test .expErr2 , err )
157
+ require .Equal (t , test .expErr2 . Error (), strings . ToLower ( err . Error ()) )
147
158
} else {
148
159
require .NoError (t , err )
149
160
}
0 commit comments