10 KiB
Тест-кейсы: Рельеф (Terrain Layer) — Фаза 5.4
Дата: 2026-05-11
Версия BRD: BRD_TERRAIN.md
Исполнители: Dev (автотесты + деплой), Стрим (ручная проверка), Слава (финальная приёмка)
Распределение
| Кто | Что |
|---|---|
| 🤖 Dev | TC-01..TC-06 — данные и деплой (автоматически, в процессе реализации) |
| 🌊 Стрим | TC-07..TC-22 — ручная проверка через браузер/curl после деплоя |
| 👤 Слава | Финальная приёмка — только после «✅ Всё зелёное» от Стрим |
Блок 1: Данные и инфраструктура (Dev)
TC-01 — SRTM тайлы скачаны
Исполнитель: Dev
Проверка:
ls /home/slin/enduro-trails/data/srtm/*.hgt | wc -l
# Ожидаемо: >= 30 файлов
Ожидаемый результат: ≥30 .hgt файлов в директории
TC-02 — Тайлы hypso сгенерированы
Исполнитель: Dev
Проверка:
find /home/slin/enduro-trails/data/terrain/hypso -name "*.png" | wc -l
# Ожидаемо: > 1000 файлов (зумы 5-15)
Ожидаемый результат: PNG тайлы присутствуют для зумов 5-15
TC-03 — Тайлы hillshade сгенерированы
Исполнитель: Dev
Проверка:
find /home/slin/enduro-trails/data/terrain/hillshade -name "*.png" | wc -l
# Ожидаемо: > 500 файлов (зумы 10-15)
Ожидаемый результат: PNG тайлы присутствуют для зумов 10-15
TC-04 — Тайл hypso доступен через nginx
Исполнитель: Dev
Проверка:
curl -o /dev/null -s -w "%{http_code}" \
"https://openclaw.mva154.duckdns.org/enduro/terrain/hypso/8/75/42.png"
# Ожидаемо: 200
Ожидаемый результат: HTTP 200, Content-Type: image/png
TC-05 — Тайл hillshade доступен через nginx
Исполнитель: Dev
Проверка:
curl -o /dev/null -s -w "%{http_code}" \
"https://openclaw.mva154.duckdns.org/enduro/terrain/hillshade/12/2400/1340.png"
# Ожидаемо: 200
Ожидаемый результат: HTTP 200, Content-Type: image/png
TC-06 — Cache-Control заголовок
Исполнитель: Dev
Проверка:
curl -I "https://openclaw.mva154.duckdns.org/enduro/terrain/hypso/8/75/42.png" \
| grep -i cache-control
# Ожидаемо: Cache-Control: public, immutable
Ожидаемый результат: Cache-Control: public, immutable в заголовках
Блок 2: Фронтенд — кнопка и попап (Стрим)
TC-07 — Кнопка 🏔️ присутствует в toolbar
Исполнитель: Стрим
Шаги: Открыть https://openclaw.mva154.duckdns.org/enduro/
Ожидаемый результат: Кнопка 🏔️ видна в toolbar, после кнопки слоёв, перед линейкой
Проверка: curl + grep по terrain-toggle в HTML
TC-08 — Попап открывается по нажатию
Исполнитель: Стрим
Шаги: Нажать кнопку 🏔️
Ожидаемый результат: Появляется попап с двумя чекбоксами «Цветной рельеф» и «Теневой рельеф»
TC-09 — Попап закрывается повторным нажатием
Исполнитель: Стрим
Шаги: Нажать 🏔️ → попап открылся → нажать 🏔️ снова
Ожидаемый результат: Попап закрылся
TC-10 — Попап закрывается по тапу вне
Исполнитель: Стрим
Шаги: Открыть попап → кликнуть на карту
Ожидаемый результат: Попап закрылся
TC-11 — Теневой чекбокс disabled на малом зуме
Исполнитель: Стрим
Шаги: Зум 8 → открыть попап
Ожидаемый результат: Чекбокс «Теневой рельеф» серый (disabled), видна подпись «Доступно при приближении»
TC-12 — Теневой чекбокс enabled на зуме 10+
Исполнитель: Стрим
Шаги: Зум 10 → открыть попап
Ожидаемый результат: Чекбокс «Теневой рельеф» активен, подпись скрыта
Блок 3: Слои на карте (Стрим)
TC-13 — Цветной рельеф включается
Исполнитель: Стрим
Шаги: Зум 6 → 🏔️ → включить «Цветной рельеф»
Ожидаемый результат: На карте появляется цветная заливка рельефа (зелёный/жёлтый/коричневый)
TC-14 — Цветной рельеф выключается
Исполнитель: Стрим
Шаги: Включить → выключить «Цветной рельеф»
Ожидаемый результат: Цветная заливка исчезает, карта как была
TC-15 — Теневой рельеф включается на зуме 12
Исполнитель: Стрим
Шаги: Зум 12 → 🏔️ → включить «Теневой рельеф»
Ожидаемый результат: Появляются тени на склонах и оврагах
TC-16 — Теневой рельеф не виден на зуме < 10 даже если включён
Исполнитель: Стрим
Шаги: Включить «Теневой» на зуме 12 → отзумить до зума 8
Ожидаемый результат: Тени исчезают (слой скрыт), чекбокс остаётся checked
TC-17 — Теневой рельеф возвращается при приближении
Исполнитель: Стрим
Шаги: Продолжение TC-16 → зумить обратно до 10+
Ожидаемый результат: Тени снова появляются (чекбокс был checked)
TC-18 — Оба слоя одновременно
Исполнитель: Стрим
Шаги: Зум 12 → включить оба чекбокса
Ожидаемый результат: Видны и цвет рельефа, и тени поверх. Дороги видны поверх рельефа.
TC-19 — Рельеф под дорогами (z-index)
Исполнитель: Стрим
Шаги: Включить оба слоя, зум 12
Ожидаемый результат: Дороги и треки видны поверх рельефа, не перекрываются
TC-20 — Кнопка подсвечивается при активном слое
Исполнитель: Стрим
Шаги: Включить хотя бы один слой
Ожидаемый результат: Кнопка 🏔️ подсвечена (класс active)
TC-21 — Кнопка не подсвечена когда оба выключены
Исполнитель: Стрим
Шаги: Выключить оба слоя
Ожидаемый результат: Кнопка 🏔️ без подсветки
Блок 4: Персистентность (Стрим)
TC-22 — Состояние сохраняется после перезагрузки
Исполнитель: Стрим
Шаги:
- Включить «Цветной рельеф», выключить «Теневой»
- Перезагрузить страницу (F5) Ожидаемый результат: «Цветной» включён, «Теневой» выключен — как было до перезагрузки
TC-23 — Оба выключены после перезагрузки (дефолт)
Исполнитель: Стрим
Шаги: Выключить оба → перезагрузить
Ожидаемый результат: Оба чекбокса сняты, слои не видны
Блок 5: Мобильный (Стрим — через DevTools mobile emulation)
TC-24 — Попап не перекрывает кнопки на мобильном
Исполнитель: Стрим
Шаги: DevTools → iPhone 14 → открыть попап
Ожидаемый результат: Попап виден полностью, не перекрывает toolbar и кнопки масштаба
TC-25 — Тап вне попапа закрывает его на мобильном
Исполнитель: Стрим
Шаги: Мобильная эмуляция → открыть попап → тапнуть на карту
Ожидаемый результат: Попап закрылся
Итого
| Блок | Тест-кейсов | Исполнитель |
|---|---|---|
| 1. Данные и инфраструктура | TC-01..TC-06 (6 шт) | 🤖 Dev |
| 2. Кнопка и попап | TC-07..TC-12 (6 шт) | 🌊 Стрим |
| 3. Слои на карте | TC-13..TC-21 (9 шт) | 🌊 Стрим |
| 4. Персистентность | TC-22..TC-23 (2 шт) | 🌊 Стрим |
| 5. Мобильный | TC-24..TC-25 (2 шт) | 🌊 Стрим |
| Итого | 25 тест-кейсов |
Порядок работы
Dev реализует → деплоит → сообщает Стрим
↓
Стрим прогоняет TC-07..TC-25 (ручные)
↓
Баги → Dev фиксит → Стрим перепроверяет
↓
Всё зелёное → Стрим даёт отмашку Славе