@@ -121,78 +121,109 @@ describe("Testing cliargs library methods/functions", function()
121
121
assert .are .equal (cli .required [1 ].desc , desc )
122
122
end )
123
123
124
- it (" tests add_opt() with short-key" , function ()
125
- -- takes: key, descr, default
126
- local key , desc , default = " -i" , " thedescription" , " default"
127
- cli :add_opt (key , desc , default )
128
- assert .are .equal (cli .optional [1 ].key , " i" )
129
- -- assert.are.equal(cli.optional[1].expanded_key, "")
130
- assert .are .equal (cli .optional [1 ].desc , desc )
131
- assert .are .equal (cli .optional [1 ].flag , true )
132
- assert .are .equal (cli .optional [1 ].default , false ) -- no value = flag type option, hence false
133
- end )
134
-
135
- it (" tests add_opt() with short-key & value" , function ()
136
- -- takes: key, descr, default
137
- local key , desc , default = " -i VALUE" , " thedescription" , " default"
138
- cli :add_opt (key , desc , default )
139
- assert .are .equal (cli .optional [1 ].key , " i" )
140
- -- assert.are.equal(cli.optional[1].expanded_key, "")
141
- assert .are .equal (cli .optional [1 ].desc , desc )
142
- assert .are .equal (cli .optional [1 ].flag , false )
143
- assert .are .equal (cli .optional [1 ].default , default )
144
- end )
145
-
146
- it (" tests add_opt() with short + expanded-key" , function ()
147
- -- takes: key, descr, default
148
- local key , desc , default = " -i, --insert" , " thedescription" , " default"
149
- cli :add_opt (key , desc , default )
150
- assert .are .equal (cli .optional [1 ].key , " i" )
151
- assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
152
- assert .are .equal (cli .optional [1 ].desc , desc )
153
- assert .are .equal (cli .optional [1 ].flag , true )
154
- assert .are .equal (cli .optional [1 ].default , false ) -- no value = flag type option, hence false
155
- end )
156
-
157
- it (" tests add_opt() with short + expanded-key & value" , function ()
158
- -- takes: key, descr, default
159
- local key , desc , default = " -i, --insert=VALUE" , " thedescription" , " default"
160
- cli :add_opt (key , desc , default )
161
- assert .are .equal (cli .optional [1 ].key , " i" )
162
- assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
163
- assert .are .equal (cli .optional [1 ].desc , desc )
164
- assert .are .equal (cli .optional [1 ].flag , false )
165
- assert .are .equal (cli .optional [1 ].default , default )
166
- end )
167
-
168
- it (" tests add_opt() with only expanded-key" , function ()
169
- -- takes: key, descr, default
170
- local key , desc , default = " --insert" , " thedescription" , " default"
171
- cli :add_opt (key , desc , default )
172
- -- assert.are.equal(cli.optional[1].key, "")
173
- assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
174
- assert .are .equal (cli .optional [1 ].desc , desc )
175
- assert .are .equal (cli .optional [1 ].flag , true )
176
- assert .are .equal (cli .optional [1 ].default , false ) -- no value = flag type option, hence false
177
- end )
178
-
179
- it (" tests add_opt() with only expanded-key & value" , function ()
180
- -- takes: key, descr, default
181
- local key , desc , default = " --insert=VALUE" , " thedescription" , " default"
182
- cli :add_opt (key , desc , default )
183
- -- assert.are.equal(cli.optional[1].key, "")
184
- assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
185
- assert .are .equal (cli .optional [1 ].desc , desc )
186
- assert .are .equal (cli .optional [1 ].flag , false )
187
- assert .are .equal (cli .optional [1 ].default , default )
188
- end )
124
+ describe (" #add_opt()" , function ()
125
+ describe (" given a value indicator" , function ()
126
+ it (" should work with only a short-key" , function ()
127
+ -- takes: key, descr, default
128
+ local key , desc , default = " -i VALUE" , " thedescription" , " default"
129
+ cli :add_opt (key , desc , default )
130
+ assert .are .equal (cli .optional [1 ].key , " i" )
131
+ -- assert.are.equal(cli.optional[1].expanded_key, "")
132
+ assert .are .equal (cli .optional [1 ].desc , desc )
133
+ assert .are .equal (cli .optional [1 ].flag , false )
134
+ assert .are .equal (cli .optional [1 ].default , default )
135
+ end )
136
+
137
+ it (" should work with a short-key that is longer than 1 character" , function ()
138
+ local key , desc , default = " -Xassembler OPTIONS" , " Pass <arg> on to the assembler" , " "
139
+
140
+ cli :add_opt (key , desc , default )
141
+
142
+ assert .are .equal (cli .optional [1 ].key , " Xassembler" )
143
+ assert .are .equal (cli .optional [1 ].desc , desc )
144
+ assert .are .equal (cli .optional [1 ].flag , false )
145
+ assert .are .equal (cli .optional [1 ].default , default )
146
+ end )
147
+
148
+ it (" should work with only expanded-key" , function ()
149
+ -- takes: key, descr, default
150
+ local key , desc , default = " --insert=VALUE" , " thedescription" , " default"
151
+ cli :add_opt (key , desc , default )
152
+ -- assert.are.equal(cli.optional[1].key, "")
153
+ assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
154
+ assert .are .equal (cli .optional [1 ].desc , desc )
155
+ assert .are .equal (cli .optional [1 ].flag , false )
156
+ assert .are .equal (cli .optional [1 ].default , default )
157
+ end )
158
+
159
+ it (" should work with combined short + expanded-key" , function ()
160
+ -- takes: key, descr, default
161
+ local key , desc , default = " -i, --insert=VALUE" , " thedescription" , " default"
162
+ cli :add_opt (key , desc , default )
163
+ assert .are .equal (cli .optional [1 ].key , " i" )
164
+ assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
165
+ assert .are .equal (cli .optional [1 ].desc , desc )
166
+ assert .are .equal (cli .optional [1 ].flag , false )
167
+ assert .are .equal (cli .optional [1 ].default , default )
168
+ end )
169
+
170
+ it (" should work with combined short + expanded-key, no comma between them" , function ()
171
+ -- takes: key, descr, default
172
+ local key , desc , default = " -i --insert=VALUE" , " thedescription" , " default"
173
+ cli :add_opt (key , desc , default )
174
+ assert .are .equal (cli .optional [1 ].key , " i" )
175
+ assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
176
+ end )
177
+ end )
189
178
190
- it (" tests add_opt() with short and expanded-key, no comma between them" , function ()
191
- -- takes: key, descr, default
192
- local key , desc , default = " -i --insert=VALUE" , " thedescription" , " default"
193
- cli :add_opt (key , desc , default )
194
- assert .are .equal (cli .optional [1 ].key , " i" )
195
- assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
179
+ describe (" given no value indicator (implicit flags)" , function ()
180
+ it (" should work with a short-key" , function ()
181
+ -- takes: key, descr, default
182
+ local key , desc , default = " -i" , " thedescription" , " default"
183
+ cli :add_opt (key , desc , default )
184
+ assert .are .equal (cli .optional [1 ].key , " i" )
185
+ -- assert.are.equal(cli.optional[1].expanded_key, "")
186
+ assert .are .equal (cli .optional [1 ].desc , desc )
187
+ assert .are .equal (cli .optional [1 ].flag , true )
188
+ assert .are .equal (cli .optional [1 ].default , false ) -- no value = flag type option, hence false
189
+ end )
190
+
191
+ it (" should work with a short-key that is longer than 1 character" , function ()
192
+ pending (" https://github.com/amireh/lua_cliargs/issues/36" )
193
+
194
+ -- takes: key, descr, default
195
+ local key , desc , default = " -Wno-unsigned" , " thedescription"
196
+ cli :add_opt (key , desc , default )
197
+ dump (cli .optional [1 ])
198
+ assert .are .equal (cli .optional [1 ].key , " Wno-unsigned" )
199
+ -- assert.are.equal(cli.optional[1].expanded_key, "")
200
+ assert .are .equal (cli .optional [1 ].desc , desc )
201
+ assert .are .equal (cli .optional [1 ].flag , true )
202
+ assert .are .equal (cli .optional [1 ].default , false ) -- no value = flag type option, hence false
203
+ end )
204
+
205
+ it (" should work with only expanded-key" , function ()
206
+ -- takes: key, descr, default
207
+ local key , desc , default = " --insert" , " thedescription" , " default"
208
+ cli :add_opt (key , desc , default )
209
+ -- assert.are.equal(cli.optional[1].key, "")
210
+ assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
211
+ assert .are .equal (cli .optional [1 ].desc , desc )
212
+ assert .are .equal (cli .optional [1 ].flag , true )
213
+ assert .are .equal (cli .optional [1 ].default , false ) -- no value = flag type option, hence false
214
+ end )
215
+
216
+ it (" should work with combined short + expanded-key" , function ()
217
+ -- takes: key, descr, default
218
+ local key , desc , default = " -i, --insert" , " thedescription" , " default"
219
+ cli :add_opt (key , desc , default )
220
+ assert .are .equal (cli .optional [1 ].key , " i" )
221
+ assert .are .equal (cli .optional [1 ].expanded_key , " insert" )
222
+ assert .are .equal (cli .optional [1 ].desc , desc )
223
+ assert .are .equal (cli .optional [1 ].flag , true )
224
+ assert .are .equal (cli .optional [1 ].default , false ) -- no value = flag type option, hence false
225
+ end )
226
+ end )
196
227
end )
197
228
198
229
it (" tests add_flag() for setting default value" , function ()
0 commit comments