После подключения и исправления списков/операций AccountPage падает при обращении к portfolio.data.positions.length: backend GET /api/v1/brokerage-accounts/{accountId}/portfolio отвечает {data: PortfolioDto|null, meta}, frontend ожидает плоский PortfolioDto.
Acceptance criteria: query portfolio читает backend-публикованный контракт; страница отображает подтверждённые позиции и суммы, data:null не выдаётся за пустой подтверждённый портфель; сохранены состояния refresh/error и cache; тесты используют реалистичные {data,meta}, соответствующие проверки проходят. Изменять только frontend; сохранить чужую незавершённую работу.
После подключения и исправления списков/операций AccountPage падает при обращении к portfolio.data.positions.length: backend GET /api/v1/brokerage-accounts/{accountId}/portfolio отвечает {data: PortfolioDto|null, meta}, frontend ожидает плоский PortfolioDto.
Acceptance criteria: query portfolio читает backend-публикованный контракт; страница отображает подтверждённые позиции и суммы, data:null не выдаётся за пустой подтверждённый портфель; сохранены состояния refresh/error и cache; тесты используют реалистичные {data,meta}, соответствующие проверки проходят. Изменять только frontend; сохранить чужую незавершённую работу.
Поведенческая часть уже на develop, добавлен недостающий регрессионный тест: PR #78.
Query portfolio читает backend-опубликованный контракт: useResourceQuery проецирует data/meta (src/shared/api/resource-query.ts:130); живой OpenAPI (GET /api/docs-json) совпадает со snapshot, openapi:check зелёный.
data:null не выдаётся за пустой подтверждённый портфель: AccountPage.vm:40 возвращает loading/error, portfolio.data.positions.length достижимо только после проверки.
refresh/error/cache состояния сохранены; тесты используют реалистичные {data, meta} из src/test/resource.ts.
В PR #78 добавлен тест: resource(null) по portfolio → загрузка, «Портфель пока пуст» не показывается, кэш остаётся {data:null}.
Контекст: issue заведён от stale-чекаута (дерево на ветке от 15.09, там envelope не проецировался).
Поведенческая часть уже на `develop`, добавлен недостающий регрессионный тест: PR #78.
- Query portfolio читает backend-опубликованный контракт: `useResourceQuery` проецирует `data`/`meta` (src/shared/api/resource-query.ts:130); живой OpenAPI (`GET /api/docs-json`) совпадает со snapshot, `openapi:check` зелёный.
- `data:null` не выдаётся за пустой подтверждённый портфель: `AccountPage.vm:40` возвращает loading/error, `portfolio.data.positions.length` достижимо только после проверки.
- refresh/error/cache состояния сохранены; тесты используют реалистичные `{data, meta}` из `src/test/resource.ts`.
- В PR #78 добавлен тест: `resource(null)` по portfolio → загрузка, «Портфель пока пуст» не показывается, кэш остаётся `{data:null}`.
Контекст: issue заведён от stale-чекаута (дерево на ветке от 15.09, там envelope не проецировался).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
После подключения и исправления списков/операций AccountPage падает при обращении к portfolio.data.positions.length: backend GET /api/v1/brokerage-accounts/{accountId}/portfolio отвечает {data: PortfolioDto|null, meta}, frontend ожидает плоский PortfolioDto.
Acceptance criteria: query portfolio читает backend-публикованный контракт; страница отображает подтверждённые позиции и суммы, data:null не выдаётся за пустой подтверждённый портфель; сохранены состояния refresh/error и cache; тесты используют реалистичные {data,meta}, соответствующие проверки проходят. Изменять только frontend; сохранить чужую незавершённую работу.
Поведенческая часть уже на
develop, добавлен недостающий регрессионный тест: PR #78.useResourceQueryпроецируетdata/meta(src/shared/api/resource-query.ts:130); живой OpenAPI (GET /api/docs-json) совпадает со snapshot,openapi:checkзелёный.data:nullне выдаётся за пустой подтверждённый портфель:AccountPage.vm:40возвращает loading/error,portfolio.data.positions.lengthдостижимо только после проверки.{data, meta}изsrc/test/resource.ts.resource(null)по portfolio → загрузка, «Портфель пока пуст» не показывается, кэш остаётся{data:null}.Контекст: issue заведён от stale-чекаута (дерево на ветке от 15.09, там envelope не проецировался).