test(form-kit): срез сегмента до следующего экспорта — мутант drops-radio-semantics ловится (#600)

Срез «от export function segmented до конца файла» находил type="radio" у
radioRow и choiceCards ниже, и подмена радио на чекбокс внутри самого
сегмента проходила зелёной. Срез ограничен телом функции; мутант
form-kit-segment-drops-radio-semantics снова красит тест.

Issue: #600
User-Visible: no
This commit is contained in:
Claude
2026-09-20 12:27:36 +03:00
parent bf6602bbd8
commit 6598af51d9
+7 -1
View File
@@ -141,7 +141,13 @@ test('#594 имена параметризованы, а не зашиты', ()
test('#594 сегментированный переключатель остаётся радиогруппой', () => {
const kit = readFileSync(new URL('../src/editors/form-kit.ts', import.meta.url), 'utf8');
const segment = kit.slice(kit.indexOf('export function segmented'));
// Только тело `segmented`: дальше в файле есть другие радиогруппы (radioRow,
// choiceCards), и срез «до конца файла» находил бы `type="radio"` у них,
// пропуская подмену внутри самого сегмента (мутант
// form-kit-segment-drops-radio-semantics выживал именно так).
const from = kit.indexOf('export function segmented');
const to = kit.indexOf('\nexport ', from + 1);
const segment = kit.slice(from, to > from ? to : undefined);
// Доступность здесь не украшение: сегмент заменил радиосписок, и стрелки со
// скринридером обязаны работать как раньше. Радиокнопка под капотом — это и
// есть механизм, а не пожелание.