46 lines
1.3 KiB
Markdown
46 lines
1.3 KiB
Markdown
# Plan 05-02: Tests for Polish Features
|
|
|
|
**Phase:** 5 — Polish
|
|
**Requirements:** POLI-01, POLI-02, POLI-03 (test coverage)
|
|
**Estimated tasks:** 3
|
|
|
|
## Goal
|
|
|
|
Add Vitest tests for streak calculation, summary stats, weekend styling, and week start configurability.
|
|
|
|
## Tasks
|
|
|
|
### Task 1: Streak calculation tests
|
|
|
|
**File:** `assets/test/stats.test.ts` (new)
|
|
**Tests:**
|
|
- Streak of 3 consecutive days ending today → returns 3
|
|
- Gap in the middle breaks streak → returns days after gap
|
|
- No entries today but entries yesterday → streak counts from yesterday
|
|
- No entries at all → returns 0
|
|
- Single day entry (today) → returns 1
|
|
|
|
### Task 2: Summary stats tests
|
|
|
|
**File:** `assets/test/stats.test.ts` (same file)
|
|
**Tests:**
|
|
- Total hours sums correctly
|
|
- Average hours divides by days-with-entries (not total calendar days)
|
|
- Busiest day picks the max-hours entry
|
|
- Empty data returns zeroes and null busiest day
|
|
|
|
### Task 3: Weekend and week start rendering tests
|
|
|
|
**File:** `assets/test/heatmap.test.ts` (extend existing)
|
|
**Tests:**
|
|
- Weekend cells (Sat/Sun) have `heatmap-weekend` class
|
|
- Weekday cells do NOT have `heatmap-weekend` class
|
|
- Stats row renders below heatmap with streak and stat values
|
|
|
|
## Verification
|
|
|
|
- `npm test` passes all new and existing tests
|
|
|
|
## Commit
|
|
|
|
`test: add tests for streak, stats, weekend styling`
|