Files
ridebus-status/artifacts/paired-board-fix-verification.md
2026-10-13 02:24:39 +03:00

4.4 KiB
Raw Blame History

Проверка сопряжённого табло

Дата: 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 на сервер не отправлялись. Это локальное исправление; публикация на внешний хостинг не выполнялась.