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

Function TestLastReportIntervalHasAtLeastSixDays

coderd/insights_internal_test.go:284–335  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

282}
283
284func TestLastReportIntervalHasAtLeastSixDays(t *testing.T) {
285 t.Parallel()
286
287 loc, err := time.LoadLocation("Europe/Warsaw")
288 require.NoError(t, err)
289
290 testCases := []struct {
291 name string
292 startTime time.Time
293 endTime time.Time
294 expected bool
295 }{
296 {
297 name: "perfectly full week",
298 startTime: time.Date(2023, time.September, 11, 12, 0, 0, 0, loc),
299 endTime: time.Date(2023, time.September, 18, 12, 0, 0, 0, loc),
300 expected: true,
301 },
302 {
303 name: "exactly 6 days apart",
304 startTime: time.Date(2023, time.September, 11, 12, 0, 0, 0, loc),
305 endTime: time.Date(2023, time.September, 17, 12, 0, 0, 0, loc),
306 expected: true,
307 },
308 {
309 name: "less than 6 days apart",
310 startTime: time.Date(2023, time.September, 11, 12, 0, 0, 0, time.UTC),
311 endTime: time.Date(2023, time.September, 17, 11, 0, 0, 0, time.UTC),
312 expected: false,
313 },
314 {
315 name: "forward DST change, 5 days and 23 hours apart",
316 startTime: time.Date(2023, time.March, 22, 12, 0, 0, 0, loc), // A day before DST starts
317 endTime: time.Date(2023, time.March, 28, 12, 0, 0, 0, loc), // Exactly 6 "days" apart
318 expected: true,
319 },
320 }
321
322 for _, tc := range testCases {
323 t.Run(tc.name, func(t *testing.T) {
324 t.Parallel()
325
326 t.Log("startTime: ", tc.startTime)
327 t.Log("endTime: ", tc.endTime)
328
329 result := lastReportIntervalHasAtLeastSixDays(tc.startTime, tc.endTime)
330 if result != tc.expected {
331 t.Errorf("Expected %v, but got %v for start time %v and end time %v", tc.expected, result, tc.startTime, tc.endTime)
332 }
333 })
334 }
335}
336
337// stripTime strips the time from a time.Time value, but keeps the date and TZ.
338func stripTime(t time.Time) time.Time {

Callers

nothing calls this directly

Calls 4

LogMethod · 0.80
RunMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected