@@ -621,6 +621,85 @@ func TestRunFunction(t *testing.T) {
621
621
},
622
622
},
623
623
},
624
+ "SequenceRegexObservedAreSkipped" : {
625
+ reason : "The function should not attempt to remove resources from the desired state when they are already in the observed state" ,
626
+ args : args {
627
+ req : & fnv1beta1.RunFunctionRequest {
628
+ Input : resource .MustStructObject (& v1beta1.Input {
629
+ Rules : []v1beta1.SequencingRule {
630
+ {
631
+ Sequence : []resource.Name {
632
+ "first-.*" ,
633
+ "second-.*" ,
634
+ },
635
+ },
636
+ },
637
+ }),
638
+ Observed : & fnv1beta1.State {
639
+ Composite : & fnv1beta1.Resource {
640
+ Resource : resource .MustStructJSON (xr ),
641
+ },
642
+ Resources : map [string ]* fnv1beta1.Resource {
643
+ "first-1" : {
644
+ Resource : resource .MustStructJSON (mr ),
645
+ Ready : fnv1beta1 .Ready_READY_TRUE ,
646
+ },
647
+ "second-1" : {
648
+ Resource : resource .MustStructJSON (mr ),
649
+ Ready : fnv1beta1 .Ready_READY_TRUE ,
650
+ },
651
+ },
652
+ },
653
+ Desired : & fnv1beta1.State {
654
+ Composite : & fnv1beta1.Resource {
655
+ Resource : resource .MustStructJSON (xr ),
656
+ },
657
+ Resources : map [string ]* fnv1beta1.Resource {
658
+ "first-1" : {
659
+ Resource : resource .MustStructJSON (mr ),
660
+ Ready : fnv1beta1 .Ready_READY_TRUE ,
661
+ },
662
+ "first-2" : {
663
+ Resource : resource .MustStructJSON (mr ),
664
+ },
665
+ "second-1" : {
666
+ Resource : resource .MustStructJSON (mr ),
667
+ Ready : fnv1beta1 .Ready_READY_TRUE ,
668
+ },
669
+ },
670
+ },
671
+ },
672
+ },
673
+ want : want {
674
+ rsp : & fnv1beta1.RunFunctionResponse {
675
+ Meta : & fnv1beta1.ResponseMeta {Ttl : durationpb .New (response .DefaultTTL )},
676
+ Results : []* fnv1beta1.Result {
677
+ {
678
+ Severity : fnv1beta1 .Severity_SEVERITY_NORMAL ,
679
+ Message : "Delaying creation of resource(s) matching \" second-.*\" because \" first-.*\" is not fully ready (1 of 2)" ,
680
+ },
681
+ },
682
+ Desired : & fnv1beta1.State {
683
+ Composite : & fnv1beta1.Resource {
684
+ Resource : resource .MustStructJSON (xr ),
685
+ },
686
+ Resources : map [string ]* fnv1beta1.Resource {
687
+ "first-1" : {
688
+ Resource : resource .MustStructJSON (mr ),
689
+ Ready : fnv1beta1 .Ready_READY_TRUE ,
690
+ },
691
+ "first-2" : {
692
+ Resource : resource .MustStructJSON (mr ),
693
+ },
694
+ "second-1" : {
695
+ Resource : resource .MustStructJSON (mr ),
696
+ Ready : fnv1beta1 .Ready_READY_TRUE ,
697
+ },
698
+ },
699
+ },
700
+ },
701
+ },
702
+ },
624
703
"SequenceRegexFirstGroupReady" : {
625
704
reason : "The function should delay the creation of second and fourth resources because the first and third are not ready" ,
626
705
args : args {
0 commit comments