1package history
2
3import (
4 "testing"
5 "time"
6)
7
8func TestDeleteRangeCutoff(t *testing.T) {
9 now := time.Date(2026, time.April, 11, 12, 0, 0, 0, time.UTC)
10
11 tests := []struct {
12 name string
13 rangeID string
14 want time.Time
15 wantAll bool
16 wantOK bool
17 }{
18 {name: "hour", rangeID: "hour", want: now.Add(-time.Hour), wantAll: false, wantOK: true},
19 {name: "day", rangeID: "day", want: time.Date(2026, time.April, 11, 0, 0, 0, 0, time.UTC), wantAll: false, wantOK: true},
20 {name: "week", rangeID: "week", want: now.AddDate(0, 0, -7), wantAll: false, wantOK: true},
21 {name: "month", rangeID: "month", want: now.AddDate(0, -1, 0), wantAll: false, wantOK: true},
22 {name: "all", rangeID: "all", want: time.Time{}, wantAll: true, wantOK: true},
23 {name: "unknown", rangeID: "bogus", want: time.Time{}, wantAll: false, wantOK: false},
24 }
25
26 for _, tt := range tests {
27 t.Run(tt.name, func(t *testing.T) {
28 got, gotAll, gotOK := DeleteRangeCutoff(tt.rangeID, now)
29 if !got.Equal(tt.want) {
30 t.Fatalf("DeleteRangeCutoff() cutoff = %v, want %v", got, tt.want)
31 }
32 if gotAll != tt.wantAll {
33 t.Fatalf("DeleteRangeCutoff() all = %v, want %v", gotAll, tt.wantAll)
34 }
35 if gotOK != tt.wantOK {
36 t.Fatalf("DeleteRangeCutoff() ok = %v, want %v", gotOK, tt.wantOK)
37 }
38 })
39 }
40}