package analytics import "testing" func TestScrubDwellNonNeg(t *testing.T) { _, end, err := scrubProps("page_leave", map[string]interface{}{ "dwell_ms": float64(1200), "phone": "13800000000", }) if err != nil { t.Fatal(err) } if end != nil { t.Fatal("page_leave should not produce session end") } _, end, err = scrubProps("session_end", map[string]interface{}{ "exit_page": "/ask", "duration_ms": float64(5000), "birthday": "1990-01-01", }) if err != nil { t.Fatal(err) } if end == nil || end.ExitPage != "/ask" || end.DurationMs != 5000 { t.Fatalf("bad end: %+v", end) } _, _, err = scrubProps("page_leave", map[string]interface{}{"dwell_ms": float64(-1)}) if err != ErrInvalidBatch { t.Fatalf("want ErrInvalidBatch for negative dwell, got %v", err) } } func TestParseDayRange(t *testing.T) { from, to, err := ParseDayRange("2026-08-01", "2026-08-07") if err != nil { t.Fatal(err) } if to.Sub(from).Hours() != 7*24 { t.Fatalf("range=%v", to.Sub(from)) } _, _, err = ParseDayRange("2026-08-07", "2026-08-01") if err != ErrInvalidBatch { t.Fatalf("want invalid, got %v", err) } }