@@ -108,6 +108,48 @@ func TestUsageFrom(t *testing.T) {
108108 assert .Error (t , v (& cobra.Command {}, []string {"first" , "second" , "third" }))
109109 },
110110 },
111+ {
112+ "unlimited arguments, mixed" ,
113+ "#\n # usage: blah foo [bar] ...\n #\n " ,
114+ func (t * testing.T , name string , actual string ) {
115+ assert .Equal (t , "blah foo [bar] ..." , actual )
116+ },
117+ func (t * testing.T , v cobra.PositionalArgs ) {
118+ assert .Error (t , v (& cobra.Command {}, []string {}))
119+ assert .NoError (t , v (& cobra.Command {}, []string {"first" }))
120+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" }))
121+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" , "third" }))
122+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" , "third" , "fourth" }))
123+ },
124+ },
125+ {
126+ "unlimited arguments, required" ,
127+ "#\n # usage: blah foo bar ...\n #\n " ,
128+ func (t * testing.T , name string , actual string ) {
129+ assert .Equal (t , "blah foo bar ..." , actual )
130+ },
131+ func (t * testing.T , v cobra.PositionalArgs ) {
132+ assert .Error (t , v (& cobra.Command {}, []string {}))
133+ assert .Error (t , v (& cobra.Command {}, []string {"first" }))
134+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" }))
135+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" , "third" }))
136+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" , "third" , "fourth" }))
137+ },
138+ },
139+ {
140+ "unlimited arguments, optional" ,
141+ "#\n # usage: blah [bar] ...\n #\n " ,
142+ func (t * testing.T , name string , actual string ) {
143+ assert .Equal (t , "blah [bar] ..." , actual )
144+ },
145+ func (t * testing.T , v cobra.PositionalArgs ) {
146+ assert .NoError (t , v (& cobra.Command {}, []string {}))
147+ assert .NoError (t , v (& cobra.Command {}, []string {"first" }))
148+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" }))
149+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" , "third" }))
150+ assert .NoError (t , v (& cobra.Command {}, []string {"first" , "second" , "third" , "fourth" }))
151+ },
152+ },
111153 {
112154 "missing" ,
113155 "#\n #\n #\n " ,
0 commit comments