Corp/backend/static/js/tests/README.md

5.1 KiB
Raw Blame History

🧪 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%
============================================================

📚 Полная документация

См. CHAT_TESTS_GUIDE.md

🎯 Использование

Перед коммитом

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