30 lines
5.3 KiB
Markdown
30 lines
5.3 KiB
Markdown
# Проверка влияния, хронологии и RSS
|
||
|
||
12 октября 2026, Europe/Minsk. Проверен проект `/Users/xtimms/Projects/ridebus-status`.
|
||
|
||
## Результат
|
||
|
||
- Описание влияния в карточках и подробностях сервиса: различаются проблемы загрузки страницы и сценария данных. Альтернативные сервисы предлагаются только при текущем рабочем статусе; сохранённое расписание описано как возможный вариант с оговоркой об актуальности.
|
||
- Хронология сохраняет исходное сообщение, автоматическое обнаружение, сообщения команды и восстановление. После закрытия доступен отдельный разбор `postmortem`; время восстановления не меняется. Автоматический инцидент закрывается по результатам мониторинга.
|
||
- RSS 2.0: выбор RU/EN, сервисов и типов событий, копирование ссылки, постоянные GUID, общие сообщения, отдельные события обслуживания. Лента не содержит демонстрацию и не хранит базу подписчиков.
|
||
- Старая SQLite мигрирует без удаления истории и выдуманных промежуточных стадий. Перед миграцией сохранён локальный backup `data/status.before-public-updates.sqlite`.
|
||
|
||
## Проверки
|
||
|
||
- `npm test`: **43/43**, без пропусков, включая настоящий Chromium. Новые проверки охватывают источники событий и стадии, разбор после закрытия, запрет принудительного закрытия автоматического инцидента, миграцию при повторном запуске, RSS-фильтры, стабильность GUID, экранирование и HTTP-маршрут.
|
||
- `npm run build`: TypeScript и production-сборка успешны.
|
||
- RSS дополнительно разобран XML-парсером Python; проверены уникальные GUID. HTML-парсер подтвердил, что пользовательский текст не создаёт внедрённые теги внутри описания RSS.
|
||
- CLI проверен на отдельной временной БД: создание, обновление, закрытие с пояснением и последующий разбор. Рабочая БД тестовыми инцидентами не заполнялась.
|
||
- Браузер, production: ширина 1280 и 390 px, RU/EN, светлая/тёмная темы, отсутствие горизонтального переполнения, раскрытие хронологии и фильтр решённых инцидентов, описание влияния в окне PWA, выбор/пустой выбор RSS, копирование ссылки и смена языка.
|
||
- Проверен переход по ссылке на завершившееся обслуживание: после загрузки данных автоматически выбрана история и показана нужная карточка. Этот стенд работал на отдельном порту с БД в памяти, мониторинг отключён; стенд остановлен.
|
||
- Реальная RSS-лента на локальном production-сервере отвечает HTTP 200, `application/rss+xml`, `Cache-Control: no-store`. Примеры исключены.
|
||
- `docker compose config --quiet`: успешно. Docker-образ здесь не собирался: daemon недоступен.
|
||
|
||
## Развёртывание
|
||
|
||
Для текущего постоянного Node-мониторинга, SQLite и Chromium нужен независимый хостинг с постоянно работающим процессом и диском. Netlify рассмотрен по официальной документации: подходит для интерфейса с отдельным backend; полный перенос требует адаптации планировщика, хранилища и очереди к Functions. Публикация и миграция на Netlify не выполнялись.
|
||
|
||
Cookie тестового табло и Telegram остаются неподключёнными на момент проверки. Новых реальных сообщений или подписок не создавалось. Локальные процессы QA остановлены после проверки; запуск проекта — `npm run dev`.
|
||
|
||
Скриншоты: `public-updates-timeline.jpg` — хронология в явно обозначенной демонстрации; `public-updates-rss.jpg` — реальная страница подписки; `public-updates-rss-mobile.jpg` — мобильная тёмная тема, EN.
|