Набор контролов был поднят из редактора боковой панели в #594, но сама панель
осталась на своей копии тех же правил. Две копии расходятся молча: правка в
наборе не доедет до панели, и наоборот.
Просто вызвать `formKitCss` из панели нельзя. Общие правила в её листе не идут
подряд: между карточкой-группой и обводкой фокуса стоит сетка `.summary-general-grid`,
между фокусом и выключенным состоянием — `button { font: inherit }`, между ним и
рядом-переключателем — `svg`. Вставить один общий кусок значило бы переставить её
объявления, а перестановка правил равной специфичности — уже не подстановка:
проверять пришлось бы каждое правило по отдельности.
Поэтому генератор разрезан на пять именованных фрагментов — карточка-группа,
обводка фокуса, выключенное состояние, ряд-переключатель, подпись ряда, — и
панель подставляет каждый на своё место. `formKitCss` остаётся их композицией,
чтобы у диалогов не появилось пяти вызовов вместо одного.
Доказательство вместо обещания. У настроек панели нет ни одного golden-кадра: в
матрице нет сцены `dialog: 'summary'`, и «панель не изменилась» показать
пикселями нечем. Замена эталону — побайтовое сравнение собранного листа с
замороженным снимком с `origin/dev`:
длина было 14585 стало 14585 — ПОБАЙТОВО СОВПАЛО
Две находки ревью ТЗ закрыты тестами, а не формулировками:
- проверка «копии не осталось» ловила один фрагмент из пяти (`min-height: 54px`
встречается только в ряду-переключателе). Теперь цикл по всем пяти текстам;
проба — фрагмент карточки-группы, оставленный в комментарии, — краснит именно
этот цикл, а прежняя проверка была бы зелёной;
- «выход `formKitCss` остаётся байт в байт» опиралось на тесты, сравнивающие
подстроки и счётчики. Добавлены две фикстуры с полным текстом обеих форм листа
диалогов — с рядом-переключателем и без. Форма с переключателем сегодня не
используется никем, и её расхождение не поймал бы никто до первого потребителя.
Три замороженные фикстуры — осознанный долг: они удаляются на том шаге эпика,
который законно меняет вид панели. Записано рядом с фикстурой.
Issue: #597
User-Visible: no