[CL-1176] Follow-up: E2E-сценарии (EURT/partial/refund/обратный матч) + toNum на availableShares #1187
No reviewers
Labels
No labels
ci-failing
duplicate
needs-rebase
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
europa-tech-srl/europatech!1187
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/claude-cl1176-followup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что сделано
Два коммита, не попавшие в squash-мерж #1186 (запушены в ветку после мержа):
revert.e2e.scenarios.int.test.ts, гейтE2E_DATABASE_URL): EURT-цикл ходит по coinBalance и не трогает EUR; partial fill (SELL 10 / BUY 4) возвращает пропорциональный released-basis 700×4/10=280 и не реанимирует ACTIVE-ордер; price-improvement refund (resting SELL @90 vs BUY @100) даёт покупателю разницу 100 отдельной P2P_BUY-транзакцией и unwind сходится в ноль; обратное направление (resting BUY + taker SELL) симметрично.availableSharesиз $queryRaw под лживым типомnumber. Фикс паттерном соседнего sharePrice:::text+toNum(). Уточнён механизм в комментарии auto-match: в этом стеке raw NUMERIC — Prisma.Decimal-объект, следствия для isFinite-guard идентичны строке, toNum() покрывает оба.Зачем
Закрывает хвост четвёртой адверсариальной проверки: непокрытые money-сценарии и последний экземпляр класса «raw NUMERIC без коэрции».
План тестирования
E2E: оба файла серийно на эфемерной БД из чистого prisma migrate deploy — 5 passed (5). Юнит: payment-stripe + p2p-trade 201 passed. tsc чист, eslint --max-warnings 0 чист.
Где могу ошибаться