Skip to content

test(repository): 救回 dropoff 座標測試(清理殘留分支時撈到的未合併內容) - #50

Merged
thothawei merged 1 commit into
mainfrom
claude/salvage-dropoff-null-test
Jul 28, 2026
Merged

test(repository): 救回 dropoff 座標測試(清理殘留分支時撈到的未合併內容)#50
thothawei merged 1 commit into
mainfrom
claude/salvage-dropoff-null-test

Conversation

@thothawei

Copy link
Copy Markdown
Owner

為什麼有這個 PR

在做 fleet-app TODO 的維護項「清開發殘留 worktree 與舊分支」時,刪之前逐條驗證每條本地分支的內容是否真的在 main。三個 repo 共 72 條本地分支中,只有 4 條不是「PR 已合併且本地 tip = 合併時 tip」,其中 claude/determined-shannon-17f4ac從未開過 PR)帶著一份 main 沒有的 internal/repository/ride_dropoff_integration_test.go

改了什麼

原檔測的 RideRepository.GetDropoffCoords 在 main 已不存在,所以不是原樣還原,而是改寫成對現有 API(CreateGetByID)的等價覆蓋:

  • 正向 round-tripride_create_customer_test(service 層)已間接覆蓋;此處補 repository 層直接覆蓋——Create 對「有/無 dropoff」是兩條不同的 SQL,走錯會被上層邏輯掩蓋。
  • 未指定目的地 → DropoffPoint 必須是 nilmain 完全沒有這條。守的是踩過的 GeoPoint.Scan 坑——NULL 被當成掃描成功而留下 (0, 0),導航與計費會把幾內亞灣外海當成真目的地,而且不會有任何錯誤。

驗證

  • 真 PostGIS(testcontainers)實跑:go test ./internal/repository/ -run TestRideDropoff -v2/2 PASS(47s)。
  • gofmt -l 無輸出、go vet ./internal/repository/ 乾淨。
  • 負向斷言防「永遠 PASS」:同檔正向案例走的是同一條 GetByID → DropoffPoint 取值路徑,有值時確實非 nil,路徑已被校準。

另外驗過但不需要救回的三條

分支 判定
claude/driver-phone-profile(dispatch,PR #42 CLOSED) 那份 internal/service/driver_phone_test.go 的每一條都已被 main 的 handler/driver_profile_test.go(真 DB)覆蓋,含「改電話不重置 O5 審核」。且「空字串=清除電話」語意在 main 已改成 400 拒絕,原測拿到 main 會 FAIL——屬已被取代。
claude/todo-review-priority-54ffe7(app,PR #40 CLOSED) 整合測試與 tool/watch_driver_location.sh 已由 app PR #48 救回,功能碼由 app PR #41 落地。
claude/project-planning-docs-803c8e(app,PR #37 CLOSED) 純文件(README/TODO 規劃),已被後續多次改寫取代。

🤖 Generated with Claude Code

清理殘留分支時發現 `claude/determined-shannon-17f4ac`(從未開過 PR)帶了一份
`ride_dropoff_integration_test.go`,內容從未進 main。原檔測的 `GetDropoffCoords`
在 main 已不存在,故改寫成對現有 API(Create → GetByID)的等價覆蓋。

兩案的價值不同:
- 正向 round-trip:service 層 ride_create_customer_test 已間接覆蓋,此處補 repository
  層直接覆蓋——Create 有/無 dropoff 是兩條不同的 SQL,走錯會被上層邏輯掩蓋。
- **未指定目的地 → DropoffPoint 必須是 nil**:main 完全沒有這條。這守的是踩過的
  GeoPoint.Scan 坑(NULL 被當成掃描成功而留下零值座標,導航與計費會把 (0,0)
  當真目的地且不報錯)。正向案例校準了同一條取值路徑,故此負向斷言不會永遠 PASS。

驗證:真 PostGIS(testcontainers)實跑 2/2 PASS;gofmt/go vet 乾淨。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@thothawei
thothawei merged commit d4802a1 into main Jul 28, 2026
1 check passed
@thothawei
thothawei deleted the claude/salvage-dropoff-null-test branch July 28, 2026 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant