fix: the four unit mutants of #230 have to build test-build first (#230 r1 H2)

Гейт мутаций работает в изолированном `git worktree`, где `test-build/` не
существует: юнит-гвард, идущий сразу в `node --test`, падает с
`ERR_MODULE_NOT_FOUND` ещё на чистом прогоне — то есть не проверяет ничего, а
еженедельный прогон реестра останавливается на первом же таком мутанте и не
доходит до остальных. Соседние юнит-мутанты этого не допускают: их гвард
начинается с `npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs`.
Четыре мутанта #230 теперь тоже.

Проверено штатным харнессом, а не вручную: `node scripts/mutation-gate.mjs
--id=<каждый>` — «поймано 1 из 1» для всех семи мутантов задачи, включая три
смоковых, которые и раньше работали.

Тем же дефектом страдают юнит-мутанты #220 и #229 — это чужой скоуп и предмет
[#235](https://github.com/Matysh/houseplan-card/issues/235); здесь не трогаю.

Issue: #230
User-Visible: no
This commit is contained in:
Codex
2026-08-21 16:49:33 +03:00
parent 6811cc0908
commit 6836561340
+8 -4
View File
@@ -719,7 +719,8 @@ export const MUTANTS = [
},
{
id: 'hatch-step-ignores-cell-cm',
guard: 'node --test --test-name-pattern="issue 230" test/wall-thickness.test.mjs',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
+ '&& node --test --test-name-pattern="issue 230" test/wall-thickness.test.mjs',
because: 'шаг-константа — это и есть баг #230: одна и та же стена 15 см '
+ 'получала от 0.3 до 7.8 полос в зависимости от масштаба сетки',
patches: [{
@@ -730,7 +731,8 @@ export const MUTANTS = [
},
{
id: 'hatch-step-inverted',
guard: 'node --test --test-name-pattern="issue 230" test/wall-thickness.test.mjs',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
+ '&& node --test --test-name-pattern="issue 230" test/wall-thickness.test.mjs',
because: 'множитель cell/5 вместо 5/cell — ошибка из описания issue; она не '
+ 'убирает разброс, а увеличивает его',
patches: [{
@@ -741,7 +743,8 @@ export const MUTANTS = [
},
{
id: 'hatch-step-unclamped',
guard: 'node --test --test-name-pattern="issue 230" test/wall-thickness.test.mjs',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
+ '&& node --test --test-name-pattern="issue 230" test/wall-thickness.test.mjs',
because: 'без клампа патологический cell_cm рождает паттерн, который либо '
+ 'сливается в заливку, либо не попадает в стену ни одной полосой',
patches: [{
@@ -752,7 +755,8 @@ export const MUTANTS = [
},
{
id: 'hatch-density-solid-threshold-off',
guard: 'node --test --test-name-pattern="issue 230" test/wall-thickness.test.mjs',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
+ '&& node --test --test-name-pattern="issue 230" test/wall-thickness.test.mjs',
because: 'порог по шагу на экране — единственная защита от каши на дальнем '
+ 'конце зума после того, как компенсация 1/zoom убрана',
patches: [{