Files
evening_detective_screen/docs/SCREEN-006_ACCEPTANCE.md
T
2026-10-18 03:11:10 +07:00

6.9 KiB

SCREEN-006 — Проверка подключения игры

Программные проверки используют тестовый HTTP-сервер и синтетические файлы. Эта инструкция проверяет существующий сервер сайта, реальные игровые материалы и хранилище секретов установленной ОС. Бэкенд и браузерный экран не изменяются.

Подготовка

  1. Подключить внешний дисплей в режиме расширенного рабочего стола.
  2. В каталоге приложения выполнить npm ci, npm run media:generate, npm run dev. Для Linux под Wayland нужен XWayland.
  3. В блоке «Игра и сервер» указать адрес сервера без пути, email и пароль организатора, автора или администратора. Нажать «Войти».
  4. Выбрать игру и загрузить материалы. Проверить прогресс и возможность отмены. После успешной загрузки выбрать игру в «Материалах показа».
  5. Если приложение сообщает, что хранилище ОС недоступно, вход действует только до выхода из приложения. На Linux требуется рабочий libsecret/KWallet; basic_text не используется для сохранения секретов.

Постоянная связь и автоматическая подготовка SCREEN-012

  1. Выбрать игру, которой ещё нет на компьютере, и нажать «Подключить выбранную игру». Проверить связь и прогресс загрузки при закрытом показе.
  2. Назначить звук экрану. Вручную открыть показ: текущие серверные экран и музыка применяются после сохранения необходимых файлов. Проверить локальные адреса медиа; прямого воспроизведения HTTP-файлов в renderer быть не должно.
  3. Через сайт сменить экран, текст, таймер и музыку. Повторное состояние не перезапускает медиа. Закрыть показ, изменить серверное состояние и открыть его снова: оно применяется, но закрытое окно самостоятельно не открывается.
  4. Добавить новый трек или сменить плейлист на ещё не подготовленный. На медленном соединении прежняя музыка продолжает играть до готовности нового файла. Смена текста в это время не ждёт музыку. Аналогично проверить новое вступление, видео и изображения. Все связанные плейлисты и остальные материалы готовятся фоном.
  5. Во время загрузки несколько раз сменить серверную команду: устаревший файл не должен включаться после завершения загрузки. Ошибка отдельного файла или нехватка места не удаляет готовые материалы; проверить «Повторить подготовку».
  6. Проверить локальные режимы, шаги, основной канал, таймер и музыку: онлайн они меняют общий сервер. Выключение всего звука остаётся локальным. Публикация произвольного текста сохраняет и выбирает текстовый шаг общего плана.
  7. Отключить сеть, изменить показ локально, затем изменить состояние на сервере. Вернуть сеть: серверные экран и музыка принимаются; локальные офлайн-команды не отправляются позднее. После полного скачивания проверить час показа без сети.
  8. Перезапустить приложение без сети с тем же профилем. Сохранённые игра и снимок результатов доступны, окно закрыто. Открыть его и проверить локальные файлы. Повредить один тестовый файл, восстановить его автоматически при доступной сети и повторить перезапуск: остальные ресурсы и исправленный файл должны сохраниться.
  9. Проверить истечение JWT и экранной сессии, смену игры во время загрузки, выход без удаления файлов и сохранность предыдущего полного пакета после неудачной ручной перезагрузки. Не менять рабочую базу ради проверки.

Ручная «Загрузить материалы» остаётся для принудительного обновления файлов по прежнему адресу и требует закрытого показа. Существующие полные пакеты совместимы с автоматическим кешем. Пароль не сохраняется, токены остаются в основном процессе и защищённом хранилище ОС; снимки содержат только публичные поля результатов.

Фиксация результата

Записать ОС/архитектуру, версию Electron/приложения, адрес и версию сервера, реальный внешний дисплей, форматы файлов, доступность хранилища ОС и результаты каждого пункта. Не прикладывать токены, пароль или содержимое файла секретов. Аппаратные измерения звука/кадра остаются в SCREEN-001/SCREEN-004; эта проверка не заменяет их и не подтверждает p95 на M1.