dev → uat: GRO-2153 abstracted geocoding service #168
Reference in New Issue
Block a user
Delete Branch "dev-to-uat-gro-2153"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Promotion: dev → uat — GRO-2153 geocoding service
Promotes the abstracted geocoding service layer (GRO-2153) from
devtouatfor QA. Merged todevas #167; this train carries only the geocoding work (GRO-2187 + GRO-2152 already promoted via #166).Delivered (exactly the GRO-2153 spec)
GeocodingProviderinterface +GeocodeResulttypeNominatimGeocodingProvider— internalRateLimiterenforces the 1 req/sec Nominatim policyGoogleGeocodingProvider— optional fallback, keyed by encryptedbusinessSettings.googleMapsApiKey(decryptSecret) /GOOGLE_MAPS_API_KEYenvresolveGeocodingProvider()— selects onbusinessSettings.routeOptimizationProvider, safe Nominatim fallbackgeocodeBatch()— throttled batch utility with per-item error capture + progress callbacksrc/__tests__/geocoding.test.ts) — both providers, selection, throttle spacing, batchFiles:
src/services/geocoding.ts,src/__tests__/geocoding.test.ts.QA focus
UAT_PLAYBOOK.mdchange required this PR.pull_requestLint/Typecheck + Test are green; confirm the geocoding unit suite runs.Local verification (from #167)
tsc --noEmit✓ ·eslint(new files) ✓ ·pnpm build✓ · fullvitest run→ 602 passed.QA approved. All pull_request CI checks pass (Lint/Typecheck, Test 20/20, Build). Code reviewed: provider interface, RateLimiter, both concrete providers, resolveGeocodingProvider, geocodeBatch — implementation is correct and tests are thorough. No user-facing behaviour / no UAT_PLAYBOOK.md change required.