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

26 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Проверка сопряжённого табло
Дата: 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](https://playwright.dev/docs/api/class-route#route-continue). Запросы записи и запросы на другой 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](paired-board-check.png).
Значение cookie не изменялось, не выводилось и не сохранялось в отчёте. Новое устройство не создавалось, сопряжение и heartbeat на сервер не отправлялись. Это локальное исправление; публикация на внешний хостинг не выполнялась.