chore(tradein/frontend): удалить остаточный слой фикстур (#2755) #2785

Merged
bot-backend merged 2 commits from chore/2755-fixture-layer into main 2026-08-07 10:00:49 +00:00
Collaborator

Что сделано

Остаточный слой фикстур /trade-in/v2 после #2747. Все четыре пункта issue закрыты одним PR.

п. Диагноз Что сделано
1 мёртвый код 18 числовых экспортов, ноль потребителей → удалены; fixtures.tsui-config.ts (осталось 5 констант UI-хрома, 62 строки вместо 671)
2 комментарии про исчезнувший контракт шапка mappers.ts + обоснование опциональности переписаны; плюс 4 обоснования, ссылавшихся на storybook / «ещё не подключённую страницу»
3 мёртвая ветка — починен КОРЕНЬ поля AdRowData/DealRowData стали обязательными → недостижимы не только «Росреестр ↗», но и ещё 4 подстановки того же класса
4 мёртвый CSS .placeholderPanel ×3, ноль ссылок

Проверка потребителей (до удаления)

Для каждого экспорта: импорт, реэкспорт, строковый/динамический доступ, тесты, .design-sync.
.design-sync/previews берут данные из своего _fixtures.tsapp/ui-preview/estimate/fixture — не отсюда.

Не удалено, потому что живое:

  • sources мёртв, но рядом buildSources в mappers.ts считает то же самое из API — удалён только фикстур, живой код не тронут.
  • LOCATION_FIXTURE в LocationDrawer оставлен: это не выдуманные числа, а честное состояние загрузки (сплошные прочерки).

Выдуманный человек убран: user («Андрей Петров» / «Брусника» / почта) вместе с типом User, у которого он был единственным потребителем. У TopNav свой нейтральный «Гость».

Замер ДО / ПОСЛЕ

ДО ПОСЛЕ
npm test 13 passed (3 файла) 13 passed (3 файла)
tsc --noEmit чисто чисто
next lint 2 предупреждения (предсущ.) те же 2
next build зелёный, /v2 48.4 kB зелёный, /v2 48.4 kB
check:mera-public-isolation OK OK

Размер /v2 не изменился — фикстуры и раньше вытряхивались tree-shaking'ом. Ещё одно независимое подтверждение нуля потребителей.

Удалено: −761 / +127 строк. Из них 609 — сам слой фикстур, 25 — CSS. (2 строки в CSS — переформат prettier'а в несвязанном месте, требование pre-commit hook.)

13 проверок #2769 ещё умеют краснеть

Мало показать, что они зелёные — тест без данных обычно не краснеет, а тихо перестаёт проверять. Ломал продуктовый код по одному файлу:

поломка падений
mapHistory возвращает пустую структуру 2
SaleShareList рендерит null 5
ветка error.status === 429 в LoginPage 1

Все три файла отвечают. После восстановления — снова 13/13.

Test plan

  • npm test — 13/13 до и после
  • мутационная проверка: каждый из 3 файлов краснеет
  • npm run type-check, npm run lint, npm run build
  • npm run check:mera-public-isolation
  • прод-верификация /trade-in/v2 после деплоя: скриншот, страница показывает то же

Refs #2755

## Что сделано Остаточный слой фикстур `/trade-in/v2` после #2747. Все четыре пункта issue закрыты одним PR. | п. | Диагноз | Что сделано | |---|---|---| | 1 | мёртвый код | 18 числовых экспортов, ноль потребителей → удалены; `fixtures.ts` → `ui-config.ts` (осталось 5 констант UI-хрома, 62 строки вместо 671) | | 2 | комментарии про исчезнувший контракт | шапка `mappers.ts` + обоснование опциональности переписаны; плюс 4 обоснования, ссылавшихся на storybook / «ещё не подключённую страницу» | | 3 | мёртвая ветка — починен КОРЕНЬ | поля `AdRowData`/`DealRowData` стали обязательными → недостижимы не только «Росреестр ↗», но и ещё 4 подстановки того же класса | | 4 | мёртвый CSS | `.placeholderPanel` ×3, ноль ссылок | ## Проверка потребителей (до удаления) Для каждого экспорта: импорт, реэкспорт, строковый/динамический доступ, тесты, `.design-sync`. `.design-sync/previews` берут данные из своего `_fixtures.ts` → `app/ui-preview/estimate/fixture` — не отсюда. **Не удалено, потому что живое:** - `sources` мёртв, но рядом `buildSources` в `mappers.ts` считает то же самое из API — удалён только фикстур, живой код не тронут. - `LOCATION_FIXTURE` в `LocationDrawer` оставлен: это не выдуманные числа, а честное состояние загрузки (сплошные прочерки). **Выдуманный человек убран:** `user` («Андрей Петров» / «Брусника» / почта) вместе с типом `User`, у которого он был единственным потребителем. У `TopNav` свой нейтральный «Гость». ## Замер ДО / ПОСЛЕ | | ДО | ПОСЛЕ | |---|---|---| | `npm test` | 13 passed (3 файла) | **13 passed (3 файла)** | | `tsc --noEmit` | чисто | чисто | | `next lint` | 2 предупреждения (предсущ.) | те же 2 | | `next build` | зелёный, `/v2` 48.4 kB | зелёный, `/v2` **48.4 kB** | | `check:mera-public-isolation` | OK | OK | Размер `/v2` не изменился — фикстуры и раньше вытряхивались tree-shaking'ом. Ещё одно независимое подтверждение нуля потребителей. Удалено: **−761 / +127** строк. Из них 609 — сам слой фикстур, 25 — CSS. (2 строки в CSS — переформат prettier'а в несвязанном месте, требование pre-commit hook.) ## 13 проверок #2769 ещё умеют краснеть Мало показать, что они зелёные — тест без данных обычно не краснеет, а тихо перестаёт проверять. Ломал продуктовый код по одному файлу: | поломка | падений | |---|---| | `mapHistory` возвращает пустую структуру | 2 | | `SaleShareList` рендерит `null` | 5 | | ветка `error.status === 429` в `LoginPage` | 1 | Все три файла отвечают. После восстановления — снова 13/13. ## Test plan - [x] `npm test` — 13/13 до и после - [x] мутационная проверка: каждый из 3 файлов краснеет - [x] `npm run type-check`, `npm run lint`, `npm run build` - [x] `npm run check:mera-public-isolation` - [ ] прод-верификация `/trade-in/v2` после деплоя: скриншот, страница показывает то же Refs #2755
bot-backend added 1 commit 2026-08-07 09:25:30 +00:00
chore(tradein/frontend): удалить остаточный слой фикстур и комментарии про исчезнувший контракт (#2755)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 11s
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 / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m57s
CI / frontend-tests (pull_request) Successful in 2m2s
CI / openapi-codegen-check (pull_request) Successful in 2m56s
3f0751f0b6
После #2747 фикстуры дизайн-макета перестали быть значением по умолчанию, но
сам слой остался: 671 строка выдуманных цен, сделок и аналитики, из которых
живыми были пять статических констант UI-хрома.

п.1 — мёртвые числовые экспорты. Проверено на потребителей: импорт, реэкспорт,
строковый/динамический доступ, тесты, .design-sync (previews берут данные из
своего `_fixtures.ts` -> `app/ui-preview/estimate/fixture`, не отсюда). Ноль у
восемнадцати экспортов. `fixtures.ts` -> `ui-config.ts`: остались dropdownOptions,
navLabels, overlayTitles, overlayNums, version. Имя файла было той же неправдой,
что и комментарии ниже. Экспорт `user` («Андрей Петров» / «Брусника» / почта)
осиротел ещё до #2747 — у TopNav свой нейтральный «Гость» — удалён вместе с
типом `User`, у которого он был единственным потребителем.

НЕ удалено, потому что живое: `sources` был мёртв, но рядом `buildSources` в
mappers.ts считает то же самое из API — удалён только фикстур. `LOCATION_FIXTURE`
в LocationDrawer оставлен: это не выдуманные числа, а честное состояние загрузки
(сплошные прочерки).

п.2 — шапка mappers.ts обещала «fixtures stay as the prop DEFAULT»; после #2747
это прямая неправда. Переписаны и она, и обоснование опциональности полей
AdRowData/DealRowData. Заодно ещё четыре обоснования, ссылавшиеся на storybook и
«ещё не подключённую» страницу: ни того, ни другого не существует.

п.3 — ветка `r.url === undefined` рисовала некликабельную кнопку-ссылку
«Росреестр ↗». Корень не в ветке, а в типе: поля были опциональными ради
фикстур, и это же породило ещё четыре недостижимых подстановки —
`?? "Avito"`, `?? "Росреестр"`, `?? "по улице"`, два `?? "—"`. Единственный
производитель этих строк — mapSources — заполняет все поля всегда, поэтому
поля сделаны обязательными: отсутствующее значение теперь ошибка компиляции,
а не выдуманный бренд на экране. Строка без ссылки рисует прочерк.

п.4 — три правила `.placeholderPanel` от удалённого в #2747 компонента, ноль
ссылок в разметке.

Замер: -759 / +125 строк. 13 проверок поведения (#2769) зелёные до и после;
проверено, что они ещё умеют краснеть — поломка mapHistory даёт 2 падения,
SaleShareList 5, ветки 429 в LoginPage 1. tsc чисто, next build зелёный,
/v2 те же 48.4 kB (фикстуры и раньше вытряхивались tree-shaking'ом — ещё одно
подтверждение нуля потребителей), eslint те же два предсуществующих
предупреждения.

Refs #2755
Light1YT added 1 commit 2026-08-07 09:48:07 +00:00
test(tradein/frontend): колонка ссылки в «05 РЫНОК» — прочерк, а не кнопка-обманка (#2755)
All checks were successful
CI / changes (pull_request) Successful in 15s
CI Trade-In / changes (pull_request) Successful in 15s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m53s
CI / frontend-tests (pull_request) Successful in 2m4s
CI / openapi-codegen-check (pull_request) Successful in 3m19s
fd1affca8b
Проверка на удалённую в предыдущем коммите ветку. Она была недостижима, но
выглядела как рабочий элемент интерфейса — некликабельный <span>, стилизованный
под кнопку-ссылку «Росреестр ↗». Без проверки ничто не мешает ей вернуться:
достаточно снова сделать поле опциональным.

Три утверждения через настоящий mapSources: есть URL — ссылка именно на него;
URL нет — прочерк и НИ ОДНОЙ ссылки; javascript:-схема отбрасывается safeUrl,
и строка тоже получает прочерк, а не кнопку.

Проверено, что тест краснеет: возврат «Росреестр ↗» на место прочерка роняет
2 утверждения из 3.

Refs #2755
bot-backend merged commit 9de690ad4f into main 2026-08-07 10:00:49 +00:00
bot-backend deleted branch chore/2755-fixture-layer 2026-08-07 10:00:50 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2785
No description provided.