# TEST_REPORT — ECR-007 Ops-B Analytics Date: 2026-08-07 ## Commands ```bash export PATH="$HOME/.local/go/bin:$PATH" cd apps/api && go test ./internal/service/analytics/ -count=1 cd apps/api && go test ./internal/integration/ -run TestAnalyticsOpsB -count=1 npm run test:h5 -- --run src/lib/analytics.spec.ts npm run build:h5 && npm run build:admin ``` ## Results | Check | Result | |-------|--------| | `TestScrubDwellNonNeg` / `TestParseDayRange` | PASS | | `TestAnalyticsOpsB`(ingest → overview/pages/exits) | PASS | | `analytics.spec.ts`(6) | PASS | | `build:h5` / `build:admin` | PASS | ## Spec mapping | Spec | Evidence | |------|----------| | page_view×2 + page_leave(dwell) + session_end.exit_page | TestAnalyticsOpsB ingest | | Admin overview/pages/exits 非空 | same | | props 截断 / dwell 非负 | service_test | | H5 队列 session / leave | analytics.spec | ## Notes - DeviceAuth 空 key 时写入 request header,便于 ingest 读 `X-Device-Key` - 非法批次整批 400(`ErrInvalidBatch`)