build: race-check the billing package too

test-race runs `go test -race ./...`, which is untagged, so pkg/billing prints
"no test files" and the money path has never been through the race detector.

This is the same gap batch 13 found in `test`, where the only -tags billing line
in the Makefile was a build line and gate_test.go had never executed in CI. That
one was fixed by adding test-billing; test-race was left behind.

It is not a theoretical gap. UpdateCrewTierOnAllHolds fans out to every managed
hold concurrently and joins the errors, and RefreshHoldTiers reads and writes
holdTierCache under a mutex from a background worker while request handlers read
it. Those are the two places in the package where a race would actually live.

Passes: 2.059s, no races reported.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rmjvU2gSRL9wFnmqVsWaF
This commit is contained in:
Evan Jarrett
2026-08-25 16:34:26 -05:00
co-authored by Claude Opus 5
parent 521cf143e5
commit 777bd15149
+2
View File
@@ -110,6 +110,8 @@ test-billing: ## Run the billing-tagged tests (skipped by plain `go test ./...`)
test-race: ## Run tests with race detector
@echo "→ Running tests with race detector..."
go test -race ./...
@echo "→ Running billing-tagged tests with race detector..."
go test -race -tags billing ./pkg/billing/...
test-verbose: ## Run tests with verbose output
@echo "→ Running tests with verbose output..."