258 lines
10 KiB
Markdown
258 lines
10 KiB
Markdown
# Тест-кейсы: Рельеф (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 фиксит → Стрим перепроверяет
|
||
↓
|
||
Всё зелёное → Стрим даёт отмашку Славе
|
||
```
|