@@ -197,6 +197,157 @@ profile:
197
197
}
198
198
}
199
199
200
+ func TestBoolPointer (t * testing.T ) {
201
+ boolPointer := func (value bool ) * bool {
202
+ output := & value
203
+ return output
204
+ }
205
+
206
+ fixtures := []struct {
207
+ testTemplate
208
+ continueOnError * bool
209
+ }{
210
+ {
211
+ testTemplate : testTemplate {
212
+ format : FormatTOML ,
213
+ config : `
214
+ version = 2
215
+ [groups]
216
+ [groups.groupname]
217
+ profiles = []
218
+ ` ,
219
+ },
220
+ continueOnError : nil ,
221
+ },
222
+ {
223
+ testTemplate : testTemplate {
224
+ format : FormatYAML ,
225
+ config : `
226
+ version: 2
227
+ groups:
228
+ groupname:
229
+ profiles: []
230
+ ` ,
231
+ },
232
+ continueOnError : nil ,
233
+ },
234
+ {
235
+ testTemplate : testTemplate {
236
+ format : FormatJSON ,
237
+ config : `
238
+ {
239
+ "version": 2,
240
+ "groups": {
241
+ "groupname":{
242
+ "profiles": []
243
+ }
244
+ }
245
+ }
246
+ ` ,
247
+ },
248
+ continueOnError : nil ,
249
+ },
250
+ {
251
+ testTemplate : testTemplate {
252
+ format : FormatTOML ,
253
+ config : `
254
+ version = 2
255
+ [groups]
256
+ [groups.groupname]
257
+ profiles = []
258
+ continue-on-error = true
259
+ ` ,
260
+ },
261
+ continueOnError : boolPointer (true ),
262
+ },
263
+ {
264
+ testTemplate : testTemplate {
265
+ format : FormatYAML ,
266
+ config : `
267
+ version: 2
268
+ groups:
269
+ groupname:
270
+ profiles: []
271
+ continue-on-error: true
272
+ ` ,
273
+ },
274
+ continueOnError : boolPointer (true ),
275
+ },
276
+ {
277
+ testTemplate : testTemplate {
278
+ format : FormatJSON ,
279
+ config : `
280
+ {
281
+ "version": 2,
282
+ "groups": {
283
+ "groupname":{
284
+ "profiles": [],
285
+ "continue-on-error": true
286
+ }
287
+ }
288
+ }
289
+ ` ,
290
+ },
291
+ continueOnError : boolPointer (true ),
292
+ },
293
+ {
294
+ testTemplate : testTemplate {
295
+ format : FormatTOML ,
296
+ config : `
297
+ version = 2
298
+ [groups]
299
+ [groups.groupname]
300
+ profiles = []
301
+ continue-on-error = false
302
+ ` ,
303
+ },
304
+ continueOnError : boolPointer (false ),
305
+ },
306
+ {
307
+ testTemplate : testTemplate {
308
+ format : FormatYAML ,
309
+ config : `
310
+ version: 2
311
+ groups:
312
+ groupname:
313
+ profiles: []
314
+ continue-on-error: false
315
+ ` ,
316
+ },
317
+ continueOnError : boolPointer (false ),
318
+ },
319
+ {
320
+ testTemplate : testTemplate {
321
+ format : FormatJSON ,
322
+ config : `
323
+ {
324
+ "version": 2,
325
+ "groups": {
326
+ "groupname":{
327
+ "profiles": [],
328
+ "continue-on-error": false
329
+ }
330
+ }
331
+ }
332
+ ` ,
333
+ },
334
+ continueOnError : boolPointer (false ),
335
+ },
336
+ }
337
+
338
+ for _ , fixture := range fixtures {
339
+ t .Run (fixture .format , func (t * testing.T ) {
340
+ c , err := Load (bytes .NewBufferString (fixture .config ), fixture .format )
341
+ require .NoError (t , err )
342
+
343
+ group , err := c .GetProfileGroup ("groupname" )
344
+ require .NoError (t , err )
345
+
346
+ assert .Equal (t , fixture .continueOnError , group .ContinueOnError )
347
+ })
348
+ }
349
+ }
350
+
200
351
func TestGetIncludes (t * testing.T ) {
201
352
config , err := Load (bytes .NewBufferString (`includes=["i1", "i2"]` ), "toml" )
202
353
require .NoError (t , err )
0 commit comments