@@ -428,8 +428,10 @@ func TestSilenceSet(t *testing.T) {
428
428
StartsAt : start1 .Add (2 * time .Minute ),
429
429
EndsAt : start1 .Add (5 * time .Minute ),
430
430
}
431
+ versionBeforeOp := s .Version ()
431
432
require .NoError (t , s .Set (sil1 ))
432
433
require .NotEqual (t , "" , sil1 .Id )
434
+ require .NotEqual (t , versionBeforeOp , s .Version ())
433
435
434
436
want := state {
435
437
sil1 .Id : & pb.MeshSilence {
@@ -453,8 +455,10 @@ func TestSilenceSet(t *testing.T) {
453
455
Matchers : []* pb.Matcher {{Name : "a" , Pattern : "b" }},
454
456
EndsAt : start2 .Add (1 * time .Minute ),
455
457
}
458
+ versionBeforeOp = s .Version ()
456
459
require .NoError (t , s .Set (sil2 ))
457
460
require .NotEqual (t , "" , sil2 .Id )
461
+ require .NotEqual (t , versionBeforeOp , s .Version ())
458
462
459
463
want = state {
460
464
sil1 .Id : want [sil1 .Id ],
@@ -474,22 +478,27 @@ func TestSilenceSet(t *testing.T) {
474
478
// Should be able to update silence without modifications. It is expected to
475
479
// keep the same ID.
476
480
sil3 := cloneSilence (sil2 )
481
+ versionBeforeOp = s .Version ()
477
482
require .NoError (t , s .Set (sil3 ))
478
483
require .Equal (t , sil2 .Id , sil3 .Id )
484
+ require .Equal (t , versionBeforeOp , s .Version ())
479
485
480
486
// Should be able to update silence with comment. It is also expected to
481
487
// keep the same ID.
482
488
sil4 := cloneSilence (sil3 )
483
489
sil4 .Comment = "c"
490
+ versionBeforeOp = s .Version ()
484
491
require .NoError (t , s .Set (sil4 ))
485
492
require .Equal (t , sil3 .Id , sil4 .Id )
493
+ require .Equal (t , versionBeforeOp , s .Version ())
486
494
487
495
// Extend sil4 to expire at a later time. This should not expire the
488
496
// existing silence, and so should also keep the same ID.
489
497
clock .Add (time .Minute )
490
498
start5 := s .nowUTC ()
491
499
sil5 := cloneSilence (sil4 )
492
500
sil5 .EndsAt = start5 .Add (100 * time .Minute )
501
+ versionBeforeOp = s .Version ()
493
502
require .NoError (t , s .Set (sil5 ))
494
503
require .Equal (t , sil4 .Id , sil5 .Id )
495
504
want = state {
@@ -507,6 +516,7 @@ func TestSilenceSet(t *testing.T) {
507
516
},
508
517
}
509
518
require .Equal (t , want , s .st , "unexpected state after silence creation" )
519
+ require .Equal (t , versionBeforeOp , s .Version ())
510
520
511
521
// Replace the silence sil5 with another silence with different matchers.
512
522
// Unlike previous updates, changing the matchers for an existing silence
@@ -518,6 +528,7 @@ func TestSilenceSet(t *testing.T) {
518
528
519
529
sil6 := cloneSilence (sil5 )
520
530
sil6 .Matchers = []* pb.Matcher {{Name : "a" , Pattern : "c" }}
531
+ versionBeforeOp = s .Version ()
521
532
require .NoError (t , s .Set (sil6 ))
522
533
require .NotEqual (t , sil5 .Id , sil6 .Id )
523
534
want = state {
@@ -546,6 +557,7 @@ func TestSilenceSet(t *testing.T) {
546
557
},
547
558
}
548
559
require .Equal (t , want , s .st , "unexpected state after silence creation" )
560
+ require .NotEqual (t , versionBeforeOp , s .Version ())
549
561
550
562
// Re-create the silence that we just replaced. Changing the start time,
551
563
// just like changing the matchers, creates a new silence with a different
@@ -555,6 +567,7 @@ func TestSilenceSet(t *testing.T) {
555
567
sil7 := cloneSilence (sil5 )
556
568
sil7 .StartsAt = start1
557
569
sil7 .EndsAt = start1 .Add (5 * time .Minute )
570
+ versionBeforeOp = s .Version ()
558
571
require .NoError (t , s .Set (sil7 ))
559
572
require .NotEqual (t , sil2 .Id , sil7 .Id )
560
573
want = state {
@@ -574,19 +587,22 @@ func TestSilenceSet(t *testing.T) {
574
587
},
575
588
}
576
589
require .Equal (t , want , s .st , "unexpected state after silence creation" )
590
+ require .NotEqual (t , versionBeforeOp , s .Version ())
577
591
578
592
// Updating an existing silence with an invalid silence should not expire
579
593
// the original silence.
580
594
clock .Add (time .Millisecond )
581
595
sil8 := cloneSilence (sil7 )
582
596
sil8 .EndsAt = time.Time {}
597
+ versionBeforeOp = s .Version ()
583
598
require .EqualError (t , s .Set (sil8 ), "invalid silence: invalid zero end timestamp" )
584
599
585
600
// sil7 should not be expired because the update failed.
586
601
clock .Add (time .Millisecond )
587
602
sil7 , err = s .QueryOne (QIDs (sil7 .Id ))
588
603
require .NoError (t , err )
589
604
require .Equal (t , types .SilenceStateActive , getState (sil7 , s .nowUTC ()))
605
+ require .Equal (t , versionBeforeOp , s .Version ())
590
606
}
591
607
592
608
func TestSilenceLimits (t * testing.T ) {
0 commit comments