From 67f503b820c07e043cd4224378c504d31d707ca4 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Mon, 7 Nov 2022 17:54:39 +0100 Subject: [PATCH] Alerting: Fix test fails in some environments (#58251) (#58356) (cherry picked from commit 8353f307aa2ed842c9045c1e420d51574019e905) Co-authored-by: George Robinson --- pkg/services/ngalert/models/image.go | 2 +- pkg/services/ngalert/models/image_test.go | 15 +++++++++++---- pkg/services/ngalert/models/time.go | 8 ++++++++ 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 pkg/services/ngalert/models/time.go diff --git a/pkg/services/ngalert/models/image.go b/pkg/services/ngalert/models/image.go index 8c2d8cefd05..07c8578cdd9 100644 --- a/pkg/services/ngalert/models/image.go +++ b/pkg/services/ngalert/models/image.go @@ -27,7 +27,7 @@ func (i *Image) ExtendDuration(d time.Duration) { // HasExpired returns true if the image has expired. func (i *Image) HasExpired() bool { - return time.Now().After(i.ExpiresAt) + return timeNow().After(i.ExpiresAt) } // HasPath returns true if the image has a path on disk. diff --git a/pkg/services/ngalert/models/image_test.go b/pkg/services/ngalert/models/image_test.go index 5c8380cff04..7f9177fa8d6 100644 --- a/pkg/services/ngalert/models/image_test.go +++ b/pkg/services/ngalert/models/image_test.go @@ -4,6 +4,7 @@ import ( "testing" "time" + "github.com/benbjohnson/clock" "github.com/stretchr/testify/assert" ) @@ -20,12 +21,18 @@ func TestImage_ExtendDuration(t *testing.T) { } func TestImage_HasExpired(t *testing.T) { + oldTimeNow := timeNow + timeNow = clock.NewMock().Now + t.Cleanup(func() { + timeNow = oldTimeNow + }) + var i Image - i.ExpiresAt = time.Now().Add(time.Minute) + i.ExpiresAt = timeNow().Add(time.Minute) assert.False(t, i.HasExpired()) - i.ExpiresAt = time.Now() - assert.True(t, i.HasExpired()) - i.ExpiresAt = time.Now().Add(-time.Minute) + i.ExpiresAt = timeNow() + assert.False(t, i.HasExpired()) + i.ExpiresAt = timeNow().Add(-time.Minute) assert.True(t, i.HasExpired()) } diff --git a/pkg/services/ngalert/models/time.go b/pkg/services/ngalert/models/time.go new file mode 100644 index 00000000000..4e7b1a91163 --- /dev/null +++ b/pkg/services/ngalert/models/time.go @@ -0,0 +1,8 @@ +package models + +import "time" + +var ( + // timeNow is an equivalent time.Now() that can be replaced in tests + timeNow = time.Now +)