test(e2e): перепроверка приёмки на обновлённых ветках исполнителей
Зачем: во время приёмки обе ветки обновили force-push (codex/fix-live-databaseea68e12→b289dd6, antigravity/fix-reject-device-shifts795bba0→1df2019, теперь наf5ac179). Вердикт по старому SHA не должен выдаваться за вердикт по новому — «на слово ничего не принимать». Что: повторный прогон стенда на новых HEAD, результат дописан в report-evidence/acceptance-*.txt, REPORT.md и NOTES. Итог тот же: fix-live-database 41 red / 13 green (K3, K4, K13 зелёные), fix-reject-device-shifts 43 red / 11 green (K13 зелёный).
This commit is contained in:
parent
33daae3593
commit
ba59a48ffd
4 changed files with 43 additions and 6 deletions
|
|
@ -174,7 +174,7 @@ CONFLICT DO NOTHING` со своим `runId` → строки/UPDATE по нес
|
||||||
|
|
||||||
Подробно — `tests/e2e/REPORT.md` и `tests/e2e/report-evidence/acceptance-*.txt`.
|
Подробно — `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 — двойное начисление) и
|
Дальше по цепочке открылись K5/N4 (196800 вместо 98400 — двойное начисление) и
|
||||||
K6/D5 (отклонение оплаченной смены: 200, начисление осталось). A4 частично: `POST /employees`
|
K6/D5 (отклонение оплаченной смены: 200, начисление осталось). A4 частично: `POST /employees`
|
||||||
больше не 500, но `month=2026-13` по-прежнему отдаёт `code=22008` с текстом.
|
больше не 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/fix-reject-device-shifts` (0 строк diff) и отличаются от 331e490 на 255/139
|
||||||
строк. Изменение поведения стоит вынести в отдельный коммит с объяснением или влить
|
строк. Изменение поведения стоит вынести в отдельный коммит с объяснением или влить
|
||||||
ветку Antigravity отдельно, иначе история смешивает темы (AGENTS.md).
|
ветку Antigravity отдельно, иначе история смешивает темы (AGENTS.md).
|
||||||
- `antigravity/fix-reject-device-shifts` (795bba0): K13/SYNC-A и K13/SYNC-B зелёные,
|
- `antigravity/fix-reject-device-shifts` (795bba0, перепроверено на 1df2019 — уже на f5ac179):
|
||||||
остальное без изменений. Ветка основана на 778ba2d, а не на 331e490.
|
K13/SYNC-A и K13/SYNC-B зелёные, остальное без изменений.
|
||||||
- Ни одна ветка не влита в основную (f5ac179), поэтому ID из `known-defects.json` не удалены.
|
- Ни одна ветка не влита в основную (f5ac179), поэтому ID из `known-defects.json` не удалены.
|
||||||
- Суммы в тестах кратны рублю: расчёт округляет строку до `rounding_unit_minor`
|
- Суммы в тестах кратны рублю: расчёт округляет строку до `rounding_unit_minor`
|
||||||
(по умолчанию 100 коп.). Если округление должно быть другим — это решение продукта, не теста.
|
(по умолчанию 100 коп.). Если округление должно быть другим — это решение продукта, не теста.
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ node scripts/test/run-e2e.mjs --no-known-defects # строго: люб
|
||||||
`tests/e2e/report-evidence/acceptance-*.txt`. Ни одна ветка не влита в основную
|
`tests/e2e/report-evidence/acceptance-*.txt`. Ни одна ветка не влита в основную
|
||||||
(`git merge-base --is-ancestor` → нет), поэтому `known-defects.json` не сокращён.
|
(`git merge-base --is-ancestor` → нет), поэтому `known-defects.json` не сокращён.
|
||||||
|
|
||||||
### `codex/fix-live-database` @ ea68e12
|
### `codex/fix-live-database` @ ea68e12, перепроверено на b289dd6
|
||||||
|
|
||||||
```text
|
```text
|
||||||
== roundtrip OK: rolledBack=11 reapplied=11
|
== 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` |
|
| 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) |
|
| 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 и K4 исправлены (подтверждено на живой PostgreSQL 17, миграции roundtrip). После влития
|
||||||
убрать `K3/N2`, `K4/N1` из `known-defects.json`. Цепочка расчёта теперь доходит до денежных дефектов:
|
убрать `K3/N2`, `K4/N1` из `known-defects.json`. Цепочка расчёта теперь доходит до денежных дефектов:
|
||||||
K5 и K6 подтверждены по существу.
|
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.
|
и совпадает с `antigravity/fix-reject-device-shifts` (0 строк); `tests/unit/sync.test.ts` — 139 и 0.
|
||||||
Изменение поведения скрыто в коммите форматирования — смешение тем (AGENTS.md).
|
Изменение поведения скрыто в коммите форматирования — смешение тем (AGENTS.md).
|
||||||
|
|
||||||
### `antigravity/fix-reject-device-shifts` @ 795bba0
|
### `antigravity/fix-reject-device-shifts` @ 795bba0, перепроверено на 1df2019
|
||||||
|
|
||||||
```text
|
```text
|
||||||
Tests 43 failed | 11 passed (54)
|
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/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` отдельным коммитом после влития (и после исправления очистки в
|
`K13/SYNC-B` отдельным коммитом после влития (и после исправления очистки в
|
||||||
`sync-rejection.test.ts`, TASK-GROK-2 §4.1).
|
`sync-rejection.test.ts`, TASK-GROK-2 §4.1).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,3 +14,14 @@ exit=1
|
||||||
| ID | было | стало | фактический вывод |
|
| ID | было | стало | фактический вывод |
|
||||||
| K13/SYNC-A | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-<ulid>","command_type":"upsert_work_session","status":"applied","result":{"id":"<ulid>","revision":1,"status" / стало: passed |
|
| K13/SYNC-A | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-<ulid>","command_type":"upsert_work_session","status":"applied","result":{"id":"<ulid>","revision":1,"status" / стало: passed |
|
||||||
| K13/SYNC-B | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-<ulid>","command_type":"upsert_timesheet_entry","status":"applied","result":{"id":"<ulid>","revision":1,"stat / стало: passed |
|
| K13/SYNC-B | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-<ulid>","command_type":"upsert_timesheet_entry","status":"applied","result":{"id":"<ulid>","revision":1,"stat / стало: passed |
|
||||||
|
|
||||||
|
# Перепроверка: ветку обновили force-push во время приёмки; новый HEAD 1df2019cb89cad69e2c86608dd3b43e18275e97c (2026-09-26 ~15:40 UTC+7)
|
||||||
|
$ cd <worktree @ 1df2019> && 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-<ulid>","command_type":"upsert_work_session","status":"applied","result":{"id":"<ulid>","revision":1,"status" / стало: passed |
|
||||||
|
| K13/SYNC-B | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-<ulid>","command_type":"upsert_timesheet_entry","status":"applied","result":{"id":"<ulid>","revision":1,"stat / стало: passed |
|
||||||
|
|
|
||||||
|
|
@ -28,3 +28,22 @@ $ node node_modules/prettier/bin/prettier.cjs --check .
|
||||||
Checking formatting...
|
Checking formatting...
|
||||||
All matched files use Prettier code style!
|
All matched files use Prettier code style!
|
||||||
# Было (основная ветка f5ac179): [warn] Code style issues found in 23 files.
|
# Было (основная ветка f5ac179): [warn] Code style issues found in 23 files.
|
||||||
|
|
||||||
|
# Перепроверка: ветку обновили force-push во время приёмки; новый HEAD b289dd6d63b8f5bcd7c03a88c07200e2e4a704bc (2026-09-26 ~15:40 UTC+7)
|
||||||
|
$ cd <worktree @ b289dd6> && 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-<ulid>","command_type":"upsert_work_session","status":"applied","result":{"id":"<ulid>","revision":1,"status" / стало: passed |
|
||||||
|
| K13/SYNC-B | RED | GREEN | было: AssertionError: HTTP 200 {"results":[{"idempotency_key":"e2e-<ulid>","command_type":"upsert_timesheet_entry","status":"applied","result":{"id":"<ulid>","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/<ulid>/verify not found","error":"Not Found","statusCode":404}: expected 404 to be 20 |
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue