@@ -294,6 +294,21 @@ func TestSameStreams(t *testing.T) {
294
294
},
295
295
}
296
296
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
+
297
312
tests := []struct {
298
313
subTest string
299
314
streamsA []zalandov1.EventStream
@@ -336,6 +351,13 @@ func TestSameStreams(t *testing.T) {
336
351
match : false ,
337
352
reason : "number of defined streams is different" ,
338
353
},
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
+ },
339
361
}
340
362
341
363
for _ , tt := range tests {
@@ -409,6 +431,28 @@ func TestUpdateFabricEventStream(t *testing.T) {
409
431
410
432
result := cluster .generateFabricEventStream (appId )
411
433
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 )
413
457
}
414
458
}
0 commit comments