# Manual Test Checklist Этот чек-лист нужен для финальной ручной проверки перед приемкой на Linux и Windows. ## 0) Подготовка окружения - [ ] Установлен Go 1.22+ (`go version`) - [ ] Установлен PostgreSQL (локально) - [ ] Созданы БД `nettopo` и пользователь `nettopo` - [ ] Заполнен `.env` (или экспортированы env-переменные) Рекомендуемые env для теста: ```bash STORE_BACKEND=postgres DB_DSN=postgres://nettopo:nettopo@localhost:5432/nettopo?sslmode=disable RUN_MIGRATIONS=true SNMP_ENABLED=true SNMP_COMMUNITY=public HTTP_ADDR=:8080 ``` ## 1) Запуск приложения - [ ] Выполнить `go run ./cmd/server` - [ ] Открыть `http://localhost:8080/` - [ ] Проверить health: `GET /health` возвращает `status=ok` ## 2) Создание и выполнение scan через UI - [ ] В UI ввести CIDR (например, `192.168.1.0/24`) - [ ] Нажать `Создать scan` - [ ] Убедиться, что `scan_id` появился в поле - [ ] Нажать `Ждать завершения` - [ ] Дождаться terminal state (`done/failed/canceled`) без ошибок UI ## 3) Проверка API результатов scan - [ ] `GET /api/scans/{id}` возвращает статус/прогресс/stats - [ ] `GET /api/scans/{id}/hosts` возвращает хосты - [ ] `GET /api/scans/{id}/ports` возвращает портовые проверки - [ ] `GET /api/scans/{id}/snmp` возвращает SNMP-данные (для доступных устройств) - [ ] `GET /api/scans/{id}/lldp` возвращает LLDP-соседей (если есть) - [ ] `GET /api/scans/{id}/links` возвращает базовые связи - [ ] `GET /api/scans/{id}/topology` возвращает `nodes/edges` ## 4) Проверка diff между двумя scan - [ ] Иметь минимум два scan - [ ] Выполнить `GET /api/scans/diff?from=&to=` - [ ] Проверить, что поля `new_hosts/missing_hosts/new_links/missing_links` заполнены корректно - [ ] В UI выбрать `from/to` и нажать `Сравнить` - [ ] Убедиться, что JSON diff показывается в блоке на странице ## 5) Проверка визуализации topology в UI - [ ] Кнопка `Загрузить` рисует граф - [ ] Кнопка `Последний scan` подставляет свежий scan - [ ] Выпадающие списки scan работают и подставляют id в поля - [ ] Легенда отображается корректно - [ ] Фильтр узлов: - [ ] `все` - [ ] `только новые` - [ ] `только пропавшие` ## 6) Проверка экспорта - [ ] `Экспорт topology JSON` сохраняет файл `topology_.json` - [ ] `Экспорт diff JSON` сохраняет файл `diff__to_.json` - [ ] Экспорт без предварительной загрузки показывает понятное сообщение ## 7) Негативные сценарии - [ ] Пустой CIDR при создании scan => понятная ошибка - [ ] Некорректный `scan_id` в API => `404`/сообщение об ошибке - [ ] Некорректные query-параметры (`limit`, `from/to`) => `400` ## 8) Кроссплатформенная приемка (обязательно) ### Linux - [ ] Запуск `go run ./cmd/server` успешен - [ ] Все пункты 1-7 пройдены ### Windows - [ ] Запуск `go run ./cmd/server` (или `nettopo-server.exe`) успешен - [ ] Все пункты 1-7 пройдены ## 9) Результат приемки - [ ] Linux: PASS - [ ] Windows: PASS - [ ] Общий статус: READY / NOT READY ## Примечания - LLDP/SNMP результаты зависят от реальной сети, ACL и SNMP-доступа устройств. - Если SNMP отключен или недоступен, topology будет частичной.