auto-sync: 2026-05-11 11:50:01

This commit is contained in:
Stream
2026-05-11 11:50:01 +03:00
parent 5cb37d34e6
commit 3dcc011fc2
3 changed files with 415 additions and 25 deletions

View File

@@ -0,0 +1,257 @@
# Тест-кейсы: Рельеф (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 фиксит → Стрим перепроверяет
Всё зелёное → Стрим даёт отмашку Славе
```