mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
refactor(styles): редактор панели переезжает на общий набор контролов
Набор контролов был поднят из редактора боковой панели в #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
This commit is contained in:
@@ -10242,6 +10242,19 @@ const MUTANT_DEFINITIONS = [
|
||||
replace: 'export const MOVED_BLOCK_MIN = 1;',
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'form-kit-fragment-drifts-from-panel',
|
||||
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
|
||||
+ '&& node --test --test-name-pattern="#597" test/form-kit.test.mjs',
|
||||
because: '#597: панель подставляет фрагменты набора, и у её настроек нет ни одного '
|
||||
+ 'golden-кадра — расхождение показать пикселями нечем. Если правка фрагмента не '
|
||||
+ 'краснит побайтовое сравнение, набор может молча увести вид панели',
|
||||
patches: [{
|
||||
file: 'src/styles/form-kit.styles.ts',
|
||||
find: ' return ` ${cards.join(\',\\n \')} {\n min-width: 0;\n padding: 14px;',
|
||||
replace: ' return ` ${cards.join(\',\\n \')} {\n min-width: 0;\n padding: 13px;',
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'form-kit-writes-to-a-neighbour-key',
|
||||
guard: 'node demo/smoke_room_settings.mjs',
|
||||
|
||||
Reference in New Issue
Block a user