5.1 KiB
5.1 KiB
🧪 Chat System Tests
Комплексная система тестирования для чата EUSRR. Запускается прямо в браузере без дополнительных инструментов.
⚡ Быстрый старт
Вариант 1: HTML интерфейс (Рекомендуется)
Откройте в браузере:
http://localhost:8000/static/js/tests/runTests.html
Нажмите кнопку "🚀 Запустить все тесты"
Вариант 2: Консоль браузера
На странице чата откройте консоль (F12) и выполните:
// Загрузить тесты
const script = document.createElement('script');
script.src = '/static/js/tests/chatTests.js';
script.type = 'module';
document.head.appendChild(script);
// Запустить все тесты
await window.ChatTests.runAll()
// Или отдельный модуль
await window.ChatTests.testMessageStore()
📦 Доступные тесты
window.ChatTests.runAll() // Все тесты
window.ChatTests.testMessageStore() // Хранилище сообщений
window.ChatTests.testMessageLoader() // Загрузчик сообщений
window.ChatTests.testScrollManager() // Менеджер скролла
window.ChatTests.testMessageRenderer() // Рендерер сообщений
window.ChatTests.testChatController() // Контроллер чата
window.ChatTests.testIntegration() // Интеграционные тесты
window.ChatTests.testPerformance() // Тесты производительности
window.ChatTests.testAdvanced() // Расширенные тесты
window.ChatTests.testScrollStability() // Тесты стабильности скролла
window.ChatTests.testSmartAutoscroll() // Тесты умного автоскролла (НОВОЕ!)
📊 Что тестируется?
- ✅ MessageStore - 12 тестов (добавление, обновление, удаление, дубликаты, оптимистичные)
- ✅ MessageLoader - 9 тестов (загрузка, WebSocket, состояния)
- ✅ ScrollManager - 7 тестов (прокрутка, позиционирование, IntersectionObserver)
- ✅ MessageRenderer - 6 тестов (рендеринг, обновление, удаление DOM элементов)
- ✅ ChatController - 5 тестов (инициализация, события, оптимистичные сообщения)
- ✅ Integration - 4 теста (полный цикл сообщений, множественные сообщения)
- ✅ Performance - 3 теста (массовые операции, стресс-тесты)
- ✅ Advanced - 10 тестов (дозагрузка истории, порядок, дубликаты, разделители)
- ✅ ScrollStability - 5 тестов (стабильность при дозагрузке истории)
- ✅ SmartAutoscroll - 8 тестов (НОВОЕ!)
- Автоскролл для своих сообщений
- Автоскролл для чужих сообщений при активности
- Индикатор новых сообщений при чтении истории
- Клик по индикатору
- Ручной скролл вниз
- Оптимистичные сообщения
- API индикатора
- Счётчик новых сообщений
- ✅ ScrollManager - 5 тестов (скролл, сохранение позиции, IntersectionObserver)
- ✅ MessageRenderer - 6 тестов (рендеринг, обновление, удаление)
- ✅ ChatController - 5 тестов (инициализация, методы, события)
- ✅ Integration - 4 теста (полный цикл, множественные сообщения, оптимистичная отправка)
- ✅ Performance - 4 теста (1000 сообщений, поиск, рендеринг, обновления)
Всего: ~45+ тестов
📈 Пример результата
🏁 ИТОГОВЫЕ РЕЗУЛЬТАТЫ
============================================================
Всего тестов: 45
✅ Успешно: 45
❌ Провалено: 0
📈 Процент успеха: 100.0%
============================================================
📚 Полная документация
🎯 Использование
Перед коммитом
const results = await window.ChatTests.runAll()
console.log(`Ready to commit: ${results.failed === 0}`)
После изменений
// Изменили MessageStore?
await window.ChatTests.testMessageStore()
// Изменили рендеринг?
await window.ChatTests.testMessageRenderer()
Проверка производительности
await window.ChatTests.testPerformance()
Документация: CHAT_TESTS_GUIDE.md