@@ -21,8 +21,12 @@ var _ = Describe("Command", func() {
21
21
fs , err := types .NewGinkgoFlagSet (
22
22
types.GinkgoFlags {
23
23
{Name : "contrabulaturally" , KeyPath : "C" , Usage : "with irridiacy" },
24
+ {Name : "fillabluster" , KeyPath : "F" , Usage : "with grace" },
24
25
},
25
- & (struct { C int }{C : 17 }),
26
+ & (struct {
27
+ C int
28
+ F int
29
+ }{C : 17 , F : 12 }),
26
30
types.GinkgoFlagSections {},
27
31
)
28
32
Ω (err ).ShouldNot (HaveOccurred ())
@@ -41,7 +45,7 @@ var _ = Describe("Command", func() {
41
45
Context ("when flags fails to parse" , func () {
42
46
It ("aborts with usage" , func () {
43
47
Ω (func () {
44
- c .Run ([]string {"-not-a-flag=oops" }, []string {"additional" , "args" })
48
+ c .Run ([]string {"-not-a-flag=oops" }, []string {"additional" , "- args" })
45
49
}).Should (PanicWith (SatisfyAll (
46
50
HaveField ("ExitCode" , 1 ),
47
51
HaveField ("Error" , HaveOccurred ()),
@@ -54,14 +58,29 @@ var _ = Describe("Command", func() {
54
58
55
59
Context ("when flags parse" , func () {
56
60
It ("runs the command" , func () {
57
- c .Run ([]string {"-contrabulaturally=16" , "and-an-arg" , "and-another" }, []string {"additional" , "args" })
61
+ c .Run ([]string {"-contrabulaturally=16" , "and-an-arg" , "and-another" }, []string {"additional" , "- args" })
58
62
Ω (rt ).Should (HaveRun ("enflabulate" ))
59
63
60
64
Ω (rt .DataFor ("enflabulate" )["Args" ]).Should (Equal ([]string {"and-an-arg" , "and-another" }))
61
- Ω (rt .DataFor ("enflabulate" )["AdditionalArgs" ]).Should (Equal ([]string {"additional" , "args" }))
65
+ Ω (rt .DataFor ("enflabulate" )["AdditionalArgs" ]).Should (Equal ([]string {"additional" , "- args" }))
62
66
63
67
})
64
68
})
69
+
70
+ Context ("when flags appear after named arguments" , func () {
71
+ It ("fails" , func () {
72
+ Ω (func () {
73
+ c .Run ([]string {"-contrabulaturally=16" , "an-arg" , "another-arg" , "-fillabuster=10" }, []string {"additional" , "-args" })
74
+ }).Should (PanicWith (SatisfyAll (
75
+ HaveField ("ExitCode" , 1 ),
76
+ HaveField ("Error" , HaveOccurred ()),
77
+ HaveField ("EmitUsage" , BeFalse ()),
78
+ )))
79
+
80
+ Ω (rt ).Should (HaveTrackedNothing ())
81
+ })
82
+ })
83
+
65
84
})
66
85
67
86
Describe ("Usage" , func () {
@@ -85,6 +104,8 @@ var _ = Describe("Command", func() {
85
104
"" ,
86
105
" --contrabulaturally{{/}} [int] {{gray}}{{/}}" ,
87
106
" {{light-gray}}with irridiacy{{/}}" ,
107
+ " --fillabluster{{/}} [int] {{gray}}{{/}}" ,
108
+ " {{light-gray}}with grace{{/}}" ,
88
109
"" , "" ,
89
110
}, "\n " )
90
111
0 commit comments