diff --git a/tests/e2e/NOTES-FOR-EXECUTORS.md b/tests/e2e/NOTES-FOR-EXECUTORS.md index 58820a2..10b1a46 100644 --- a/tests/e2e/NOTES-FOR-EXECUTORS.md +++ b/tests/e2e/NOTES-FOR-EXECUTORS.md @@ -174,7 +174,7 @@ CONFLICT DO NOTHING` со своим `runId` → строки/UPDATE по нес Подробно — `tests/e2e/REPORT.md` и `tests/e2e/report-evidence/acceptance-*.txt`. -- `codex/fix-live-database` (ea68e12): K3/N2 и K4/N1 зелёные на живой PostgreSQL 17. +- `codex/fix-live-database` (ea68e12, перепроверено на b289dd6): K3/N2 и K4/N1 зелёные на живой PostgreSQL 17. Дальше по цепочке открылись K5/N4 (196800 вместо 98400 — двойное начисление) и K6/D5 (отклонение оплаченной смены: 200, начисление осталось). A4 частично: `POST /employees` больше не 500, но `month=2026-13` по-прежнему отдаёт `code=22008` с текстом. @@ -184,8 +184,8 @@ CONFLICT DO NOTHING` со своим `runId` → строки/UPDATE по нес `antigravity/fix-reject-device-shifts` (0 строк diff) и отличаются от 331e490 на 255/139 строк. Изменение поведения стоит вынести в отдельный коммит с объяснением или влить ветку Antigravity отдельно, иначе история смешивает темы (AGENTS.md). -- `antigravity/fix-reject-device-shifts` (795bba0): K13/SYNC-A и K13/SYNC-B зелёные, - остальное без изменений. Ветка основана на 778ba2d, а не на 331e490. +- `antigravity/fix-reject-device-shifts` (795bba0, перепроверено на 1df2019 — уже на f5ac179): + K13/SYNC-A и K13/SYNC-B зелёные, остальное без изменений. - Ни одна ветка не влита в основную (f5ac179), поэтому ID из `known-defects.json` не удалены. - Суммы в тестах кратны рублю: расчёт округляет строку до `rounding_unit_minor` (по умолчанию 100 коп.). Если округление должно быть другим — это решение продукта, не теста. diff --git a/tests/e2e/REPORT.md b/tests/e2e/REPORT.md index 6a2ae00..d2e8f07 100644 --- a/tests/e2e/REPORT.md +++ b/tests/e2e/REPORT.md @@ -109,7 +109,7 @@ node scripts/test/run-e2e.mjs --no-known-defects # строго: люб `tests/e2e/report-evidence/acceptance-*.txt`. Ни одна ветка не влита в основную (`git merge-base --is-ancestor` → нет), поэтому `known-defects.json` не сокращён. -### `codex/fix-live-database` @ ea68e12 +### `codex/fix-live-database` @ ea68e12, перепроверено на b289dd6 ```text == roundtrip OK: rolledBack=11 reapplied=11 @@ -132,6 +132,10 @@ node scripts/test/run-e2e.mjs --no-known-defects # строго: люб | A4 | RED | RED | было: 2 утечки; стало: 1 — `POST /payroll/calculate month=2026-13` → `code=22008` | | F14 | RED | GREEN | `prettier --check .` → `All matched files use Prettier code style!` (без оверлея evidence) | +Ветку обновили force-push во время приёмки (`ea68e12` → `b289dd6`, изменён только +`tests/integration/live-postgres-remediation.test.ts`); повторный прогон на `b289dd6` дал те же +41 red / 13 green и ту же таблицу. + Вердикт: K3 и K4 исправлены (подтверждено на живой PostgreSQL 17, миграции roundtrip). После влития убрать `K3/N2`, `K4/N1` из `known-defects.json`. Цепочка расчёта теперь доходит до денежных дефектов: K5 и K6 подтверждены по существу. @@ -158,7 +162,7 @@ All matched files use Prettier code style! и совпадает с `antigravity/fix-reject-device-shifts` (0 строк); `tests/unit/sync.test.ts` — 139 и 0. Изменение поведения скрыто в коммите форматирования — смешение тем (AGENTS.md). -### `antigravity/fix-reject-device-shifts` @ 795bba0 +### `antigravity/fix-reject-device-shifts` @ 795bba0, перепроверено на 1df2019 ```text Tests 43 failed | 11 passed (54) @@ -172,7 +176,10 @@ All matched files use Prettier code style! | K13/SYNC-B | RED | GREEN | было: `upsert_timesheet_entry → applied`; стало: passed | | остальные | — | — | других отличий нет | -Вердикт: K13 исправлен. Ветка основана на `778ba2d`, не на `331e490`. Убрать `K13/SYNC-A`, +Ветку перебазировали на `f5ac179` во время приёмки (`795bba0` → `1df2019`); повторный прогон +на `1df2019`: те же 43 red / 11 green, отличия только K13/SYNC-A/B. + +Вердикт: K13 исправлен. Убрать `K13/SYNC-A`, `K13/SYNC-B` отдельным коммитом после влития (и после исправления очистки в `sync-rejection.test.ts`, TASK-GROK-2 §4.1). diff --git a/tests/e2e/report-evidence/acceptance-antigravity-fix-reject-device-shifts.txt b/tests/e2e/report-evidence/acceptance-antigravity-fix-reject-device-shifts.txt index 14ba662..6c5b90c 100644 --- a/tests/e2e/report-evidence/acceptance-antigravity-fix-reject-device-shifts.txt +++ b/tests/e2e/report-evidence/acceptance-antigravity-fix-reject-device-shifts.txt @@ -14,3 +14,14 @@ exit=1 | ID | было | стало | фактический вывод | | K13/SYNC-A | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-","command_type":"upsert_work_session","status":"applied","result":{"id":"","revision":1,"status" / стало: passed | | K13/SYNC-B | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-","command_type":"upsert_timesheet_entry","status":"applied","result":{"id":"","revision":1,"stat / стало: passed | + +# Перепроверка: ветку обновили force-push во время приёмки; новый HEAD 1df2019cb89cad69e2c86608dd3b43e18275e97c (2026-09-26 ~15:40 UTC+7) +$ cd && E2E_MIGRATIONS=roundtrip E2E_DATABASE_NAME=krona_staff_acc node scripts/test/run-e2e.mjs +== roundtrip OK: rolledBack=11 reapplied=11 + Tests 43 failed | 11 passed (54) +| K13/SYNC-A | GREEN | 1/1 | зелёный — ИСПРАВЛЕН, уберите из known-defects.json | +| K13/SYNC-B | GREEN | 1/1 | зелёный — ИСПРАВЛЕН, уберите из known-defects.json | +exit=1 +| ID | было | стало | фактический вывод | +| K13/SYNC-A | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-","command_type":"upsert_work_session","status":"applied","result":{"id":"","revision":1,"status" / стало: passed | +| K13/SYNC-B | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-","command_type":"upsert_timesheet_entry","status":"applied","result":{"id":"","revision":1,"stat / стало: passed | diff --git a/tests/e2e/report-evidence/acceptance-codex-fix-live-database.txt b/tests/e2e/report-evidence/acceptance-codex-fix-live-database.txt index 9673dfa..952cbe8 100644 --- a/tests/e2e/report-evidence/acceptance-codex-fix-live-database.txt +++ b/tests/e2e/report-evidence/acceptance-codex-fix-live-database.txt @@ -28,3 +28,22 @@ $ node node_modules/prettier/bin/prettier.cjs --check . Checking formatting... All matched files use Prettier code style! # Было (основная ветка f5ac179): [warn] Code style issues found in 23 files. + +# Перепроверка: ветку обновили force-push во время приёмки; новый HEAD b289dd6d63b8f5bcd7c03a88c07200e2e4a704bc (2026-09-26 ~15:40 UTC+7) +$ cd && E2E_MIGRATIONS=roundtrip E2E_DATABASE_NAME=krona_staff_acc node scripts/test/run-e2e.mjs +== roundtrip OK: rolledBack=11 reapplied=11 + Tests 41 failed | 13 passed (54) +| K13/SYNC-A | GREEN | 1/1 | зелёный — ИСПРАВЛЕН, уберите из known-defects.json | +| K13/SYNC-B | GREEN | 1/1 | зелёный — ИСПРАВЛЕН, уберите из known-defects.json | +| K3/N2 | GREEN | 1/1 | зелёный — ИСПРАВЛЕН, уберите из known-defects.json | +| K4/N1 | GREEN | 1/1 | зелёный — ИСПРАВЛЕН, уберите из known-defects.json | +exit=1 +| ID | было | стало | фактический вывод | +| A4 | RED | RED | было: AssertionError: тела 500 с деталями PostgreSQL: expected [ …(2) ] to deeply equal [] / стало: AssertionError: тела 500 с деталями PostgreSQL: expected [ { …(2) } ] to deeply equal [] | +| K13/SYNC-A | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-","command_type":"upsert_work_session","status":"applied","result":{"id":"","revision":1,"status" / стало: passed | +| K13/SYNC-B | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-","command_type":"upsert_timesheet_entry","status":"applied","result":{"id":"","revision":1,"stat / стало: passed | +| K3/N2 | RED | GREEN | было: AssertionError: подтверждение смены: HTTP 500 {"statusCode":500,"code":"23502","error":"Internal Server Error","message":"null value in column \"occurred_at\" of relation / стало: passed | +| K4/N1 | RED | GREEN | было: AssertionError: HTTP 500 {"statusCode":500,"code":"42P08","error":"Internal Server Error","message":"inconsistent types deduced for parameter $2"}: expected 500 to be 201 / стало: passed | +| K5/N4 | RED | RED | было: AssertionError: подтверждение смены (предусловие, см. N2): HTTP 500 {"statusCode":500,"code":"23502","error":"Internal Server Error","message":"null value in column \"occ / стало: AssertionError: смена должна быть начислена ровно один раз: expected 196800n to be 98400n // Object.is equality | +| K6/D5 | RED | RED | было: AssertionError: подтверждение смены (предусловие; падает, пока открыт K3): HTTP 500 {"statusCode":500,"code":"23502","error":"Internal Server Error","message":"null value / стало: AssertionError: после отклонения оплаченной смены должно быть сторно: итог начислений 0: expected 98400n to be 0n // Object.is equality | +| K8/D1 | RED | RED | было: AssertionError: подтверждение смены (предусловие; падает, пока открыт K3): HTTP 500 {"statusCode":500,"code":"23502","error":"Internal Server Error","message":"null value / стало: AssertionError: C4 verify: HTTP 404 {"message":"Route GET:/api/v1/staff/payroll/runs//verify not found","error":"Not Found","statusCode":404}: expected 404 to be 20 |