delta_test.go
1 package agent 2 3 import ( 4 "strings" 5 "testing" 6 "time" 7 ) 8 9 func TestTemporalDelta_NoDeltaWithinSameDay(t *testing.T) { 10 td := NewTemporalDelta() 11 deltas := td.Check() 12 if len(deltas) != 0 { 13 t.Fatalf("expected no deltas on same day, got %d", len(deltas)) 14 } 15 } 16 17 func TestTemporalDelta_DeltaOnDayRollover(t *testing.T) { 18 td := &TemporalDelta{ 19 lastYear: time.Now().Year(), 20 lastYearDay: time.Now().YearDay() - 1, // simulate yesterday 21 } 22 deltas := td.Check() 23 if len(deltas) != 1 { 24 t.Fatalf("expected 1 delta, got %d", len(deltas)) 25 } 26 if deltas[0].Kind != DeltaDateRollover { 27 t.Fatalf("expected DeltaDateRollover, got %s", deltas[0].Kind) 28 } 29 if !strings.Contains(deltas[0].Message, "date has changed") { 30 t.Fatalf("unexpected message: %s", deltas[0].Message) 31 } 32 } 33 34 func TestTemporalDelta_DeltaFiresOnlyOnce(t *testing.T) { 35 td := &TemporalDelta{ 36 lastYear: time.Now().Year(), 37 lastYearDay: time.Now().YearDay() - 1, 38 } 39 deltas := td.Check() 40 if len(deltas) != 1 { 41 t.Fatalf("first check: expected 1 delta, got %d", len(deltas)) 42 } 43 deltas = td.Check() 44 if len(deltas) != 0 { 45 t.Fatalf("second check: expected 0 deltas, got %d", len(deltas)) 46 } 47 } 48 49 func TestTemporalDelta_YearRollover(t *testing.T) { 50 td := &TemporalDelta{ 51 lastYear: time.Now().Year() - 1, 52 lastYearDay: 365, 53 } 54 deltas := td.Check() 55 if len(deltas) != 1 { 56 t.Fatalf("expected 1 delta on year rollover, got %d", len(deltas)) 57 } 58 }