codex/broker-dashboard-redesign #49
@ -65,8 +65,8 @@
|
|||||||
- [ ] Обновить `BrokerDashboardEventsCard`: `thead`, двухстрочный инструмент, type badges, semantic amount colors, status badges.
|
- [ ] Обновить `BrokerDashboardEventsCard`: `thead`, двухстрочный инструмент, type badges, semantic amount colors, status badges.
|
||||||
- [ ] Обновить `BrokerDashboardIncomeCard`: `thead`, двухстрочный инструмент, type badges, semantic amount colors.
|
- [ ] Обновить `BrokerDashboardIncomeCard`: `thead`, двухстрочный инструмент, type badges, semantic amount colors.
|
||||||
- [ ] Обновить `BrokerDashboardTableSkeleton`: общий skeleton-паттерн для событий и доходов с корректной геометрией колонок.
|
- [ ] Обновить `BrokerDashboardTableSkeleton`: общий skeleton-паттерн для событий и доходов с корректной геометрией колонок.
|
||||||
- [ ] Обновить `BrokerDashboardAnalyticsCard`: `₽` для RUB и positive/negative tone карточек.
|
- [x] Обновить `BrokerDashboardAnalyticsCard`: `₽` для RUB и positive/negative tone карточек.
|
||||||
- [ ] Обновить component tests dashboard под HTML parity.
|
- [x] Обновить component tests dashboard под HTML parity (analytics tones).
|
||||||
- [ ] Проверить, что блок `Доходы` не расширяет backend/API и остаётся в рамках текущих income-типов.
|
- [ ] Проверить, что блок `Доходы` не расширяет backend/API и остаётся в рамках текущих income-типов.
|
||||||
- [ ] Проверить desktop layout `/broker/2084014113` против `docs/research/2026-06-27-broker-account-redesign.html`.
|
- [ ] Проверить desktop layout `/broker/2084014113` против `docs/research/2026-06-27-broker-account-redesign.html`.
|
||||||
- [ ] Проверить mobile layout `/broker/2084014113` на viewport `390x844` против `docs/research/2026-06-27-broker-account-redesign.html`.
|
- [ ] Проверить mobile layout `/broker/2084014113` на viewport `390x844` против `docs/research/2026-06-27-broker-account-redesign.html`.
|
||||||
@ -83,11 +83,48 @@
|
|||||||
|
|
||||||
## Definition of Done для HTML parity
|
## Definition of Done для HTML parity
|
||||||
|
|
||||||
- [ ] `rtk npm run test:frontend -- --run src/widgets/broker-dashboard` проходит.
|
- [x] `rtk npm run test:frontend -- --run src/widgets/broker-dashboard` проходит. (49/49)
|
||||||
- [ ] `rtk npm run test:frontend` проходит после HTML parity изменений.
|
- [x] `rtk npm run test:frontend` проходит после HTML parity изменений. (175/175)
|
||||||
- [ ] `rtk npm run lint -w apps/frontend` проходит после HTML parity изменений.
|
- [x] `rtk npm run lint -w apps/frontend` проходит после HTML parity изменений.
|
||||||
- [ ] `rtk npm run build:frontend` проходит после HTML parity изменений.
|
- [x] `rtk npm run build:frontend` проходит после HTML parity изменений.
|
||||||
- [ ] На `/broker/2084014113` заголовки карточек, toolbar таблиц, бейджи типов, подписи инструментов,
|
- [ ] На `/broker/2084014113` заголовки карточек, toolbar таблиц, бейджи типов, подписи инструментов,
|
||||||
цвета сумм, analytics colors и skeleton визуально соответствуют `docs/research/2026-06-27-broker-account-redesign.html`.
|
цвета сумм, analytics colors и skeleton визуально соответствуют `docs/research/2026-06-27-broker-account-redesign.html`.
|
||||||
|
Проверено только по тестам и code-to-spec mapping внизу файла — live dev server не запускался
|
||||||
|
в этой итерации (нет backend/auth в среде). Необходима ручная проверка пользователем.
|
||||||
- [ ] Нет общего горизонтального overflow на mobile; горизонтальный scroll допускается только внутри таблиц.
|
- [ ] Нет общего горизонтального overflow на mobile; горизонтальный scroll допускается только внутри таблиц.
|
||||||
- [ ] `docs/features/broker-dashboard-redesign/tasks.md` обновлён по факту выполнения.
|
Требует live dev server + ручной проверки на viewport `390x844`.
|
||||||
|
- [x] `docs/features/broker-dashboard-redesign/tasks.md` обновлён по факту выполнения.
|
||||||
|
|
||||||
|
### Code-to-spec mapping для analytics (HTML parity)
|
||||||
|
|
||||||
|
`BrokerDashboardAnalyticsCard.tsx` (`apps/frontend/src/widgets/broker-dashboard/ui/`) против
|
||||||
|
HTML-эталона (`docs/research/2026-06-27-broker-account-redesign.html:1145-1158`):
|
||||||
|
|
||||||
|
| HTML reference element | React-компонент / data-testid | Спецификация §6 (spec.md:165-180) |
|
||||||
|
|------------------------|------------------------------------------------------------|----------------------------------------------------------------------|
|
||||||
|
| `<section aria-labelledby="analytics-title">` | `BrokerDashboardCard` с `ariaLabel="Аналитика доходности"` | Секция с заголовком, доступная по aria-label |
|
||||||
|
| `<h2>Аналитика доходности</h2>` | Заголовок карточки | Компактный card heading (§2) |
|
||||||
|
| `.analytics-item.positive .analytics-value` | `data-testid="dashboard-analytics-totalDeposits"` (tone `positive`) | Пополнения — positive (§6, AC `Блок Аналитика доходности`) |
|
||||||
|
| `.analytics-item.negative .analytics-value` для Выводы | `data-testid="dashboard-analytics-totalWithdrawn"` (tone `negative`, префикс `−`) | Выводы — negative, всегда со знаком `−` (§6) |
|
||||||
|
| `.analytics-item.negative .analytics-value` для Нетто (если нетто<0) | `data-testid="dashboard-analytics-netInvested"` (tone `negative` при `value<0`) | Нетто — sign-based (§6) |
|
||||||
|
| `.analytics-item.positive .analytics-value` для Дивиденды/Купоны/Всего получено | `data-testid="dashboard-analytics-totalDividends"`, `…-totalCoupons`, `…-totalReceived` | Positive если `value > 0`, neutral если `value === 0` (§6) |
|
||||||
|
| `113 773,03 ₽` (валюта) | `formatDashboardCurrency` через `shared/lib/formatters` | RUB отображается как `₽` (AC, §2) |
|
||||||
|
|
||||||
|
Тесты в `BrokerDashboard.test.tsx`:
|
||||||
|
|
||||||
|
- `renders analytics card with the ₽ symbol and no "RUB" code` — подтверждает замену `RUB` на `₽`.
|
||||||
|
- `applies positive, negative and neutral tones to analytics values` — подтверждает tone-атрибуты
|
||||||
|
для каждого поля с разнообразными значениями (`totalDeposits: 1000`, `totalWithdrawn: 250`,
|
||||||
|
`netInvested: -150`, `totalDividends: 75`, `totalCoupons: 0`, `totalReceived: 90`).
|
||||||
|
|
||||||
|
### Что НЕ было проверено в этой итерации
|
||||||
|
|
||||||
|
- Реальный визуальный рендеринг `/broker/2084014113` на desktop и `390x844` mobile.
|
||||||
|
Требуется ручная проверка пользователем с поднятым backend (нужны реальные auth и T-Bank/MOEX
|
||||||
|
прокси). Dev server не запускался.
|
||||||
|
- Поведение отсутствующего/ошибочного analytics под live-нагрузкой. Логика в карточке покрыта
|
||||||
|
тестами, но проверка UX-сообщений и skeleton-states в браузере не делалась.
|
||||||
|
- Реальный viewport на `390x844` для подтверждения отсутствия общего горизонтального overflow.
|
||||||
|
Геометрия таблиц уже переключена на внутренний `overflowX: 'auto'` (`BrokerDashboardEventsCard.tsx:176`,
|
||||||
|
`BrokerDashboardIncomeCard.tsx`), но фактическая вёрстка в браузере не сверялась с эталоном.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user