112 lines
8.0 KiB
Markdown
112 lines
8.0 KiB
Markdown
# Инструкция по тестированию исправленной системы сессий
|
||
|
||
## Проблемы, которые были исправлены:
|
||
|
||
### ✅ 1. Оператор не получал уведомления о новых запросах
|
||
**Исправление**: Добавлены правильные события `session:created`, `session:accepted`, `session:rejected`, `session:ended`
|
||
|
||
### ✅ 2. Сессии не отображались в приложении при подтверждении
|
||
**Исправление**: Обновлена обработка событий сессий в десктопном приложении
|
||
|
||
### ✅ 3. Правильная сущность сессий для переключения
|
||
**Исправление**: Полная реализация системы множественных сессий с переключением
|
||
|
||
## Последовательность тестирования:
|
||
|
||
### Шаг 1: Подключение к серверу
|
||
1. Запустите десктопное приложение
|
||
2. **НОВОЕ**: Панель подключения по умолчанию свернута с индикатором статуса 🔗 ● в заголовке
|
||
3. Кликните на заголовок "🔗 Подключение к серверу" чтобы развернуть панель
|
||
4. Нажмите "Подключиться" - кнопка должна изменить текст на "Отключиться"
|
||
5. **НОВОЕ**: Индикатор в заголовке изменится на зеленый ● для показа активного подключения
|
||
6. В журнале должно появиться сообщение о подключении
|
||
|
||
### Шаг 2: Симуляция Android устройства
|
||
1. В веб-демо (http://localhost:3001) найдите секцию "Test Android Device"
|
||
2. Нажмите "Simulate Android Connection"
|
||
3. В десктопном приложении должно появиться новое устройство в списке
|
||
|
||
### Шаг 3: Создание первой сессии
|
||
1. В десктопном приложении нажмите "Подключиться" к устройству
|
||
2. **НОВОЕ**: В списке сессий должна немедленно появиться сессия со статусом "Ожидание" (🟠)
|
||
3. В веб-демо появится запрос "Camera request from operator"
|
||
4. Нажмите "Accept Request" в веб-демо
|
||
5. **НОВОЕ**: Сессия в приложении должна изменить статус на "Активна" (🟢)
|
||
|
||
### Шаг 4: Создание множественных сессий
|
||
1. Повторите шаг 3 еще 2-3 раза для создания нескольких сессий
|
||
2. **НОВОЕ**: Кнопка устройства должна изменить текст на "Добавить сессию"
|
||
3. В списке сессий должны отображаться все активные сессии
|
||
|
||
### Шаг 5: Переключение между сессиями
|
||
1. Кликните "Переключиться" на любой неактивной сессии
|
||
2. **НОВОЕ**: Активная сессия должна выделиться зеленой рамкой
|
||
3. В верхней части должна отобразиться информация об активной сессии
|
||
|
||
### Шаг 6: Переключение камеры
|
||
1. В активной сессии нажмите "Фронтальная"
|
||
2. **НОВОЕ**: Тип камеры должен обновиться в информации о сессии
|
||
3. В журнале должно появиться сообщение о переключении
|
||
|
||
### Шаг 7: Завершение сессии
|
||
1. Нажмите "Завершить" на любой сессии
|
||
2. **НОВОЕ**: Сессия должна исчезнуть из списка
|
||
3. Если это была активная сессия, должна автоматически активироваться другая
|
||
|
||
## Новые события в журнале:
|
||
|
||
### События сессий:
|
||
- `Сессия создана: [sessionId]` - при запросе доступа к камере
|
||
- `Сессия принята: [sessionId]` - при подтверждении на устройстве
|
||
- `Сессия отклонена: [sessionId]` - при отказе на устройстве
|
||
- `Сессия завершена: [sessionId]` - при закрытии сессии
|
||
|
||
### События устройств:
|
||
- `Новое устройство подключено: [deviceId]` - при подключении Android
|
||
- `Устройство отключено: [deviceId]` - при отключении Android
|
||
|
||
### События управления:
|
||
- `Переключение на сессию: [sessionId]` - при смене активной сессии
|
||
- `Переключение на камеру: [type] в сессии [sessionId]` - при смене камеры
|
||
- `Завершение сессии: [sessionId]` - при инициировании закрытия
|
||
|
||
## Визуальные индикаторы:
|
||
|
||
### Статусы сессий:
|
||
- 🟠 **Ожидание** - запрос отправлен, ждем ответа от устройства
|
||
- 🟢 **Активна** - сессия установлена и работает
|
||
- 🔴 **Отклонена** - устройство отклонило запрос
|
||
- ⚫ **Завершена** - сессия была закрыта
|
||
|
||
### Кнопки устройств:
|
||
- **"Подключиться"** (синяя) - нет активных сессий с устройством
|
||
- **"Добавить сессию"** (зеленая) - есть активные сессии, можно добавить еще
|
||
|
||
### Активная сессия:
|
||
- Выделена **зеленой рамкой** в списке
|
||
- Отображается в верхней части: `Активная сессия: [device] ([camera])`
|
||
- Кнопка показывает **"Активна"** вместо "Переключиться"
|
||
|
||
## Проверка исправлений:
|
||
|
||
### ✅ Проблема 1: Получение запросов
|
||
- Сессия должна появляться в списке **сразу** при нажатии "Подключиться"
|
||
- Статус должен меняться с "Ожидание" на "Активна" при подтверждении
|
||
|
||
### ✅ Проблема 2: Отображение сессий
|
||
- После "Accept Request" в веб-демо, сессия **немедленно** становится активной
|
||
- Все данные сессии корректно отображаются в списке
|
||
|
||
### ✅ Проблема 3: Переключение сессий
|
||
- Можно создать несколько активных сессий одновременно
|
||
- Переключение между сессиями работает мгновенно
|
||
- Управление камерами работает для каждой сессии независимо
|
||
|
||
## Ожидаемое поведение:
|
||
|
||
1. **Мгновенная отзывчивость** - все действия отражаются в UI немедленно
|
||
2. **Множественные сессии** - можно управлять несколькими устройствами одновременно
|
||
3. **Четкая индикация** - всегда ясно, какая сессия активна и каков ее статус
|
||
4. **Правильная синхронизация** - состояние между сервером и клиентом всегда синхронизировано
|
||
|
||
Теперь система сессий работает полноценно и позволяет эффективно управлять множественными подключениями! |