|
Some checks failed
Veza CI / Rust (Stream Server) (push) Failing after 2s
Frontend CI / test (push) Failing after 2m1s
Security Scan / Secret Scanning (gitleaks) (push) Successful in 1m1s
Veza CI / Backend (Go) (push) Failing after 15m48s
E2E Playwright / e2e (full) (push) Failing after 11m33s
Veza CI / Frontend (Web) (push) Failing after 28m3s
Veza CI / Notify on failure (push) Successful in 5s
Closes the v1.0.8 deferrals on the frontend side now that the backend
swaggo annotations + orval regen landed in the previous commit.
queue.ts (services/api/queue.ts, 11 functions):
- getQueue / updateQueue / addToQueue / removeFromQueue / clearQueue
→ orval (getQueue / putQueue / postQueueItems /
deleteQueueItemsId / deleteQueue).
- createQueueSession / getQueueSession / deleteQueueSession /
addToSessionQueue / removeFromSessionQueue → orval (postQueueSession
/ getQueueSessionToken / deleteQueueSessionToken /
postQueueSessionTokenItems / deleteQueueSessionTokenItemsId).
Public surface (queueApi.{...} object) preserved verbatim — no
changes to the two consumers (useQueueSync.ts, PlayerQueue.tsx).
An unwrapPayload<T>() helper strips the APIResponse {data: ...}
envelope, mirroring the B4 / B5 / B6 patterns. mapQueueItemToTrack
conversion logic kept identical.
authService.ts (5/9 deferred functions migrated, total 9/9 now):
- register → postAuthRegister + rename `password_confirm` →
`password_confirmation` (backend DTO field, see
register_request.go:8). Frontend RegisterFormData
keeps its existing field name; the rename happens
at the wire boundary.
- refreshToken → postAuthRefresh + rename `refreshToken` →
`refresh_token`.
- requestPasswordReset → postAuthPasswordResetRequest. Wire shape
`{email}` matches the frontend ForgotPasswordFormData
1:1.
- resetPassword → postAuthPasswordReset + rename `password` →
`new_password` (backend DTO ResetPasswordRequest).
`confirmPassword` from the form is dropped — the
backend only validates the new password against
the strength policy; the equality check is
client-side responsibility (the form does it).
- verifyEmail → postAuthVerifyEmail. Verb shift GET → POST to
match the backend route registration
(routes_auth.go:107) and the swaggo annotation on
auth.go:VerifyEmail. Token still passed as `?token=`
query param.
The wire-shape renames pre-existed as drift between the frontend
serializer and the Go DTO field tags; the backend likely tolerated
some via lenient unmarshaling or the affected paths were rarely
exercised end-to-end before E2E CI lands. Migration to orval forces
the correct shape because the typed body is the source of truth.
authService.ts docblock rewritten to inventory the wire-shape
mappings instead of the prior "deferred" warning. Callers
(LoginPage / RegisterPage / ResetPasswordPage / etc.) untouched —
service signatures unchanged.
authService.test.ts:
- orval module mocks added for postAuthRegister / postAuthRefresh /
postAuthPasswordResetRequest / postAuthPasswordReset /
postAuthVerifyEmail (delegate to apiClient mock, same pattern as
the 4 already migrated in v1.0.8 B6).
- Wire-shape assertions updated for register
(`password_confirmation`), refreshToken (`refresh_token`),
resetPassword (`new_password`), verifyEmail (POST instead of GET).
Comments cite the backend DTO line where the field name lives.
Tests: 17/17 in authService.test.ts green. 708/709 across
features/auth + features/player + services/__tests__ (1 skipped is
the long-standing ResetPasswordPage flake unrelated to this work).
npm run typecheck clean.
Bisectable: revert this commit → queue / auth functions return to
raw apiClient pattern (with the pre-existing wire drift). Combined
with the previous commit (backend annotations) gives a clean two-step
migration narrative.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| __tests__ | ||
| app | ||
| components | ||
| config | ||
| context | ||
| docs | ||
| features | ||
| hooks | ||
| lib | ||
| locales | ||
| mocks | ||
| providers | ||
| router | ||
| schemas | ||
| services | ||
| stores | ||
| stories | ||
| styles | ||
| test | ||
| types | ||
| utils | ||
| index.css | ||
| main.tsx | ||
| setupTests.ts | ||
| vite-env.d.ts | ||