Зачем: каждый открытый дефект аудита должен иметь исполняемый сценарий на реальной БД, который проверяет ПРАВИЛЬНОЕ поведение. Тогда красный тест = открытый дефект, а исправление видно по смене цвета, без ручной перепроверки. - N1 POST /employees -> 201; N2 подтверждение смены, расчёт, утверждение и сумма начисления 8 ч x синтетическая ставка; N4 пересекающиеся периоды не начисляют смену дважды (сейчас блокирован N2 — это видно в сообщении assert как «предусловие, см. N2»); - N3 SSRF: подписка на https://127.0.0.1:<порт> должна отклоняться, и локальный слушатель не должен получить соединение; - N9, N12, N10, N11, F2 (процесс без токенов), F3, F4 (отдельный процесс), F7, F10. Сотрудники для сценариев, не относящихся к N1, создаются импортом, чтобы один дефект не маскировал остальные. Все данные синтетические (E2E-*), ставка 123,45 ₽/ч заведомо не реальная.
18 lines
1.6 KiB
JSON
18 lines
1.6 KiB
JSON
{
|
||
"comment": "ID сценариев, красный цвет которых сейчас ожидаем (открытые дефекты или ещё не реализованные решения владельца). Когда дефект исправлен и все тесты ID зелёные, scripts/test/run-e2e.mjs падает, пока ID не убран отсюда. Добавлять ID сюда можно только вместе с записью в REPORT.md.",
|
||
"defects": {
|
||
"N1": "POST /employees: 42P08 inconsistent types for $2 на реальной PostgreSQL",
|
||
"N2": "подтверждение смены / расчёт / утверждение: staff_outbox.occurred_at NULL (23502)",
|
||
"N3": "SSRF через push-endpoint на внутренние адреса",
|
||
"N4": "двойное начисление при пересекающихся расчётах (сейчас блокирован N2)",
|
||
"N9": "перепривязка чужого push-endpoint",
|
||
"N10": "справочники доступны терминалу",
|
||
"N11": "импорт с неверным kind → 500",
|
||
"N12": "pay-assignment без additionalProperties:false и верхних границ",
|
||
"F2": "standalone без токенов даёт права STANDALONE_ACCESS анониму",
|
||
"F3": "cookie = сырой токен, logout не отзывает",
|
||
"F4": "нет rate limit на вход",
|
||
"F7": "Idempotency-Key не используется",
|
||
"F10": "CSRF: мутации по cookie без Origin разрешены"
|
||
}
|
||
}
|