fix: отображать счета из data в ответе brokerage-accounts #69

Closed
opened 2026-10-13 13:49:45 +03:00 by codex-bot · 1 comment
Owner

После успешного подключения T-Bank GET /api/v1/brokerage-accounts возвращает { data: [4 счёта], meta: {...} }, но frontend трактует ответ как массив и показывает пустое состояние. Acceptance criteria: страницы списка, выбор счета, breadcrumbs и title читают подтверждённый список data; empty/error/cache states сохраняются; frontend использует актуальный публичный OpenAPI контракт без ручной правки generated types; регрессионный тест на {data,meta} и локальные проверки. Scope: frontend query owner и связанные потребители; сохранить текущие незавершённые изменения income/payout.

После успешного подключения T-Bank GET /api/v1/brokerage-accounts возвращает { data: [4 счёта], meta: {...} }, но frontend трактует ответ как массив и показывает пустое состояние. Acceptance criteria: страницы списка, выбор счета, breadcrumbs и title читают подтверждённый список data; empty/error/cache states сохраняются; frontend использует актуальный публичный OpenAPI контракт без ручной правки generated types; регрессионный тест на {data,meta} и локальные проверки. Scope: frontend query owner и связанные потребители; сохранить текущие незавершённые изменения income/payout.
Author
Owner

Уже сделано на develop — код из AC выполняется, отдельных правок не требуется.

  • Список счетов, выбор счёта, breadcrumbs и title читают подтверждённый data: useResourceQuery проецирует data/meta из envelope (src/shared/api/resource-query.ts:130), потребители — AccountsPage.vm, AccountScopeSwitch.vm, AccountBreadcrumbs.tsx, DocumentTitle.tsx.
  • empty/error/cache состояния сохранены (AccountsPage.vm), покрыты тестами страницы.
  • Актуальный контракт: живой OpenAPI бэкенда (GET /api/docs-json) структурно совпадает с src/shared/api/spec/openapi.json; npm run openapi:check зелёный, generated types не правились вручную.
  • Регрессия на {data, meta} покрыта AccountsPage.test.tsx (рендер из resource([account]), кэш {data:null} не объявляется пустым списком).

Issue был заведён от stale-чекаута (рабочее дерево стояло на ветке от коммита 15.09, где query шли через useAuthenticatedQuery с плоскими типами). Локально: typecheck, eslint, 426 тестов — зелёные. Готово, можно закрывать.

Уже сделано на `develop` — код из AC выполняется, отдельных правок не требуется. - Список счетов, выбор счёта, breadcrumbs и title читают подтверждённый `data`: `useResourceQuery` проецирует `data`/`meta` из envelope (src/shared/api/resource-query.ts:130), потребители — `AccountsPage.vm`, `AccountScopeSwitch.vm`, `AccountBreadcrumbs.tsx`, `DocumentTitle.tsx`. - empty/error/cache состояния сохранены (`AccountsPage.vm`), покрыты тестами страницы. - Актуальный контракт: живой OpenAPI бэкенда (`GET /api/docs-json`) структурно совпадает с `src/shared/api/spec/openapi.json`; `npm run openapi:check` зелёный, generated types не правились вручную. - Регрессия на `{data, meta}` покрыта `AccountsPage.test.tsx` (рендер из `resource([account])`, кэш `{data:null}` не объявляется пустым списком). Issue был заведён от stale-чекаута (рабочее дерево стояло на ветке от коммита 15.09, где query шли через `useAuthenticatedQuery` с плоскими типами). Локально: `typecheck`, `eslint`, 426 тестов — зелёные. Готово, можно закрывать.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/frontend#69