From d477dde38721a00ae4ed0c7e46107026b8775905 Mon Sep 17 00:00:00 2001 From: grok Date: Sat, 26 Sep 2026 17:19:47 +0700 Subject: [PATCH] =?UTF-8?q?fix(e2e):=20PILOT-REHOME=20=D1=81=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BD=D0=B8=D0=B2=D0=B0=D0=B5=D1=82=20=D1=81=D1=87=D1=91?= =?UTF-8?q?=D1=82=D1=87=D0=B8=D0=BA=D0=B8=20dry-run=20=D0=BA=D0=B0=D0=BA?= =?UTF-8?q?=20=D1=87=D0=B8=D1=81=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Почему это ошибка сценария, а не подгонка под продукт: 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`. --- tests/e2e/60-pilot-rehome.e2e.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/e2e/60-pilot-rehome.e2e.ts b/tests/e2e/60-pilot-rehome.e2e.ts index a0d839f..72d52ae 100644 --- a/tests/e2e/60-pilot-rehome.e2e.ts +++ b/tests/e2e/60-pilot-rehome.e2e.ts @@ -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);