Files
digital-psychology/apps/api/internal/service/analytics/service_test.go
T
jackyu66gitandCursor 7ab9add5dd
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s
feat(ops): ECR-007 行为分析与 ECR-008 内容运营后台
落地埋点 ingest/数据看板、首页宫格 CMS 与测评上下架;含账号引导、问答流式与免责声明去重,以及 review P1 审计同事务修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 02:26:16 +08:00

46 lines
1.1 KiB
Go

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)
}
}