fix(e2e): PILOT-REHOME сравнивает счётчики dry-run как числа

Почему это ошибка сценария, а не подгонка под продукт: C6 не фиксирует тип
счётчиков, count(*) из PostgreSQL приходит в node-postgres строкой (bigint),
а сам сценарий уже фильтровал `Number(n) > 0` и сравнивал сумму журнала
через String(). Строгое сравнение '2' с 2 роняло проверку при верных числах
(диагностика на codex/fix-tenant-rehome d52ecf3: `expected { staff_attendance_events:
'2', …(26) } to deeply equal { staff_attendance_events: 2, …(26) }`).

Остальные проверки не ослаблены: JSON последней строкой, сумма журнала
в dry-run, перенос без флага и все сверки после переноса — как в C6.
На основе f7d3c73 [PILOT-REHOME] по-прежнему красный (скрипта нет),
run-e2e: `Tests 46 failed | 10 passed (56)`, `[run-e2e] OK`.
This commit is contained in:
grok 2026-09-26 17:19:47 +07:00
parent a6a1b5e937
commit d477dde387

View file

@ -466,8 +466,12 @@ describe('PILOT-REHOME: перенос заглушки арендатора н
const dry = runRehome(['--dry-run', '--json'], adminUrl);
expect(dry.status, `dry-run exit: ${dry.stderr}`).toBe(0);
expect(dry.report, `dry-run без JSON-отчёта: ${dry.stdout}`).not.toBeNull();
// Счётчики сравниваются как числа: count(*) из pg приходит строкой (bigint), C6 тип не фиксирует,
// а фильтр `Number(n) > 0` и сравнение суммы журнала и раньше допускали строку.
const dryTables = Object.fromEntries(
Object.entries(dry.report!.tables ?? {}).filter(([, n]) => Number(n) > 0),
Object.entries(dry.report!.tables ?? {})
.map(([table, n]) => [table, Number(n)] as const)
.filter(([, n]) => n > 0),
);
expect(dryTables).toEqual(expectedTables);
expect(String(dry.report!.ledger_amount_minor_sum)).toBe(before!.stub.ledgerSum);