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

Function TestNextBoundary

enterprise/coderd/usage/cron_internal_test.go:10–65  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

8)
9
10func TestNextBoundary(t *testing.T) {
11 t.Parallel()
12
13 tcs := []struct {
14 name string
15 T time.Time
16 interval time.Duration
17 expected time.Time
18 }{
19 {
20 name: "exactly_on_boundary",
21 T: time.Date(2023, 1, 1, 8, 0, 0, 0, time.UTC),
22 interval: 4 * time.Hour,
23 // On a boundary → returns the next one.
24 expected: time.Date(2023, 1, 1, 12, 0, 0, 0, time.UTC),
25 },
26 {
27 name: "1ns_after_boundary",
28 T: time.Date(2023, 1, 1, 8, 0, 0, 1, time.UTC),
29 interval: 4 * time.Hour,
30 expected: time.Date(2023, 1, 1, 12, 0, 0, 0, time.UTC),
31 },
32 {
33 name: "1ns_before_boundary",
34 T: time.Date(2023, 1, 1, 7, 59, 59, 999999999, time.UTC),
35 interval: 4 * time.Hour,
36 expected: time.Date(2023, 1, 1, 8, 0, 0, 0, time.UTC),
37 },
38 {
39 name: "mid_interval",
40 T: time.Date(2023, 1, 1, 10, 0, 0, 0, time.UTC),
41 interval: 4 * time.Hour,
42 expected: time.Date(2023, 1, 1, 12, 0, 0, 0, time.UTC),
43 },
44 {
45 name: "5min_interval",
46 T: time.Date(2026, 3, 13, 14, 2, 30, 0, time.UTC),
47 interval: 5 * time.Minute,
48 expected: time.Date(2026, 3, 13, 14, 5, 0, 0, time.UTC),
49 },
50 {
51 name: "1hr_interval",
52 T: time.Date(2026, 6, 15, 9, 45, 0, 0, time.UTC),
53 interval: 1 * time.Hour,
54 expected: time.Date(2026, 6, 15, 10, 0, 0, 0, time.UTC),
55 },
56 }
57
58 for _, tc := range tcs {
59 t.Run(tc.name, func(t *testing.T) {
60 t.Parallel()
61 got := nextBoundary(tc.T, tc.interval)
62 require.Equal(t, tc.expected, got)
63 })
64 }
65}
66
67func TestNextTick(t *testing.T) {

Callers

nothing calls this directly

Calls 3

nextBoundaryFunction · 0.85
RunMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected