# Тест-кейсы: Рельеф (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 **Проверка:** ```bash ls /home/slin/enduro-trails/data/srtm/*.hgt | wc -l # Ожидаемо: >= 30 файлов ``` **Ожидаемый результат:** ≥30 `.hgt` файлов в директории --- ### TC-02 — Тайлы hypso сгенерированы **Исполнитель:** Dev **Проверка:** ```bash find /home/slin/enduro-trails/data/terrain/hypso -name "*.png" | wc -l # Ожидаемо: > 1000 файлов (зумы 5-15) ``` **Ожидаемый результат:** PNG тайлы присутствуют для зумов 5-15 --- ### TC-03 — Тайлы hillshade сгенерированы **Исполнитель:** Dev **Проверка:** ```bash find /home/slin/enduro-trails/data/terrain/hillshade -name "*.png" | wc -l # Ожидаемо: > 500 файлов (зумы 10-15) ``` **Ожидаемый результат:** PNG тайлы присутствуют для зумов 10-15 --- ### TC-04 — Тайл hypso доступен через nginx **Исполнитель:** Dev **Проверка:** ```bash 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 **Проверка:** ```bash 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 **Проверка:** ```bash 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 — Состояние сохраняется после перезагрузки **Исполнитель:** Стрим **Шаги:** 1. Включить «Цветной рельеф», выключить «Теневой» 2. Перезагрузить страницу (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 фиксит → Стрим перепроверяет ↓ Всё зелёное → Стрим даёт отмашку Славе ```