|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m4s
CI / openapi-codegen-check (pull_request) Successful in 2m7s
Follow-up #2451 (эпик #2445, B2/B3): тот же класс — object-literal lookup по значению, пришедшему из API, без runtime-guard. Значение вне закрытого union'а (schema drift / частичный деплой) даёт `undefined`, и дальше по-разному плохо: - `BestLayoutsBlock` (DataQualityCard) — обращение `.fg`/`.bg` к undefined РОНЯЕТ рендер всей карточки качества данных; - `ForecastChart.confidenceByHorizon` — подпись уверенности для горизонта пропадает МОЛЧА, при том что прогноз для него есть; - `compare/CompareTable` и `ptica/compare/PticaCompare` — рядом с процентом остаётся «73% · » и обрыв: число выглядит недосказанным, а не неизвестным. Везде нейтральный fallback по образцу VelocityBlock/ParcelDrawer: серый + «—», намеренно НЕ семантический цвет — неизвестное качество не должно читаться ни как хорошее, ни как плохое. Фон бейджа взят из существующего `--border-soft`: список токенов закрыт (ui-tokens.md — «НЕ выдумывать новые»), нейтральной заливки в нём нет. `DataQualityCard`, `confidenceByHorizon` и `METRIC_ROWS` (ptica) экспортированы ради тестов — тем же приёмом, что уже применён к `isDeficitDegenerate`. Тесты: 12 новых в 4 файлах. Проверены на слом — снял все четыре fallback'а, упало ровно 5 проверок out-of-union, остальные 7 (известные значения, отсутствующие данные) остались зелёными. `vitest run src/components/site-finder` — 145 passed, `tsc --noEmit` чисто. Closes #2452 Refs #2445, #2451 |
||
|---|---|---|
| .. | ||
| admin | ||
| analytics | ||
| auth | ||
| concept | ||
| landing | ||
| site-finder | ||
| trade-in | ||
| ui | ||