82 lines
8.5 KiB
Markdown
82 lines
8.5 KiB
Markdown
# 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` не используется для сохранения секретов.
|
|
|
|
## Команды с телефона
|
|
|
|
1. Нажать «Подключить управление этой игрой», записать номер экрана.
|
|
Открыть показ на внешнем дисплее. Дождаться сообщения о связи.
|
|
2. На телефоне открыть существующую страницу управления этой игрой.
|
|
Убедиться, что экран появился в её списке. Назначить звук этому экрану
|
|
через сайт или одноимённую кнопку приложения; это отключает звук других
|
|
экранов игры по существующим правилам сервера.
|
|
3. Отправить новую команду смены режима, пуска вступления, паузы, продолжения,
|
|
перемотки и громкости. Повторить с заключительным видео.
|
|
4. Проверить текст, настройку/пуск/паузу/сброс таймера и музыку: выбор трека,
|
|
громкость, повтор и автоматический переход. Все используемые ресурсы должны
|
|
быть в скачанном пакете; новый плейлист требует подготовки материалов.
|
|
5. Чередовать телефон и компьютер. Локальная пауза не должна отменяться повтором
|
|
того же серверного состояния. Новая команда телефона должна применяться.
|
|
Команды компьютера действуют только на этот показ и не рассылаются другим экранам.
|
|
6. Проверить прежний браузерный экран отдельно: его вход, привязка и команды
|
|
должны работать как раньше. Общие команды игры по-прежнему относятся ко всем
|
|
её подключённым экранам.
|
|
|
|
Опрос идёт раз в секунду, только пока окно показа открыто. Первое состояние при
|
|
подключении/повторном открытии становится исходной отметкой: старые команды не
|
|
запускаются, назначение звука учитывается при первом подключении. Для показа
|
|
отправьте новую команду. Сайт показывает наличие связи; точные подтверждения
|
|
проигрывателя и ошибки доступны в пульте приложения, поскольку существующий API
|
|
не принимает их от экрана.
|
|
|
|
## Обрыв связи, обновления и перезапуск
|
|
|
|
1. Во время воспроизведения отключить сеть компьютера. Проверить локальные
|
|
play/pause/seek, переход музыки и продолжающийся таймер.
|
|
2. При отключённой сети изменить показ локально, затем отправить команду
|
|
телефоном. Вернуть сеть: накопленное состояние не должно отменить локальное
|
|
действие. Следующая новая команда телефона должна примениться.
|
|
3. Проверить истечение пользовательского входа и отдельно недействительную
|
|
экранную сессию на тестовом сервере. Показ не прерывается; интерфейс предлагает
|
|
повторный вход или подключение управления. Не менять рабочую базу ради проверки.
|
|
4. Закрыть показ. Изменить материалы игры на сервере и проверить изменения
|
|
в приложении. Явно загрузить новую версию. При открытом показе обновление
|
|
выбранной игры должно отклоняться. Ошибка и отмена загрузки сохраняют старую копию.
|
|
5. Завершить игру и обновить снимок результатов. Проверить таблицу и время снимка.
|
|
Ошибка обновления должна сохранять последний успешный снимок.
|
|
6. Закрыть приложение, отключить сеть и запустить снова. Выбранная игра и снимок
|
|
результатов доступны; окно показа и звук сами не запускаются. Открыть показ
|
|
и проверить локальное воспроизведение.
|
|
7. Выход из аккаунта не удаляет материалы и не прерывает локальное воспроизведение,
|
|
но отключает получение команд сервера. Удалить невыбранный пакет через интерфейс.
|
|
|
|
Проверка метаданных не обнаруживает новые байты файла по прежнему URL:
|
|
для этого нужна повторная загрузка. Сервер хранит последнее состояние, поэтому
|
|
несколько команд между опросами могут объединиться. После неопределённого исхода
|
|
запроса перехода музыки приложение не повторяет его автоматически. Секреты
|
|
находятся отдельно от пакетов в зашифрованном файле `connection/credentials.bin`
|
|
в userData; пароль не сохраняется. Снимки содержат только поля публичной таблицы.
|
|
|
|
## Фиксация результата
|
|
|
|
Записать ОС/архитектуру, версию Electron/приложения, адрес и версию сервера,
|
|
реальный внешний дисплей, форматы файлов, доступность хранилища ОС и результаты
|
|
каждого пункта. Не прикладывать токены, пароль или содержимое файла секретов.
|
|
Аппаратные измерения звука/кадра остаются в SCREEN-001/SCREEN-004; эта проверка
|
|
не заменяет их и не подтверждает p95 на M1.
|