internal/control/audit_test.go

ab515bab173c501ad2228f0af8068a8730f8b5ea
gitbay/internal/control/audit_test.go history · blame · raw

28 lines · 817 bytes

 1package control
 2
 3import (
 4	"testing"
 5	"time"
 6)
 7
 8func TestParseSince(t *testing.T) {
 9	now := time.Date(2026, 9, 1, 12, 0, 0, 0, time.UTC)
10	cases := map[string]time.Time{
11		"30m":                  now.Add(-30 * time.Minute),
12		"24h":                  now.Add(-24 * time.Hour),
13		"7d":                   now.Add(-7 * 24 * time.Hour),
14		"2026-08-01":           time.Date(2026, 8, 1, 0, 0, 0, 0, time.UTC),
15		"2026-08-01T10:00:00Z": time.Date(2026, 8, 1, 10, 0, 0, 0, time.UTC),
16	}
17	for in, want := range cases {
18		got, ok := parseSince(in, now)
19		if !ok || !got.Equal(want) {
20			t.Errorf("parseSince(%q) = %v, %v; want %v", in, got, ok, want)
21		}
22	}
23	for _, bad := range []string{"", "yesterday", "-1h", "x d", "2026-13-01"} {
24		if _, ok := parseSince(bad, now); ok {
25			t.Errorf("parseSince(%q) accepted", bad)
26		}
27	}
28}