@@ -389,7 +389,7 @@ func TestAppConfigManager_SetConfigValues(t *testing.T) {
389
389
wantErr : false ,
390
390
},
391
391
{
392
- name : "disabled group keeps original values " ,
392
+ name : "disabled group with enabled items - items should be filtered out " ,
393
393
config : kotsv1beta1.Config {
394
394
Spec : kotsv1beta1.ConfigSpec {
395
395
Groups : []kotsv1beta1.ConfigGroup {
@@ -436,7 +436,46 @@ func TestAppConfigManager_SetConfigValues(t *testing.T) {
436
436
wantErr : false ,
437
437
},
438
438
{
439
- name : "disabled item keeps original value" ,
439
+ name : "disabled group with disabled items - items should be filtered out" ,
440
+ config : kotsv1beta1.Config {
441
+ Spec : kotsv1beta1.ConfigSpec {
442
+ Groups : []kotsv1beta1.ConfigGroup {
443
+ {
444
+ Name : "disabled-group" ,
445
+ Title : "Disabled Group" ,
446
+ When : "false" ,
447
+ Items : []kotsv1beta1.ConfigItem {
448
+ {
449
+ Name : "disabled-item-in-disabled-group" ,
450
+ Title : "Disabled Item in Disabled Group" ,
451
+ Type : "text" ,
452
+ Value : multitype.BoolOrString {StrVal : "original-value" },
453
+ When : "false" ,
454
+ },
455
+ {
456
+ Name : "enabled-item-in-disabled-group" ,
457
+ Title : "Enabled Item in Disabled Group" ,
458
+ Type : "text" ,
459
+ Value : multitype.BoolOrString {StrVal : "original-enabled-value" },
460
+ When : "true" ,
461
+ },
462
+ },
463
+ },
464
+ },
465
+ },
466
+ },
467
+ configValues : map [string ]string {
468
+ "disabled-item-in-disabled-group" : "new-disabled-value" ,
469
+ "enabled-item-in-disabled-group" : "new-enabled-value" ,
470
+ },
471
+ setupMock : func (mockStore * config.MockStore ) {
472
+ expectedValues := map [string ]string {}
473
+ mockStore .On ("SetConfigValues" , expectedValues ).Return (nil )
474
+ },
475
+ wantErr : false ,
476
+ },
477
+ {
478
+ name : "enabled group with disabled item - disabled item should be filtered out" ,
440
479
config : kotsv1beta1.Config {
441
480
Spec : kotsv1beta1.ConfigSpec {
442
481
Groups : []kotsv1beta1.ConfigGroup {
@@ -485,7 +524,7 @@ func TestAppConfigManager_SetConfigValues(t *testing.T) {
485
524
wantErr : false ,
486
525
},
487
526
{
488
- name : "mixed enabled and disabled items" ,
527
+ name : "mixed enabled and disabled items in enabled group " ,
489
528
config : kotsv1beta1.Config {
490
529
Spec : kotsv1beta1.ConfigSpec {
491
530
Groups : []kotsv1beta1.ConfigGroup {
@@ -544,6 +583,78 @@ func TestAppConfigManager_SetConfigValues(t *testing.T) {
544
583
},
545
584
wantErr : false ,
546
585
},
586
+ {
587
+ name : "multiple groups with mixed enabled/disabled states" ,
588
+ config : kotsv1beta1.Config {
589
+ Spec : kotsv1beta1.ConfigSpec {
590
+ Groups : []kotsv1beta1.ConfigGroup {
591
+ {
592
+ Name : "enabled-group-1" ,
593
+ Title : "Enabled Group 1" ,
594
+ When : "true" ,
595
+ Items : []kotsv1beta1.ConfigItem {
596
+ {
597
+ Name : "enabled-item-1" ,
598
+ Title : "Enabled Item 1" ,
599
+ Type : "text" ,
600
+ Value : multitype.BoolOrString {StrVal : "original-1" },
601
+ When : "true" ,
602
+ },
603
+ {
604
+ Name : "disabled-item-1" ,
605
+ Title : "Disabled Item 1" ,
606
+ Type : "text" ,
607
+ Value : multitype.BoolOrString {StrVal : "original-disabled-1" },
608
+ When : "false" ,
609
+ },
610
+ },
611
+ },
612
+ {
613
+ Name : "disabled-group" ,
614
+ Title : "Disabled Group" ,
615
+ When : "false" ,
616
+ Items : []kotsv1beta1.ConfigItem {
617
+ {
618
+ Name : "item-in-disabled-group" ,
619
+ Title : "Item in Disabled Group" ,
620
+ Type : "text" ,
621
+ Value : multitype.BoolOrString {StrVal : "original-disabled-group" },
622
+ When : "true" ,
623
+ },
624
+ },
625
+ },
626
+ {
627
+ Name : "enabled-group-2" ,
628
+ Title : "Enabled Group 2" ,
629
+ When : "true" ,
630
+ Items : []kotsv1beta1.ConfigItem {
631
+ {
632
+ Name : "enabled-item-2" ,
633
+ Title : "Enabled Item 2" ,
634
+ Type : "text" ,
635
+ Value : multitype.BoolOrString {StrVal : "original-2" },
636
+ When : "true" ,
637
+ },
638
+ },
639
+ },
640
+ },
641
+ },
642
+ },
643
+ configValues : map [string ]string {
644
+ "enabled-item-1" : "new-value-1" ,
645
+ "disabled-item-1" : "new-disabled-value-1" ,
646
+ "item-in-disabled-group" : "new-disabled-group-value" ,
647
+ "enabled-item-2" : "new-value-2" ,
648
+ },
649
+ setupMock : func (mockStore * config.MockStore ) {
650
+ expectedValues := map [string ]string {
651
+ "enabled-item-1" : "new-value-1" ,
652
+ "enabled-item-2" : "new-value-2" ,
653
+ }
654
+ mockStore .On ("SetConfigValues" , expectedValues ).Return (nil )
655
+ },
656
+ wantErr : false ,
657
+ },
547
658
{
548
659
name : "empty config values" ,
549
660
config : kotsv1beta1.Config {
@@ -727,6 +838,84 @@ func TestAppConfigManager_SetConfigValues(t *testing.T) {
727
838
},
728
839
wantErr : false ,
729
840
},
841
+ {
842
+ name : "empty config with no groups" ,
843
+ config : kotsv1beta1.Config {
844
+ Spec : kotsv1beta1.ConfigSpec {
845
+ Groups : []kotsv1beta1.ConfigGroup {},
846
+ },
847
+ },
848
+ configValues : map [string ]string {
849
+ "some-item" : "some-value" ,
850
+ },
851
+ setupMock : func (mockStore * config.MockStore ) {
852
+ expectedValues := map [string ]string {}
853
+ mockStore .On ("SetConfigValues" , expectedValues ).Return (nil )
854
+ },
855
+ wantErr : false ,
856
+ },
857
+ {
858
+ name : "enabled group with empty items" ,
859
+ config : kotsv1beta1.Config {
860
+ Spec : kotsv1beta1.ConfigSpec {
861
+ Groups : []kotsv1beta1.ConfigGroup {
862
+ {
863
+ Name : "empty-group" ,
864
+ Title : "Empty Group" ,
865
+ When : "true" ,
866
+ Items : []kotsv1beta1.ConfigItem {},
867
+ },
868
+ },
869
+ },
870
+ },
871
+ configValues : map [string ]string {
872
+ "some-item" : "some-value" ,
873
+ },
874
+ setupMock : func (mockStore * config.MockStore ) {
875
+ expectedValues := map [string ]string {}
876
+ mockStore .On ("SetConfigValues" , expectedValues ).Return (nil )
877
+ },
878
+ wantErr : false ,
879
+ },
880
+ {
881
+ name : "enabled group with all disabled items" ,
882
+ config : kotsv1beta1.Config {
883
+ Spec : kotsv1beta1.ConfigSpec {
884
+ Groups : []kotsv1beta1.ConfigGroup {
885
+ {
886
+ Name : "all-disabled-items-group" ,
887
+ Title : "All Disabled Items Group" ,
888
+ When : "true" ,
889
+ Items : []kotsv1beta1.ConfigItem {
890
+ {
891
+ Name : "disabled-item-1" ,
892
+ Title : "Disabled Item 1" ,
893
+ Type : "text" ,
894
+ Value : multitype.BoolOrString {StrVal : "original-1" },
895
+ When : "false" ,
896
+ },
897
+ {
898
+ Name : "disabled-item-2" ,
899
+ Title : "Disabled Item 2" ,
900
+ Type : "text" ,
901
+ Value : multitype.BoolOrString {StrVal : "original-2" },
902
+ When : "false" ,
903
+ },
904
+ },
905
+ },
906
+ },
907
+ },
908
+ },
909
+ configValues : map [string ]string {
910
+ "disabled-item-1" : "new-value-1" ,
911
+ "disabled-item-2" : "new-value-2" ,
912
+ },
913
+ setupMock : func (mockStore * config.MockStore ) {
914
+ expectedValues := map [string ]string {}
915
+ mockStore .On ("SetConfigValues" , expectedValues ).Return (nil )
916
+ },
917
+ wantErr : false ,
918
+ },
730
919
}
731
920
732
921
for _ , tt := range tests {
0 commit comments