[Test] Разобрать оставшиеся delay в tbank-operations-sync по одному кейсу с мутантами #104

Closed
opened 2026-10-15 22:19:09 +03:00 by codex-bot · 1 comment
Owner

Остаток из #63 (закрыта частично, см. её комментарий).

Проблема

В test/tbank-operations-sync.e2e-spec.ts около 14 await delay(N) перед конкурентными действиями. Механическая замена на сигнал опасна: мутант на кейсе publishes the forced visible period before unrelated pending history показал, что без delay тест падает. Порядок history → screen зависит от записи в БД, а не от старта upstream. Замена на барьер состояния state(running) изменила результат теста, поэтому откатано.

Что сделать

Для каждого delay: определить, на что он реально полагается (старт upstream, запись в БД, захват работы), выбрать точный барьер, подтвердить мутантом (без барьера тест должен падать), либо явно оставить delay с обоснованием.

Критерии готовности

  • Каждый оставшийся delay либо заменён на барьер с доказанным мутантом, либо задокументирован комментарием с причиной.
  • Нет ложной зелёности: мутанты для каждого изменённого кейса.
  • npm run verify и npm run test:e2e зелёные.

Ограничения

Hourly (tbank-hourly-lifecycle, pump(N)) вне scope. Новый framework для гонок не строить.

Остаток из #63 (закрыта частично, см. её комментарий). ## Проблема В `test/tbank-operations-sync.e2e-spec.ts` около 14 `await delay(N)` перед конкурентными действиями. Механическая замена на сигнал опасна: мутант на кейсе `publishes the forced visible period before unrelated pending history` показал, что без `delay` тест падает. Порядок history → screen зависит от записи в БД, а не от старта upstream. Замена на барьер состояния `state(running)` изменила результат теста, поэтому откатано. ## Что сделать Для каждого `delay`: определить, на что он реально полагается (старт upstream, запись в БД, захват работы), выбрать точный барьер, подтвердить мутантом (без барьера тест должен падать), либо явно оставить `delay` с обоснованием. ## Критерии готовности - Каждый оставшийся `delay` либо заменён на барьер с доказанным мутантом, либо задокументирован комментарием с причиной. - Нет ложной зелёности: мутанты для каждого изменённого кейса. - `npm run verify` и `npm run test:e2e` зелёные. ## Ограничения Hourly (`tbank-hourly-lifecycle`, `pump(N)`) вне scope. Новый framework для гонок не строить.
codex-bot added the Kind/Testing
Priority
Medium
3
audit/2026-10-11
labels 2026-10-17 20:57:33 +03:00
codex-bot self-assigned this 2026-10-17 20:57:43 +03:00
codex-bot added this to the Technical Audit Remediation — 2026-10-11 milestone 2026-10-17 20:57:43 +03:00
Author
Owner

Сделано в #145 (squash в develop). Таблица delay → решение → мутант приведена в описании PR. Оставшиеся паузы помечены комментарием: отсутствие события нельзя дождаться иначе, кроме как ограниченной паузой.

Сделано в #145 (squash в develop). Таблица delay → решение → мутант приведена в описании PR. Оставшиеся паузы помечены комментарием: отсутствие события нельзя дождаться иначе, кроме как ограниченной паузой.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/backend#104