6.2 KiB
Проверка 2026.09.26.3
Изменения выполнены в отдельной копии проекта. Рабочий сервер пользователя, рабочие базы, Stat2TV, WFL и реальный vMix не подключались.
Полный набор: 421 passed, 40 failed. По сравнению со вторым этапом (409 passed, 40 failed) добавлены 12 проходящих проверок. Набор 40 падающих тестов совпадает по идентификаторам; новых падений нет. Они не скрыты через skip/xfail и не удалены. Причины разобраны отдельно.
Новые и расширенные проверки
- 8 серверных проверок автоматического открепления: граница ровно 2 часа, отсутствие продления фоновыми отметками, изоляция другого аккаунта, другой активный вход того же аккаунта, повторная проверка после обновления активности, передача управления другому оператору, закрытый браузер/offline Agent и переподключение, запоздалая попытка назначения, новая привязка после входа, запуск/остановка фонового задания. Одна проверка может включать несколько перечисленных сценариев.
- Расширен существующий тест Countdown: модель раздельно хранит длительность и текущее положение vMix. До исправления при новом времени 2:00 оставался прежний остаток 0:37; новый порядок команд устанавливает 2:00. Проверяются пауза/продолжение, ручная правка, сброс, перезагрузка, другое удаление на том же Input, отсутствие посекундного транспорта и запрет команд зрителю.
- Новый JavaScript сценарий исполняет функции рабочего интерфейса: полный и неполный черновик, выдача по данным Agent без локальной отметки F1, новое остановленное время перед Overlay In, повторный показ без перезапуска, редактирование скрытого Input, отсутствие команд зрителя. Проверяется сброс локального назначения при ошибке отправки и защита от запоздалого ответа.
- 3 проверки текущего Mapping транспорта: 372 поля / 12 Inputs в исходном порядке, маршрутизация только своему Agent, обрыв после трёх команд и прекращение оставшейся отправки, отсутствие отправки полей при неудачном назначении матча. Старые BUILD97 тесты оставлены как исторические падения.
Три ранее проходившие текстовые проверки BUILD77/BUILD95 приведены в соответствие с новым согласованным поведением и новым условием видимости. Их старое ожидание «готовое удаление не синхронизируется до старта» больше не соответствует запросу. Поведение дополнительно проверено исполняемым JavaScript, а не только поиском строк.
Интеграционная проверка
Временный FastAPI сервер, SQLite, настоящий код страницы в jsdom и два подставных Agent. Проверены реальные API-запросы, права и отправленные WebSocket кадры:
- запуск удаления до первого пробела: Set → Stop → Start с новым временем;
- пауза без сброса, продолжение без повторной установки, правка и сброс;
- отсутствие отправки Countdown каждую секунду;
- фактический выбор нарушения через меню при уже выданном по tally титре;
- Set → Stop → Overlay In, остановленные локальные часы, закрытие меню;
- отсутствие команд в Agent второго оператора и ошибок выполнения страницы.
Дополнительно проверен синтаксис изменённого JavaScript.
Границы результата
Модель Countdown основана на документации vMix; проверка на Windows с реальным vMix и производственной PostgreSQL здесь не проводилась. SQLite проверки не заменяют нагрузочный тест или проверку PostgreSQL advisory locks в кластере. jsdom исполняет DOM/JavaScript, но не проверяет пиксельную отрисовку браузера. Исправление не развёрнуто на рабочем сервере.
Успех быстрого транспорта означает доставку кадра в WebSocket Agent, а не подтверждение исполнения команды vMix. Это существующий режим. Он не позволяет обещать успешное отображение при неверном Input/SelectedName или ошибке vMix. Архив не содержит измерения производственного CPU/RAM или гарантии нулевой нагрузки.