From 69a62777c5e0ca5a3f5192cd57c9b6b724e4dd3d Mon Sep 17 00:00:00 2001 From: Yuri Tseretyan Date: Tue, 18 Mar 2025 13:28:19 -0400 Subject: [PATCH] Fix flaky test TestIntegration_ListDeletedRules (#102383) Signed-off-by: Yuri Tseretyan --- pkg/services/ngalert/store/alert_rule_test.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/services/ngalert/store/alert_rule_test.go b/pkg/services/ngalert/store/alert_rule_test.go index 1658c00a988..11614bb6841 100644 --- a/pkg/services/ngalert/store/alert_rule_test.go +++ b/pkg/services/ngalert/store/alert_rule_test.go @@ -9,6 +9,7 @@ import ( "testing" "time" + "github.com/benbjohnson/clock" "github.com/google/uuid" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -1820,6 +1821,15 @@ func TestIntegration_ListDeletedRules(t *testing.T) { store := createTestStore(sqlStore, folderService, &logtest.Fake{}, cfg.UnifiedAlerting, b) store.FeatureToggles = featuremgmt.WithFeatures(featuremgmt.FlagAlertRuleRestore) + oldT := TimeNow + t.Cleanup(func() { + TimeNow = oldT + }) + clk := clock.NewMock() + TimeNow = func() time.Time { + return clk.Now() + } + orgID := int64(1) gen := models.RuleGen gen = gen.With(gen.WithIntervalMatching(store.Cfg.BaseInterval), gen.WithOrgID(orgID)) @@ -1829,6 +1839,7 @@ func TestIntegration_ListDeletedRules(t *testing.T) { rule, err := store.GetAlertRuleByUID(context.Background(), &models.GetAlertRuleByUIDQuery{UID: result[0].UID}) require.NoError(t, err) + clk.Add(1 * time.Hour) rule2 := models.CopyRule(rule, gen.WithTitle(util.GenerateShortUID())) err = store.UpdateAlertRules(context.Background(), &models.AlertingUserUID, []models.UpdateRule{ { @@ -1850,7 +1861,8 @@ func TestIntegration_ListDeletedRules(t *testing.T) { require.Empty(t, list) }) - err = store.DeleteAlertRulesByUID(context.Background(), orgID, &models.AlertingUserUID, false, rule.UID) + clk.Add(1 * time.Hour) + err = store.DeleteAlertRulesByUID(context.Background(), orgID, util.Pointer(models.UserUID("test")), false, rule.UID) require.NoError(t, err) t.Run("should return the last deleted rule", func(t *testing.T) { @@ -1858,7 +1870,9 @@ func TestIntegration_ListDeletedRules(t *testing.T) { require.NoError(t, err) require.Len(t, list, 1) assert.Empty(t, list[0].UID) - assert.Empty(t, rule2.Diff(list[0], "ID", "UID", "DashboardUID", "PanelID")) + assert.Empty(t, rule2.Diff(list[0], "ID", "UID", "DashboardUID", "PanelID", "Updated", "UpdatedBy")) // ignore updated because it's not + assert.Equal(t, list[0].Updated.UTC(), clk.Now().UTC()) + assert.EqualValues(t, list[0].UpdatedBy, util.Pointer(models.UserUID("test"))) }) }