@@ -27,7 +27,7 @@ import (
2727)
2828
2929var _ = Describe ("Predicates" , Ordered , func () {
30- When ("testing ReleasePipelineRunSucceededPredicate predicate" , func () {
30+ When ("testing ReleasePipelineRunLifecyclePredicate predicate" , func () {
3131 var err error
3232 var pipelineRun * v1.PipelineRun
3333
@@ -40,21 +40,46 @@ var _ = Describe("Predicates", Ordered, func() {
4040 contextEvent := event.CreateEvent {
4141 Object : pipelineRun ,
4242 }
43- Expect (ReleasePipelineRunSucceededPredicate ().Create (contextEvent )).To (BeFalse ())
43+ Expect (ReleasePipelineRunLifecyclePredicate ().Create (contextEvent )).To (BeFalse ())
4444 })
4545
46- It ("should ignore deleting events" , func () {
46+ It ("should ignore deleting events for non-release PipelineRuns " , func () {
4747 contextEvent := event.DeleteEvent {
4848 Object : pipelineRun ,
4949 }
50- Expect (ReleasePipelineRunSucceededPredicate ().Delete (contextEvent )).To (BeFalse ())
50+ Expect (ReleasePipelineRunLifecyclePredicate ().Delete (contextEvent )).To (BeFalse ())
51+ })
52+
53+ It ("should ignore deleting events for release PipelineRuns without our finalizer" , func () {
54+ releasePipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
55+ WithLabels (map [string ]string {metadata .PipelinesTypeLabel : metadata .ManagedPipelineType .String ()}).
56+ Build ()
57+ Expect (err ).NotTo (HaveOccurred ())
58+
59+ contextEvent := event.DeleteEvent {
60+ Object : releasePipelineRun ,
61+ }
62+ Expect (ReleasePipelineRunLifecyclePredicate ().Delete (contextEvent )).To (BeFalse ())
63+ })
64+
65+ It ("should reconcile deleting events for release PipelineRuns with our finalizer" , func () {
66+ releasePipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
67+ WithLabels (map [string ]string {metadata .PipelinesTypeLabel : metadata .ManagedPipelineType .String ()}).
68+ WithFinalizer (metadata .ReleaseFinalizer ).
69+ Build ()
70+ Expect (err ).NotTo (HaveOccurred ())
71+
72+ contextEvent := event.DeleteEvent {
73+ Object : releasePipelineRun ,
74+ }
75+ Expect (ReleasePipelineRunLifecyclePredicate ().Delete (contextEvent )).To (BeTrue ())
5176 })
5277
5378 It ("should ignore generic events" , func () {
5479 contextEvent := event.GenericEvent {
5580 Object : pipelineRun ,
5681 }
57- Expect (ReleasePipelineRunSucceededPredicate ().Generic (contextEvent )).To (BeFalse ())
82+ Expect (ReleasePipelineRunLifecyclePredicate ().Generic (contextEvent )).To (BeFalse ())
5883 })
5984
6085 It ("should return true when an updated event is received for a succeeded managed PipelineRun" , func () {
@@ -68,10 +93,93 @@ var _ = Describe("Predicates", Ordered, func() {
6893 ObjectNew : releasePipelineRun ,
6994 }
7095 releasePipelineRun .Status .MarkRunning ("Predicate function tests" , "Set it to Unknown" )
71- Expect (ReleasePipelineRunSucceededPredicate ().Update (contextEvent )).To (BeFalse ())
96+ Expect (ReleasePipelineRunLifecyclePredicate ().Update (contextEvent )).To (BeFalse ())
7297
7398 releasePipelineRun .Status .MarkSucceeded ("Predicate function tests" , "Set it to Succeeded" )
74- Expect (ReleasePipelineRunSucceededPredicate ().Update (contextEvent )).To (BeTrue ())
99+ Expect (ReleasePipelineRunLifecyclePredicate ().Update (contextEvent )).To (BeTrue ())
100+ })
101+
102+ It ("should trigger when finalizers change on a release PipelineRun" , func () {
103+ oldPipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
104+ WithLabels (map [string ]string {metadata .PipelinesTypeLabel : metadata .ManagedPipelineType .String ()}).
105+ Build ()
106+ Expect (err ).NotTo (HaveOccurred ())
107+
108+ newPipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
109+ WithLabels (map [string ]string {metadata .PipelinesTypeLabel : metadata .ManagedPipelineType .String ()}).
110+ WithFinalizer (metadata .ReleaseFinalizer ).
111+ Build ()
112+ Expect (err ).NotTo (HaveOccurred ())
113+
114+ contextEvent := event.UpdateEvent {
115+ ObjectOld : oldPipelineRun ,
116+ ObjectNew : newPipelineRun ,
117+ }
118+
119+ Expect (ReleasePipelineRunLifecyclePredicate ().Update (contextEvent )).To (BeTrue ())
120+ })
121+
122+ It ("should trigger when finalizers are removed from a release PipelineRun" , func () {
123+ oldPipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
124+ WithLabels (map [string ]string {metadata .PipelinesTypeLabel : metadata .ManagedPipelineType .String ()}).
125+ WithFinalizer (metadata .ReleaseFinalizer ).
126+ WithFinalizer ("tekton.dev/finalizer" ).
127+ Build ()
128+ Expect (err ).NotTo (HaveOccurred ())
129+
130+ newPipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
131+ WithLabels (map [string ]string {metadata .PipelinesTypeLabel : metadata .ManagedPipelineType .String ()}).
132+ WithFinalizer ("tekton.dev/finalizer" ).
133+ Build ()
134+ Expect (err ).NotTo (HaveOccurred ())
135+
136+ contextEvent := event.UpdateEvent {
137+ ObjectOld : oldPipelineRun ,
138+ ObjectNew : newPipelineRun ,
139+ }
140+
141+ Expect (ReleasePipelineRunLifecyclePredicate ().Update (contextEvent )).To (BeTrue ())
142+ })
143+
144+ It ("should not trigger when finalizers are unchanged" , func () {
145+ oldPipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
146+ WithLabels (map [string ]string {metadata .PipelinesTypeLabel : metadata .ManagedPipelineType .String ()}).
147+ WithFinalizer (metadata .ReleaseFinalizer ).
148+ Build ()
149+ Expect (err ).NotTo (HaveOccurred ())
150+
151+ newPipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
152+ WithLabels (map [string ]string {metadata .PipelinesTypeLabel : metadata .ManagedPipelineType .String ()}).
153+ WithFinalizer (metadata .ReleaseFinalizer ).
154+ Build ()
155+ Expect (err ).NotTo (HaveOccurred ())
156+
157+ newPipelineRun .Status .MarkRunning ("Test" , "Running" )
158+
159+ contextEvent := event.UpdateEvent {
160+ ObjectOld : oldPipelineRun ,
161+ ObjectNew : newPipelineRun ,
162+ }
163+
164+ Expect (ReleasePipelineRunLifecyclePredicate ().Update (contextEvent )).To (BeFalse ())
165+ })
166+
167+ It ("should not trigger when finalizers change on non-release PipelineRuns" , func () {
168+ oldPipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
169+ Build ()
170+ Expect (err ).NotTo (HaveOccurred ())
171+
172+ newPipelineRun , err := utils .NewPipelineRunBuilder ("pipeline-run" , "default" ).
173+ WithFinalizer ("some.other/finalizer" ).
174+ Build ()
175+ Expect (err ).NotTo (HaveOccurred ())
176+
177+ contextEvent := event.UpdateEvent {
178+ ObjectOld : oldPipelineRun ,
179+ ObjectNew : newPipelineRun ,
180+ }
181+
182+ Expect (ReleasePipelineRunLifecyclePredicate ().Update (contextEvent )).To (BeFalse ())
75183 })
76184 })
77185})
0 commit comments