× [N1] менеджер создаёт сотрудника через POST /employees → 201 487ms × [N2] подтверждение смены, расчёт и утверждение зарплаты проходят (200) и начисляют 8 ч × ставка 1795ms × [N4] пересекающиеся расчёты не начисляют одну смену дважды 943ms × [N3] push-подписка на внутренний адрес отклоняется, сервер не подключается к 127.0.0.1 2834ms × [N9] чужой push-endpoint нельзя перепривязать к другому сотруднику 421ms × [N12] PUT pay-assignment отвергает лишние поля и нереальные суммы (400) 386ms × [N10] терминальный токен не читает справочники профессий и точек (403) 31ms × [F2] standalone без токенов не выдаёт права менеджера анонимному запросу (401) 322ms × [F3] cookie сессии не содержит сырой токен и отзывается при выходе 50ms × [F10] мутация по cookie без Origin отклоняется (CSRF, 403) 21ms × [F7] повтор Idempotency-Key с другим телом не создаёт второе событие 790ms × [N11] импорт с неверным kind начисления → 400, а не 500 602ms × [F4] перебор ключей входа ограничивается (429 не позже 30 неверных попыток) 744ms × [OWN-01] менеджер точки A запускает расчёт для точки B → 403 978ms × [OWN-02] менеджер точки отправляет пакет на согласование → 403 750ms × [OWN-03] бухгалтер отправляет пакет → успех, каждый директор получает ровно одно уведомление 10ms × [OWN-04] бухгалтер пытается подписать пакет → 403 20ms × [OWN-05] до подписи директора в ledger нет начислений и выплат 5ms × [OWN-06] подпись директора → начисления и выплаты в ledger, пакет и смены неизменяемы 10ms × [OWN-07] смена изменена после отправки → подписать нельзя (409), пакет возвращён бухгалтеру 5ms × [OWN-08] возврат с комментарием → пакет у бухгалтера, комментарий сохранён 10ms × [OWN-09] сотрудник точки A отработал смену в точке B → смена попадает в зарплату точки B 16ms × [OWN-10] сотрудник без согласия на биометрию → сервер сообщает терминалу «регистрация запрещена» 250ms × [OWN-11] согласие отозвано → статус для терминала меняется 297ms × [SYNC-A] устройство не может само подтвердить смену (status=confirmed отклоняется) 791ms × [SYNC-B] устройство не может утвердить табель (status=approved отклоняется) 392ms × [SYNC-C0] начальная загрузка (pull без курсора) работает на реальной БД (200) 427ms × [SYNC-C] начальная загрузка >100 сущностей отдаёт все сущности постранично 960ms × [SYNC-D] изменения, сделанные через портал, попадают в инкрементальный pull 518ms × [SYNC-E] отметка уволенного сотрудника через sync отклоняется 279ms × [SYNC-F] отметка через sync сохраняет точку устройства; чужая точка в payload отклоняется 664ms × [SYNC-G] битая команда в пакете отклоняется по отдельности, остальные применяются (не 500) 350ms × [SYNC-H] регистрация устройства по cookie с чужим Origin отклоняется (CSRF, 403) 180ms × [SYNC-I] без настроенных токенов анонимный запрос не регистрирует устройство (401) 180ms × [SYNC-J] отметка через sync вне окна времени (2001 год) отклоняется, как в POST /attendance/events 308ms × [SYNC-K] ack курсора из будущего (больше выданного сервером) отклоняется (400) 25ms × [PILOT-1] все подставляемые переменные обязательны: ${VAR:?сообщение} 103ms × [PILOT-2] ни один сервис не запускается с NODE_ENV=development 4ms ⎯⎯⎯⎯⎯⎯ Failed Tests 38 ⎯⎯⎯⎯⎯⎯⎯ Tests 38 failed | 9 passed (47)