Skip to content

Commit caae4c4

Browse files
authored
Fix flaky admin test (#4528)
1 parent 2a57435 commit caae4c4

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

pkg/operations/handlers.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func (h *Handlers) CreateBlocksHandler() func(http.ResponseWriter, *http.Request
6060
User: tenantId,
6161
Query: query,
6262
Now: time.Now().UTC().Format(time.RFC3339),
63-
SelectedBlocks: h.filterAndGroupBlocks(index, query),
63+
SelectedBlocks: h.filterAndGroupBlocks(index, query, time.Now()),
6464
})
6565
if err != nil {
6666
httputil.Error(w, err)
@@ -69,7 +69,7 @@ func (h *Handlers) CreateBlocksHandler() func(http.ResponseWriter, *http.Request
6969
}
7070
}
7171

72-
func (h *Handlers) filterAndGroupBlocks(index *bucketindex.Index, query *blockQuery) *blockListResult {
72+
func (h *Handlers) filterAndGroupBlocks(index *bucketindex.Index, query *blockQuery, now time.Time) *blockListResult {
7373
queryFrom := model.TimeFromUnix(query.parsedFrom.UnixMilli() / 1000)
7474
queryTo := model.TimeFromUnix(query.parsedTo.UnixMilli() / 1000)
7575
blockGroupMap := make(map[time.Time]*blockGroup)
@@ -92,7 +92,7 @@ func (h *Handlers) filterAndGroupBlocks(index *bucketindex.Index, query *blockQu
9292
MinTime: truncatedMinTime,
9393
FormattedMinTime: truncatedMinTime.Format(time.RFC3339),
9494
Blocks: make([]*blockDetails, 0),
95-
MinTimeAge: humanize.RelTime(blk.MinTime.Time(), time.Now(), "ago", ""),
95+
MinTimeAge: humanize.RelTime(blk.MinTime.Time(), now, "ago", ""),
9696
MaxBlockDurationMinutes: int(math.Round(blk.MaxTime.Sub(blk.MinTime).Minutes())),
9797
}
9898
blockGroups = append(blockGroups, blkGroup)

pkg/operations/handlers_test.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"testing"
1111
"time"
1212

13+
"github.com/dustin/go-humanize"
1314
"github.com/go-kit/log"
1415
"github.com/gorilla/mux"
1516
"github.com/grafana/dskit/concurrency"
@@ -140,10 +141,11 @@ func TestHandlers_CreateIndexHandler(t *testing.T) {
140141
}
141142

142143
func Test_filterAndGroupBlocks(t *testing.T) {
143-
block1 := &bucketindex.Block{ID: ulid.MustNew(1, nil), MinTime: model.Now().Add(-2 * time.Hour), MaxTime: model.Now().Add(-1 * time.Hour)}
144-
block2 := &bucketindex.Block{ID: ulid.MustNew(2, nil), MinTime: model.Now().Add(-4 * time.Hour), MaxTime: model.Now().Add(-3 * time.Hour)}
145-
block3 := &bucketindex.Block{ID: ulid.MustNew(3, nil), MinTime: model.Now().Add(-4*time.Hour + time.Minute), MaxTime: model.Now().Add(-3 * time.Hour)}
146-
block4 := &bucketindex.Block{ID: ulid.MustNew(4, nil), MinTime: model.Now().Add(-12 * time.Hour), MaxTime: model.Now().Add(-10 * time.Hour)}
144+
now := model.TimeFromUnixNano(time.Date(2025, 10, 16, 16, 0, 0, 0, time.UTC).UnixNano())
145+
block1 := &bucketindex.Block{ID: ulid.MustNew(1, nil), MinTime: now.Add(-2 * time.Hour), MaxTime: now.Add(-1 * time.Hour)}
146+
block2 := &bucketindex.Block{ID: ulid.MustNew(2, nil), MinTime: now.Add(-4 * time.Hour), MaxTime: now.Add(-3 * time.Hour)}
147+
block3 := &bucketindex.Block{ID: ulid.MustNew(3, nil), MinTime: now.Add(-4*time.Hour + time.Minute), MaxTime: now.Add(-3 * time.Hour)}
148+
block4 := &bucketindex.Block{ID: ulid.MustNew(4, nil), MinTime: now.Add(-12 * time.Hour), MaxTime: now.Add(-10 * time.Hour)}
147149
h := &Handlers{MaxBlockDuration: time.Hour}
148150

149151
type args struct {
@@ -177,8 +179,8 @@ func Test_filterAndGroupBlocks(t *testing.T) {
177179
BlockDeletionMarks: bucketindex.BlockDeletionMarks{&bucketindex.BlockDeletionMark{ID: block1.ID}},
178180
},
179181
query: &blockQuery{
180-
parsedFrom: time.Now().Add(-6 * time.Hour),
181-
parsedTo: time.Now(),
182+
parsedFrom: now.Time().Add(-6 * time.Hour),
183+
parsedTo: now.Time(),
182184
}},
183185
want: &blockListResult{
184186
// block 1 is not included because it is marked as deleted
@@ -205,7 +207,7 @@ func Test_filterAndGroupBlocks(t *testing.T) {
205207
UploadedAt: time.UnixMilli(0).UTC().Format(time.RFC3339),
206208
},
207209
},
208-
MinTimeAge: "4 hours ago",
210+
MinTimeAge: humanize.RelTime(block2.MinTime.Time(), now.Time(), "ago", ""),
209211
MaxBlockDurationMinutes: 60,
210212
},
211213
},
@@ -216,7 +218,7 @@ func Test_filterAndGroupBlocks(t *testing.T) {
216218
}
217219
for _, tt := range tests {
218220
t.Run(tt.name, func(t *testing.T) {
219-
assert.Equalf(t, tt.want, h.filterAndGroupBlocks(tt.args.index, tt.args.query), "filterAndGroupBlocks(%v, %v)", tt.args.index, tt.args.query)
221+
assert.Equalf(t, tt.want, h.filterAndGroupBlocks(tt.args.index, tt.args.query, now.Time()), "filterAndGroupBlocks(%v, %v)", tt.args.index, tt.args.query)
220222
})
221223
}
222224
}

0 commit comments

Comments
 (0)