MCPcopy Index your code
hub / github.com/coder/coder / TestComputeUsagePeriodBounds

Function TestComputeUsagePeriodBounds

coderd/x/chatd/usagelimit_internal_test.go:10–132  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

8)
9
10func TestComputeUsagePeriodBounds(t *testing.T) {
11 t.Parallel()
12
13 newYork, err := time.LoadLocation("America/New_York")
14 if err != nil {
15 t.Fatalf("load America/New_York: %v", err)
16 }
17
18 tests := []struct {
19 name string
20 now time.Time
21 period codersdk.ChatUsageLimitPeriod
22 wantStart time.Time
23 wantEnd time.Time
24 }{
25 {
26 name: "day/mid_day",
27 now: time.Date(2025, time.June, 15, 14, 30, 0, 0, time.UTC),
28 period: codersdk.ChatUsageLimitPeriodDay,
29 wantStart: time.Date(2025, time.June, 15, 0, 0, 0, 0, time.UTC),
30 wantEnd: time.Date(2025, time.June, 16, 0, 0, 0, 0, time.UTC),
31 },
32 {
33 name: "day/midnight_exactly",
34 now: time.Date(2025, time.June, 15, 0, 0, 0, 0, time.UTC),
35 period: codersdk.ChatUsageLimitPeriodDay,
36 wantStart: time.Date(2025, time.June, 15, 0, 0, 0, 0, time.UTC),
37 wantEnd: time.Date(2025, time.June, 16, 0, 0, 0, 0, time.UTC),
38 },
39 {
40 name: "day/end_of_day",
41 now: time.Date(2025, time.June, 15, 23, 59, 59, 0, time.UTC),
42 period: codersdk.ChatUsageLimitPeriodDay,
43 wantStart: time.Date(2025, time.June, 15, 0, 0, 0, 0, time.UTC),
44 wantEnd: time.Date(2025, time.June, 16, 0, 0, 0, 0, time.UTC),
45 },
46 {
47 name: "week/wednesday",
48 now: time.Date(2025, time.June, 11, 10, 0, 0, 0, time.UTC),
49 period: codersdk.ChatUsageLimitPeriodWeek,
50 wantStart: time.Date(2025, time.June, 9, 0, 0, 0, 0, time.UTC),
51 wantEnd: time.Date(2025, time.June, 16, 0, 0, 0, 0, time.UTC),
52 },
53 {
54 name: "week/monday",
55 now: time.Date(2025, time.June, 9, 0, 0, 0, 0, time.UTC),
56 period: codersdk.ChatUsageLimitPeriodWeek,
57 wantStart: time.Date(2025, time.June, 9, 0, 0, 0, 0, time.UTC),
58 wantEnd: time.Date(2025, time.June, 16, 0, 0, 0, 0, time.UTC),
59 },
60 {
61 name: "week/sunday",
62 now: time.Date(2025, time.June, 15, 23, 0, 0, 0, time.UTC),
63 period: codersdk.ChatUsageLimitPeriodWeek,
64 wantStart: time.Date(2025, time.June, 9, 0, 0, 0, 0, time.UTC),
65 wantEnd: time.Date(2025, time.June, 16, 0, 0, 0, 0, time.UTC),
66 },
67 {

Callers

nothing calls this directly

Calls 5

ComputeUsagePeriodBoundsFunction · 0.85
RunMethod · 0.65
FatalfMethod · 0.45
EqualMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected