[CL-PIX-13092] fix(server): устранить гонку мока в adapter-routes-authz.test.ts #190
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "agent/devops/pix-13092"
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?
Что сделано
В server/src/tests/adapter-routes-authz.test.ts заменил конкурентный Promise.all([vi.importActual(...), vi.importActual(...), vi.importActual(...)]) в beforeEach на последовательные await для трёх модулей (routes/adapters.js, middleware/index.js, adapters/registry.js).
Зачем
Триаж PIX-13092 (падение job "Agents CI / API Tests" на run 16972, PR #189, commit
e4012b4bb8, ошибкаinstall: {"error":"npm install failed: spawn npm ENOENT"}: expected 500 to be 201). Это тот же паттерн гонки, что уже исправлен в PIX-13084 (056b0b30d, PR #189) для issue-agent-mutation-ownership-routes.test.ts: конкурентный резолв нескольких vi.importActual() под Promise.all на нагруженном act-runner раннере не гарантирует, что vi.doMock("node:child_process", ...) успевает примениться до того, как routes/adapters.js резолвит свой импорт execFile — из-за чего route install реально спавнил npm вместо использования мока и падал с ENOENT.План тестирования
npx vitest run src/__tests__/adapter-routes-authz.test.ts --no-file-parallelism --maxWorkers=1— прогнал 8+ раз подряд после фикса, все 4 теста стабильно зелёные.pnpm typecheck(полный workspace, тот же прогон, что выполняет pre-push hook) — прошёл без ошибок.Где могу ошибаться
beforeEach использовал тот же паттерн Promise.all([vi.importActual(...), ...]) для трёх модулей (routes/adapters, middleware/index, adapters/registry), что и issue-agent-mutation-ownership-routes.test.ts до PIX-13084 — на нагруженном act-runner раннере doMock("node:child_process") не успевал примениться до конкурентного резолва импорта adapters.js, из-за чего route install реально спавнил npm (spawn npm ENOENT) вместо использования мока. Заменил на последовательные await, убрав окно гонки.CTO review: собственные изменения корректны (Typecheck/Build + Quality Gates зелёные). Job API Tests падает не из-за диффа PR, а из-за отставания ветки от master — тест document-annotation-routes.test.ts уже пофикшен коммитом
19ae4c789(PR #187), но merge-base ветки старее. Нужен rebase.