@@ -294,6 +294,21 @@ func TestSameStreams(t *testing.T) {
294294 },
295295 }
296296
297+ stream3 := zalandov1.EventStream {
298+ EventStreamFlow : zalandov1.EventStreamFlow {},
299+ EventStreamRecovery : zalandov1.EventStreamRecovery {
300+ Type : constants .EventStreamRecoveryNoneType ,
301+ },
302+ EventStreamSink : zalandov1.EventStreamSink {
303+ EventType : "stream-type-b" ,
304+ },
305+ EventStreamSource : zalandov1.EventStreamSource {
306+ EventStreamTable : zalandov1.EventStreamTable {
307+ Name : "bar" ,
308+ },
309+ },
310+ }
311+
297312 tests := []struct {
298313 subTest string
299314 streamsA []zalandov1.EventStream
@@ -336,6 +351,13 @@ func TestSameStreams(t *testing.T) {
336351 match : false ,
337352 reason : "number of defined streams is different" ,
338353 },
354+ {
355+ subTest : "event stream recovery specs differ" ,
356+ streamsA : []zalandov1.EventStream {stream2 },
357+ streamsB : []zalandov1.EventStream {stream3 },
358+ match : false ,
359+ reason : "event stream specs differ" ,
360+ },
339361 }
340362
341363 for _ , tt := range tests {
@@ -409,6 +431,28 @@ func TestUpdateFabricEventStream(t *testing.T) {
409431
410432 result := cluster .generateFabricEventStream (appId )
411433 if match , _ := sameStreams (streams .Items [0 ].Spec .EventStreams , result .Spec .EventStreams ); ! match {
412- t .Errorf ("Malformed FabricEventStream, expected %#v, got %#v" , streams .Items [0 ], result )
434+ t .Errorf ("Malformed FabricEventStream after updating manifest, expected %#v, got %#v" , streams .Items [0 ], result )
435+ }
436+
437+ // disable recovery
438+ for _ , stream := range pg .Spec .Streams {
439+ if stream .ApplicationId == appId {
440+ stream .EnableRecovery = util .False ()
441+ }
442+ }
443+ patchData , err = specPatch (pg .Spec )
444+ assert .NoError (t , err )
445+
446+ pgPatched , err = cluster .KubeClient .Postgresqls (namespace ).Patch (
447+ context .TODO (), cluster .Name , types .MergePatchType , patchData , metav1.PatchOptions {}, "spec" )
448+ assert .NoError (t , err )
449+
450+ cluster .Postgresql .Spec = pgPatched .Spec
451+ err = cluster .createOrUpdateStreams ()
452+ assert .NoError (t , err )
453+
454+ result = cluster .generateFabricEventStream (appId )
455+ if match , _ := sameStreams (streams .Items [0 ].Spec .EventStreams , result .Spec .EventStreams ); ! match {
456+ t .Errorf ("Malformed FabricEventStream after disabling event recovery, expected %#v, got %#v" , streams .Items [0 ], result )
413457 }
414458}
0 commit comments