thread-master/docs/product/scout-topic-quality/tasks/T031-memory-run-store.md

1.4 KiB
Raw Permalink Blame History

T031 — Memory Run store

Status: done Milestone: M3 Est. change: ~190 lines

Goal

完成後MemoryStore 完整實作 Run repository 契約並成為後續 usecase 的快速 contract test double。

Depends on

  • T030

Inputs

  • 讀取 / 依賴:
    • 檔案:apps/backend/internal/module/scout/repository/memory.go
    • 既有能力 / APIMemoryStore mutex、Post/Homework storage
    • Spec 段落§3、§4 流程 DF、§8

Outputs

程式變更(預期路徑)

路徑 動作 說明
apps/backend/internal/module/scout/repository/memory.go edit 保存 runs實作 guarded transition、run/result page、seen、publish、delete、counts。
apps/backend/internal/module/scout/repository/memory_run_test.go add 覆蓋排序、owner isolation、guard 與 paging。

行為變更

  • 終態不倒退run/result 順序都有 ID tie-breaker。

API / 契約(若有)

  • running/failed run 的 staged posts 不出現在公開 result page。

Out of scope

  • 不模擬 Mongo driver 細節或真 transaction。

Acceptance

  • 同資料重複查頁順序一致,跨 owner 無資料洩漏。
  • 指令:
cd apps/backend && go test ./internal/module/scout/repository -run MemoryRun -count=1

驗收結果3 MemoryRun tests passed。

Notes

copy 回傳物件與 slice避免測試呼叫者修改 store 內部狀態。