thread-master/docs/product/scout-topic-quality/tasks/T063-live-contract-regressi...

56 lines
1.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# T063 — Live contract 與相容回歸
> Status: `done`
> Milestone: `M6`
> Est. change: `~190 test lines`
## Goal
完成後mock/live ScoutRepo 的排序、分頁、時間與錯誤語意一致,其他 listPosts 呼叫者不回歸。
## Depends on
- T062
## Inputs
- 讀取 / 依賴:
- 檔案web Scout repos/tests、`apps/web/src/pages/TodayPage.tsx`
- 既有能力 / APIin-memory repo、MSW/fetch stub、legacy listPosts
- Spec 段落§5.2、§6、§9 #16
## Outputs
### 程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/web/src/data/scoutRepo.contract.test.ts` | add | 同一案例套用 in-memory 與 live adapter。 |
| `apps/web/src/pages/ScoutPage.test.tsx` | edit | 補完整 live-shaped workflow。 |
| `apps/web/src/pages/TodayPage.test.tsx` | add/edit | 固定 legacy listPosts 相容。 |
### 行為變更
- 無新增產品行為;固定 mock/live 同契約與 Today 相容。
### API / 契約(若有)
- page totals、unknown time、shortfall、404/409/503 在兩 adapter 等價。
## Out of scope
- 不把 TodayPage 遷移到 run API。
## Acceptance
- [x] Spec #16 通過TodayPage 可載入既有 posts endpoint。
- [x] 指令:
```bash
cd apps/web && npm test && npm run lint && npm run build
```
## Notes
若 live adapter 需 fetch stub測試仍不得依賴網路。