@@ -289,198 +289,3 @@ func jsonPatch(operations ...jsonpatch.Operation) []byte {
289
289
)
290
290
return b
291
291
}
292
-
293
- func TestMergeVariableDefinitions (t * testing.T ) {
294
- t .Parallel ()
295
-
296
- type args struct {
297
- vars map [string ]apiextensionsv1.JSON
298
- globalVars map [string ]apiextensionsv1.JSON
299
- }
300
- tests := []struct {
301
- name string
302
- args args
303
- want map [string ]apiextensionsv1.JSON
304
- wantErr bool
305
- errString string
306
- }{
307
- {
308
- name : "no overlap, globalVars added" ,
309
- args : args {
310
- vars : map [string ]apiextensionsv1.JSON {
311
- "a" : {Raw : []byte (`1` )},
312
- },
313
- globalVars : map [string ]apiextensionsv1.JSON {
314
- "b" : {Raw : []byte (`2` )},
315
- },
316
- },
317
- want : map [string ]apiextensionsv1.JSON {
318
- "a" : {Raw : []byte (`1` )},
319
- "b" : {Raw : []byte (`2` )},
320
- },
321
- },
322
- {
323
- name : "globalVars value is nil, skipped" ,
324
- args : args {
325
- vars : map [string ]apiextensionsv1.JSON {
326
- "a" : {Raw : []byte (`1` )},
327
- },
328
- globalVars : map [string ]apiextensionsv1.JSON {
329
- "b" : {Raw : nil },
330
- },
331
- },
332
- want : map [string ]apiextensionsv1.JSON {
333
- "a" : {Raw : []byte (`1` )},
334
- },
335
- },
336
- {
337
- name : "existing value is nil, globalVars value used" ,
338
- args : args {
339
- vars : map [string ]apiextensionsv1.JSON {
340
- "a" : {Raw : nil },
341
- },
342
- globalVars : map [string ]apiextensionsv1.JSON {
343
- "a" : {Raw : []byte (`2` )},
344
- },
345
- },
346
- want : map [string ]apiextensionsv1.JSON {
347
- "a" : {Raw : []byte (`2` )},
348
- },
349
- },
350
- {
351
- name : "both values are scalars, globalVars ignored" ,
352
- args : args {
353
- vars : map [string ]apiextensionsv1.JSON {
354
- "a" : {Raw : []byte (`1` )},
355
- },
356
- globalVars : map [string ]apiextensionsv1.JSON {
357
- "a" : {Raw : []byte (`2` )},
358
- },
359
- },
360
- want : map [string ]apiextensionsv1.JSON {
361
- "a" : {Raw : []byte (`1` )},
362
- },
363
- },
364
- {
365
- name : "both values are objects, merged" ,
366
- args : args {
367
- vars : map [string ]apiextensionsv1.JSON {
368
- "a" : {Raw : []byte (`{"x":1,"y":2}` )},
369
- },
370
- globalVars : map [string ]apiextensionsv1.JSON {
371
- "a" : {Raw : []byte (`{"y":3,"z":4}` )},
372
- },
373
- },
374
- want : map [string ]apiextensionsv1.JSON {
375
- "a" : {Raw : []byte (`{"x":1,"y":2,"z":4}` )},
376
- },
377
- },
378
- {
379
- name : "both values are objects with nested objects, merged" ,
380
- args : args {
381
- vars : map [string ]apiextensionsv1.JSON {
382
- "a" : {Raw : []byte (`{"x":1,"y":{"a": 2,"b":{"c": 3}}}` )},
383
- },
384
- globalVars : map [string ]apiextensionsv1.JSON {
385
- "a" : {Raw : []byte (`{"y":{"a": 2,"b":{"c": 5, "d": 6}},"z":4}` )},
386
- },
387
- },
388
- want : map [string ]apiextensionsv1.JSON {
389
- "a" : {Raw : []byte (`{"x":1,"y":{"a": 2,"b":{"c": 3, "d": 6}},"z":4}` )},
390
- },
391
- },
392
- {
393
- name : "both values are objects with nested objects with vars having nil object explicitly, merged" ,
394
- args : args {
395
- vars : map [string ]apiextensionsv1.JSON {
396
- "a" : {Raw : []byte (`{"x":1,"y":{"a": 2,"b": null}}` )},
397
- },
398
- globalVars : map [string ]apiextensionsv1.JSON {
399
- "a" : {Raw : []byte (`{"y":{"a": 2,"b":{"c": 5, "d": 6}},"z":4}` )},
400
- },
401
- },
402
- want : map [string ]apiextensionsv1.JSON {
403
- "a" : {Raw : []byte (`{"x":1,"y":{"a": 2,"b":{"c": 5, "d": 6}},"z":4}` )},
404
- },
405
- },
406
- {
407
- name : "globalVars is scalar, vars is object, keep object" ,
408
- args : args {
409
- vars : map [string ]apiextensionsv1.JSON {
410
- "a" : {Raw : []byte (`{"x":1}` )},
411
- },
412
- globalVars : map [string ]apiextensionsv1.JSON {
413
- "a" : {Raw : []byte (`2` )},
414
- },
415
- },
416
- want : map [string ]apiextensionsv1.JSON {
417
- "a" : {Raw : []byte (`{"x":1}` )},
418
- },
419
- },
420
- {
421
- name : "vars is scalar, globalVars is object, keep scalar" ,
422
- args : args {
423
- vars : map [string ]apiextensionsv1.JSON {
424
- "a" : {Raw : []byte (`2` )},
425
- },
426
- globalVars : map [string ]apiextensionsv1.JSON {
427
- "a" : {Raw : []byte (`{"x":1}` )},
428
- },
429
- },
430
- want : map [string ]apiextensionsv1.JSON {
431
- "a" : {Raw : []byte (`2` )},
432
- },
433
- },
434
- {
435
- name : "invalid JSON in vars" ,
436
- args : args {
437
- vars : map [string ]apiextensionsv1.JSON {
438
- "a" : {Raw : []byte (`{invalid}` )},
439
- },
440
- globalVars : map [string ]apiextensionsv1.JSON {
441
- "a" : {Raw : []byte (`{"x":1}` )},
442
- },
443
- },
444
- wantErr : true ,
445
- errString : "failed to unmarshal existing value for key \" a\" " ,
446
- },
447
- {
448
- name : "invalid JSON in globalVars" ,
449
- args : args {
450
- vars : map [string ]apiextensionsv1.JSON {
451
- "a" : {Raw : []byte (`{"x":1}` )},
452
- },
453
- globalVars : map [string ]apiextensionsv1.JSON {
454
- "a" : {Raw : []byte (`{invalid}` )},
455
- },
456
- },
457
- wantErr : true ,
458
- errString : "failed to unmarshal global value for key \" a\" " ,
459
- },
460
- }
461
-
462
- for _ , tt := range tests {
463
- t .Run (tt .name , func (t * testing.T ) {
464
- t .Parallel ()
465
- g := gomega .NewWithT (t )
466
- got , err := mergeVariableOverridesWithGlobal (tt .args .vars , tt .args .globalVars )
467
- if tt .wantErr {
468
- g .Expect (err ).To (gomega .HaveOccurred ())
469
- g .Expect (err .Error ()).To (gomega .ContainSubstring (tt .errString ))
470
- return
471
- }
472
- g .Expect (err ).ToNot (gomega .HaveOccurred ())
473
- // Compare JSON values
474
- for k , wantVal := range tt .want {
475
- gotVal , ok := got [k ]
476
- g .Expect (ok ).To (gomega .BeTrue (), "missing key %q" , k )
477
- var wantObj , gotObj interface {}
478
- _ = json .Unmarshal (wantVal .Raw , & wantObj )
479
- _ = json .Unmarshal (gotVal .Raw , & gotObj )
480
- g .Expect (gotObj ).To (gomega .Equal (wantObj ), "key %q" , k )
481
- }
482
- // Check for unexpected keys
483
- g .Expect (len (got )).To (gomega .Equal (len (tt .want )))
484
- })
485
- }
486
- }
0 commit comments