4.4 KiB
Проверка сопряжённого табло
Дата: 13 октября 2026, Europe/Minsk.
Причина и исправление
Cookie из локального .env успешно авторизует существующее тестовое устройство на board.ridebus.by. /api/device/status вернул состояние paired, город 1 и назначенную остановку 28. Общая /api/config указывает остановку 1; прежний монитор запрашивал её и получал 409 settings_changed. Запрос назначенной остановки 28 вернул HTTP 200 и расписание в режиме live.
Монитор теперь получает настройки устройства и использует его назначенные город и остановку. STATUS_BOARD_TEST_STOP_ID продолжает применяться к автономному табло. Незавершённое сопряжение, истёкший или отозванный тестовый доступ дают неизвестный статус сценария, без подтверждения сбоя сервиса.
Отдельно исправлена браузерная авторизация: cookie загружаются в новый контекст через browserContext.addCookies(). Изменение заголовка Cookie в route.continue() Chromium игнорирует; это описано в документации Playwright. Запросы записи и запросы на другой origin в таком контексте заблокированы.
Правила нового сценария имеют отдельную сигнатуру. Прежние результаты и инциденты сохранены в SQLite, но не смешиваются с проверками назначенной остановки. История обычной доступности сохранена. Перед перезапуском создана резервная копия data/status.before-paired-board-fix-20261013.sqlite в игнорируемом каталоге.
Результат
npm test: 62 успешных теста, 0 ошибок, 0 пропусков. Включены проверки назначенной остановки, автономного табло, состояния сеанса и настоящий Chromium с cookie, заблокированными POST и другим origin.npm run build: успешная проверка TypeScript и production-сборка Vite.- Реальный полный сценарий: HTTP 200, режим
browser, все шаги пройдены: общая конфигурация, настройки устройства, остановки, расписание, отображение. - Временная ошибка локального DNS
ENOTFOUNDисчезла без изменения сетевых настроек; после этого выполнена успешная проверка реального табло. - Существовавший локальный сервер перезапущен в прежнем режиме разработки на
127.0.0.1:5188. Новый цикл мониторинга записал успешный сценарий в 02:18:40. - Публичный
/api/statusвернулboard.status=operational,scenario.status=operational,reason=null, пять пройденных шагов и отсутствие активных инцидентов текущего сценария табло. Cookie в JSON отсутствует. - В интерфейсе подробностей табло отображаются «Работает» и «Сценарий проходит». Скриншот: paired-board-check.png.
Значение cookie не изменялось, не выводилось и не сохранялось в отчёте. Новое устройство не создавалось, сопряжение и heartbeat на сервер не отправлялись. Это локальное исправление; публикация на внешний хостинг не выполнялась.