4.6 KiB
4.6 KiB
1. Шов Authenticated Query
- 1.1 Добавить focused failing frontend test для protected query gating в
frontend/src/shared/api: protected query не вызывает MSW endpoint без configured session и загружается послеconfigureAuthClientс access token; плановая проверка:npm run test:run -- src/shared/api. - 1.2 Реализовать минимальный shared authenticated-query seam в
frontend/src/shared/api: subscribed auth snapshot конфигурируется существующим auth client setup, аenabledвычисляется какhasSession && callerEnabled; плановая проверка:npm run test:run -- src/shared/api. - 1.3 Проверить, что
frontend/src/shared/api/client.test.tsпо-прежнему доказывает bearer injection, refresh retry, clearing после failed refresh и исключение auth endpoints; плановая проверка:npm run test:run -- src/shared/api/client.test.ts.
2. Интерфейсы Entity Hooks
- 2.1 Refactor
useBrokerageAccounts: убратьaccessTokenargument, использовать shared authenticated-query seam и сохранить query key,staleTime: 60_000,retry: false; плановая проверка:npm run typecheck. - 2.2 Refactor
usePortfolio: оставить толькоaccountId, использовать authenticated query enablement вместе сBoolean(accountId), сохранить path params,staleTime: 30_000,retry: false; плановая проверка:npm run test:run -- src/entities/portfolio/api/usePortfolio.test.tsx. - 2.3 Refactor
useBrokerageOperations: оставитьaccountIdи query object, сохранитьbrokerageOperationsQueryParams, sorted categories, path/query params,staleTime: 30_000,retry: false; плановая проверка:npm run test:run -- src/entities/broker-operation/api/useBrokerageOperations.test.tsx. - 2.4 Refactor
useBrokerageEvents: оставить толькоaccountId, использовать authenticated query enablement вместе сBoolean(accountId), сохранить path params,staleTime: 30_000,retry: false; плановая проверка: добавить или обновить focused hook test и запуститьnpm run test:run -- src/entities/brokerage-event.
3. Call Sites И Существующие Tests
- 3.1 Обновить accounts page ViewModel, account page ViewModel, account operations page, account events page и breadcrumbs на новые domain-shaped hooks; убрать
useAuth()reads, которые существовали только для передачиaccessToken; плановая проверка: изfrontendкомандаrg "useBrokerageAccounts\\(|usePortfolio\\(|useBrokerageOperations\\(|useBrokerageEvents\\(" src/pages src/app src/entities -nпоказывает обновлённые call sites без token argument pattern. - 3.2 Обновить frontend tests и mocks, затронутые изменением hook interfaces, сохранив existing user-visible state expectations; плановая проверка:
npm run test:run -- src/pages/accounts src/pages/account src/pages/account-operations src/pages/account-events src/app/ui. - 3.3 Подтвердить, что review item закрыт без расширения scope на
useTbankConnectionViewModelили error-code consolidation; плановая проверка: изfrontendкомандаrg "usePortfolio\\([^\\n,]+,\\s*accessToken|useBrokerageAccounts\\(accessToken|useBrokerageOperations\\([^\\n]+accessToken|useBrokerageEvents\\([^\\n]+accessToken" src -nне находит matches.
4. Verification
- 4.1 Запустить frontend canonical gate после реализации; плановая проверка:
npm run verifyизfrontend. - 4.2 Запустить OpenSpec structural validation для change; плановая проверка:
openspec validate remove-frontend-hook-token-params --type change --strict --store wealth-ledger-specsизspecs. - 4.3 Запустить workspace dispatcher для change и выполнить semantic verification против Proposal, Design и completed Tasks; плановая проверка:
bash specs/scripts/verify-workspace-change.sh remove-frontend-hook-token-paramsиз workspace root плюс recorded read-through, что user-visible behavior, backend contract и out-of-scope frontend architecture work не изменились.