test(ci): скрипт test, тесты в pr-check, фикс sporadic 403 в trackUserActivity
Шаг A3 (из 1.6) плана production-готовности: - package.json: скрипт "test": "vitest run" - pr-check.yml: шаг Tests после type check - server/utils/userActivity.ts: try/catch в trackUserActivity — синхронная ошибка трекинга активности больше не срывает authenticateToken (ложный 403 на первом запросе пользователя за минуту) - tests/auto-transitions.test.ts: 3 устаревших теста обновлены под намеренное поведение (forward-only position, синк assignee, аудит вместо системного сообщения) 45/45 тестов зелёные, npm run check чисто.
This commit is contained in:
@@ -23,3 +23,27 @@
|
||||
- Что изменено: — (только проверка)
|
||||
- Как проверялось: `git fetch origin` + `git status` (чисто, синхронизировано с origin/main, HEAD `a2b231d`), `npm run check` — зелёный (оба tsc: основной и client-di2).
|
||||
- Влияние на поиск/UX: нет.
|
||||
|
||||
---
|
||||
|
||||
## [0.15] Сквозная документация изменений (этот файл)
|
||||
|
||||
- Статус: ✅ done (коммит `76a0d85` «chore(docs): add implementation log»)
|
||||
- Зачем: по одному файлу любой ИИ-агент понимает, что сделано, зачем, какие файлы тронуты и как проверялось.
|
||||
- Что изменено: создан `IMPLEMENTATION_LOG.md` в корне репозитория (шапка-контекст + шаблон записей).
|
||||
- Влияние на поиск/UX: нет.
|
||||
|
||||
---
|
||||
|
||||
## [A3 / 1.6 частично] Подключение тестов + починка 5 падающих
|
||||
|
||||
- Статус: ✅ done
|
||||
- Зачем: тесты существовали (3 файла, vitest), но не запускались ни локально (нет скрипта), ни в CI; 5 из 45 падали. Без зелёных тестов дальнейшие изменения безопасности/производительности — вслепую.
|
||||
- Что изменено:
|
||||
- `package.json` — скрипт `"test": "vitest run"`.
|
||||
- `.github/workflows/pr-check.yml` — шаг «Tests» (`npm test`) после type check.
|
||||
- `server/utils/userActivity.ts` — **фикс реального бага**: `trackUserActivity` мог кинуть синхронно внутри `authenticateToken`, исключение попадало в catch аутентификации → ложный `403 Недействительный токен` на первом запросе пользователя за минуту. Тело обёрнуто в try/catch, throttle сбрасывается для повторной попытки (соответствие контракту fire-and-forget).
|
||||
- `tests/auto-transitions.test.ts` — 3 устаревших теста обновлены под намеренное текущее поведение (forward-only по position; синк assignee в task_assignees; системное сообщение заменено аудит-записью «Автопереход»), добавлен мок `delegation.service`.
|
||||
- Как проверялось: `npx vitest run` — 45/45 зелёные; `npm run check` — чисто.
|
||||
- Влияние на поиск/UX: нет.
|
||||
- Подводные камни: баг в `userActivity.ts` проявлялся только на первом аутентифицированном запросе в минуту (throttle) — в проде мог давать sporadic 403.
|
||||
|
||||
Reference in New Issue
Block a user