@@ -13,6 +13,7 @@ import (
13
13
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
14
14
"k8s.io/apimachinery/pkg/runtime"
15
15
utilerrors "k8s.io/apimachinery/pkg/util/errors"
16
+ clitesting "k8s.io/client-go/testing"
16
17
utilclocktesting "k8s.io/utils/clock/testing"
17
18
18
19
operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
@@ -570,6 +571,117 @@ func TestSyncSubscriptions(t *testing.T) {
570
571
},
571
572
},
572
573
},
574
+ {
575
+ name : "NoStatus/NoCurrentCSV/EnsureInstallPlanFailed" ,
576
+ fields : fields {
577
+ clientOptions : []clientfake.Option {
578
+ clientfake .WithSelfLinks (t ),
579
+ func (c clientfake.ClientsetDecorator ) {
580
+ c .PrependReactor ("create" , "installplans" , func (a clitesting.Action ) (bool , runtime.Object , error ) {
581
+ return true , nil , errors .New ("fake install plan create error" )
582
+ })
583
+ },
584
+ },
585
+ existingOLMObjs : []runtime.Object {
586
+ & v1alpha1.Subscription {
587
+ TypeMeta : metav1.TypeMeta {
588
+ Kind : v1alpha1 .SubscriptionKind ,
589
+ APIVersion : v1alpha1 .SchemeGroupVersion .String (),
590
+ },
591
+ ObjectMeta : metav1.ObjectMeta {
592
+ Name : "sub" ,
593
+ Namespace : testNamespace ,
594
+ },
595
+ Spec : & v1alpha1.SubscriptionSpec {
596
+ CatalogSource : "src" ,
597
+ CatalogSourceNamespace : testNamespace ,
598
+ },
599
+ Status : v1alpha1.SubscriptionStatus {
600
+ CurrentCSV : "" ,
601
+ State : "" ,
602
+ },
603
+ },
604
+ },
605
+ resolveSteps : []* v1alpha1.Step {
606
+ {
607
+ Resolving : "csv.v.2" ,
608
+ Resource : v1alpha1.StepResource {
609
+ CatalogSource : "src" ,
610
+ CatalogSourceNamespace : testNamespace ,
611
+ Group : v1alpha1 .GroupName ,
612
+ Version : v1alpha1 .GroupVersion ,
613
+ Kind : v1alpha1 .ClusterServiceVersionKind ,
614
+ Name : "csv.v.2" ,
615
+ Manifest : "{}" ,
616
+ },
617
+ },
618
+ },
619
+ resolveSubs : []* v1alpha1.Subscription {
620
+ {
621
+ TypeMeta : metav1.TypeMeta {
622
+ Kind : v1alpha1 .SubscriptionKind ,
623
+ APIVersion : v1alpha1 .SchemeGroupVersion .String (),
624
+ },
625
+ ObjectMeta : metav1.ObjectMeta {
626
+ Name : "sub" ,
627
+ Namespace : testNamespace ,
628
+ },
629
+ Spec : & v1alpha1.SubscriptionSpec {
630
+ CatalogSource : "src" ,
631
+ CatalogSourceNamespace : testNamespace ,
632
+ },
633
+ },
634
+ },
635
+ },
636
+ args : args {
637
+ obj : & v1alpha1.Subscription {
638
+ TypeMeta : metav1.TypeMeta {
639
+ Kind : v1alpha1 .SubscriptionKind ,
640
+ APIVersion : v1alpha1 .SchemeGroupVersion .String (),
641
+ },
642
+ ObjectMeta : metav1.ObjectMeta {
643
+ Name : "sub" ,
644
+ Namespace : testNamespace ,
645
+ },
646
+ Spec : & v1alpha1.SubscriptionSpec {
647
+ CatalogSource : "src" ,
648
+ CatalogSourceNamespace : testNamespace ,
649
+ },
650
+ Status : v1alpha1.SubscriptionStatus {
651
+ CurrentCSV : "" ,
652
+ State : "" ,
653
+ },
654
+ },
655
+ },
656
+ wantSubscriptions : []* v1alpha1.Subscription {
657
+ {
658
+ TypeMeta : metav1.TypeMeta {
659
+ Kind : v1alpha1 .SubscriptionKind ,
660
+ APIVersion : v1alpha1 .SubscriptionCRDAPIVersion ,
661
+ },
662
+ ObjectMeta : metav1.ObjectMeta {
663
+ Name : "sub" ,
664
+ Namespace : testNamespace ,
665
+ },
666
+ Spec : & v1alpha1.SubscriptionSpec {
667
+ CatalogSource : "src" ,
668
+ CatalogSourceNamespace : testNamespace ,
669
+ },
670
+ Status : v1alpha1.SubscriptionStatus {
671
+ LastUpdated : now ,
672
+ Conditions : []v1alpha1.SubscriptionCondition {
673
+ {
674
+ Type : v1alpha1 .SubscriptionBundleUnpackFailed ,
675
+ Reason : "EnsureInstallPlanFailed" ,
676
+ Message : "error ensuring InstallPlan: fake install plan create error" ,
677
+ Status : corev1 .ConditionTrue ,
678
+ },
679
+ },
680
+ },
681
+ },
682
+ },
683
+ wantErr : errors .New ("error ensuring InstallPlan: fake install plan create error" ),
684
+ },
573
685
{
574
686
name : "NoStatus/NoCurrentCSV/BundleLookupError" ,
575
687
fields : fields {
0 commit comments