@@ -322,8 +322,10 @@ func TestSilenceSet(t *testing.T) {
322
322
StartsAt : start1 .Add (2 * time .Minute ),
323
323
EndsAt : start1 .Add (5 * time .Minute ),
324
324
}
325
+ versionBeforeOp := s .Version ()
325
326
require .NoError (t , s .Set (sil1 ))
326
327
require .NotEqual (t , "" , sil1 .Id )
328
+ require .NotEqual (t , versionBeforeOp , s .Version ())
327
329
328
330
want := state {
329
331
sil1 .Id : & pb.MeshSilence {
@@ -347,8 +349,10 @@ func TestSilenceSet(t *testing.T) {
347
349
Matchers : []* pb.Matcher {{Name : "a" , Pattern : "b" }},
348
350
EndsAt : start2 .Add (1 * time .Minute ),
349
351
}
352
+ versionBeforeOp = s .Version ()
350
353
require .NoError (t , s .Set (sil2 ))
351
354
require .NotEqual (t , "" , sil2 .Id )
355
+ require .NotEqual (t , versionBeforeOp , s .Version ())
352
356
353
357
want = state {
354
358
sil1 .Id : want [sil1 .Id ],
@@ -368,22 +372,27 @@ func TestSilenceSet(t *testing.T) {
368
372
// Should be able to update silence without modifications. It is expected to
369
373
// keep the same ID.
370
374
sil3 := cloneSilence (sil2 )
375
+ versionBeforeOp = s .Version ()
371
376
require .NoError (t , s .Set (sil3 ))
372
377
require .Equal (t , sil2 .Id , sil3 .Id )
378
+ require .Equal (t , versionBeforeOp , s .Version ())
373
379
374
380
// Should be able to update silence with comment. It is also expected to
375
381
// keep the same ID.
376
382
sil4 := cloneSilence (sil3 )
377
383
sil4 .Comment = "c"
384
+ versionBeforeOp = s .Version ()
378
385
require .NoError (t , s .Set (sil4 ))
379
386
require .Equal (t , sil3 .Id , sil4 .Id )
387
+ require .Equal (t , versionBeforeOp , s .Version ())
380
388
381
389
// Extend sil4 to expire at a later time. This should not expire the
382
390
// existing silence, and so should also keep the same ID.
383
391
clock .Add (time .Minute )
384
392
start5 := s .nowUTC ()
385
393
sil5 := cloneSilence (sil4 )
386
394
sil5 .EndsAt = start5 .Add (100 * time .Minute )
395
+ versionBeforeOp = s .Version ()
387
396
require .NoError (t , s .Set (sil5 ))
388
397
require .Equal (t , sil4 .Id , sil5 .Id )
389
398
want = state {
@@ -401,6 +410,7 @@ func TestSilenceSet(t *testing.T) {
401
410
},
402
411
}
403
412
require .Equal (t , want , s .st , "unexpected state after silence creation" )
413
+ require .Equal (t , versionBeforeOp , s .Version ())
404
414
405
415
// Replace the silence sil5 with another silence with different matchers.
406
416
// Unlike previous updates, changing the matchers for an existing silence
@@ -412,6 +422,7 @@ func TestSilenceSet(t *testing.T) {
412
422
413
423
sil6 := cloneSilence (sil5 )
414
424
sil6 .Matchers = []* pb.Matcher {{Name : "a" , Pattern : "c" }}
425
+ versionBeforeOp = s .Version ()
415
426
require .NoError (t , s .Set (sil6 ))
416
427
require .NotEqual (t , sil5 .Id , sil6 .Id )
417
428
want = state {
@@ -440,6 +451,7 @@ func TestSilenceSet(t *testing.T) {
440
451
},
441
452
}
442
453
require .Equal (t , want , s .st , "unexpected state after silence creation" )
454
+ require .NotEqual (t , versionBeforeOp , s .Version ())
443
455
444
456
// Re-create the silence that we just replaced. Changing the start time,
445
457
// just like changing the matchers, creates a new silence with a different
@@ -449,6 +461,7 @@ func TestSilenceSet(t *testing.T) {
449
461
sil7 := cloneSilence (sil5 )
450
462
sil7 .StartsAt = start1
451
463
sil7 .EndsAt = start1 .Add (5 * time .Minute )
464
+ versionBeforeOp = s .Version ()
452
465
require .NoError (t , s .Set (sil7 ))
453
466
require .NotEqual (t , sil2 .Id , sil7 .Id )
454
467
want = state {
@@ -468,19 +481,22 @@ func TestSilenceSet(t *testing.T) {
468
481
},
469
482
}
470
483
require .Equal (t , want , s .st , "unexpected state after silence creation" )
484
+ require .NotEqual (t , versionBeforeOp , s .Version ())
471
485
472
486
// Updating an existing silence with an invalid silence should not expire
473
487
// the original silence.
474
488
clock .Add (time .Millisecond )
475
489
sil8 := cloneSilence (sil7 )
476
490
sil8 .EndsAt = time.Time {}
491
+ versionBeforeOp = s .Version ()
477
492
require .EqualError (t , s .Set (sil8 ), "invalid silence: invalid zero end timestamp" )
478
493
479
494
// sil7 should not be expired because the update failed.
480
495
clock .Add (time .Millisecond )
481
496
sil7 , err = s .QueryOne (QIDs (sil7 .Id ))
482
497
require .NoError (t , err )
483
498
require .Equal (t , types .SilenceStateActive , getState (sil7 , s .nowUTC ()))
499
+ require .Equal (t , versionBeforeOp , s .Version ())
484
500
}
485
501
486
502
func TestSilenceLimits (t * testing.T ) {
0 commit comments