diff --git a/docs/work-items/ET-013/13-test-report.md b/docs/work-items/ET-013/13-test-report.md index 350a1eb..40509a4 100644 --- a/docs/work-items/ET-013/13-test-report.md +++ b/docs/work-items/ET-013/13-test-report.md @@ -2,7 +2,7 @@ type: test-report work_item_id: ET-013 title: "Test Report: Перепады высот на z9-z11 — zoom-aware paint" -version: 17 +version: 18 status: blocked verdict: BLOCKED created_at: 2026-06-04 @@ -18,6 +18,89 @@ adr_refs: # Test Report — ET-013 +> **v18 (2026-06-07).** Независимый перепрогон (tester re-run, свежий +> экземпляр). Состояние кода ET-013 неизменно (фича в `main`; +> `git diff main...HEAD` затрагивает **только docs**). Review — +> **APPROVED** (P0/P1 в коде нет). Прогон полного регресса выполнен в +> чистом venv `/tmp/et013venv` (`shapely==2.0.4`, `fastapi`, `httpx`). +> Итог совпадает с v1..v17: **код, автотесты, lint и деплой зелёные, +> но инфраструктурный блокер не устранён** — на test-среде по-прежнему +> отсутствуют z9-тайлы hillshade. **Вердикт: BLOCKED** (данные/PH-6, +> не дефект кода → `back-to:dev` не требуется). +> +> **Что прогнано в v18:** +> - **Health (Шаг 1).** `curl` в песочнице недоступен → probe через +> `python3 urllib`. `GET /enduro/api/health` → **200** +> (`{"status":"ok","db_path":"/app/data/centralfederal.sqlite","db_exists":true}`). +> - **Полный авто-регресс (Шаг 2)** (`pytest tests/`) → +> **254 passed, 7 skipped, 4 deselected, 0 failed** (4.23 s). +> Регрессий ET-007/008/009/011/012 нет (AC-17 ✅, AC-18 ✅). +> - **ET-013 unit+integration** (`test_terrain_paint.py` + +> `test_terrain_z9_tiles.py`) → **23 passed / 7 skipped** (0.56 s). +> 17 unit PASS (opacity/contrast stops + монотонность, `nearest`, +> регрессия z8=0.70, пик z9-z11≥0.80, обратная совместимость +> `applyTerrainLayer`, порог `zoom < 9` + отсутствие `< 10`, hint +> «Зум 9+», call-count); 6 integration PASS (whitelist +> hypso/hillshade/tri, 404 на unknown-layer/missing-tile/ +> invalid-zoom); 7 SKIP — нет PNG-fixtures. AC-15/16/22 ✅. +> - **Lint.** `ruff check src/api` → **All checks passed!** (exit 0, +> AC-18 ✅). +> - **Деплой ET-013 на test подтверждён прямым fetch:** `/enduro/app.js` +> (200, 132 149 B) содержит `HILLSHADE_PAINT`, `TRI_PAINT`, +> `raster-contrast`, `'nearest'`, `zoom < 9`; **нет** `zoom < 10`. +> `/enduro/index.html` hint = «Зум 9+» (нет «Зум 10+»). AC-01 ✅. +> - **❌ Pre-deploy probe AC-19 / REQ-F-20 §1 — снова FAIL (P1, данные):** +> канонические тайлы `hillshade 9/308/158`, `10/617/317`, +> `11/1234/635` (XYZ) → **404/404/404**. Grid-скан 5×5 вокруг +> `[37.6, 54.5]` обеими схемами (XYZ и TMS) → **hillshade z9 = +> 0/50, все 404**. Контроль: **TRI z9 (TMS) → 200**, +> **hillshade z10 (TMS) → 200**. Слой hillshade по-прежнему +> начинается с z10 по TMS-схеме. **PH-6 follow-up из v1..v17 не +> выполнен.** +> - **Следствие для UX:** деплой понизил UI-минзум hillshade до z9 и +> запрашивает `/terrain/hillshade/9/*`, но тайлов нет → на z9 +> включённые «Тени рельефа» дают пустой слой; видны только +> «Перепады» (TRI z9 есть). Нарушены **AC-03/07/13/19**. +> - **UI Playwright (TC-UI-01..12) — NOT EXECUTED (Шаг 4):** +> `$UI_TEST_RUNNER` не задан, `/home/slin/tools/ui-test/run_tests.js` +> отсутствует, `npx`/`playwright` в песочнице нет (есть только +> `node`), baseline-скриншотов нет. Шаг 4 пропущен из-за окружения; +> z9-визуальные TC всё равно не прошли бы без z9-тайлов. +> +> **Заключение v18:** дефекта кода нет (Review APPROVED; unit/ +> integration/lint/полный регресс зелёные; деплой корректен). Блокер — +> инфраструктурный/данные: отсутствие z9-тайлов hillshade на +> test-среде. `back-to:dev` не требуется. Разблокировка = **PH-6 +> follow-up** (нарезать `data/terrain/hillshade/9/*` по TMS-схеме z10+ +> и задеплоить), после чего повторить AC-03/07/13/19 и UI +> TC-UI-01/03/07. +> +> ## Visual / UI тесты (v18) +> +> UI Playwright-раннер в окружении тестировщика недоступен → ни один +> visual-TC не выполнен. Таблица отражает статус прогона, не вердикт +> по коду. +> +> | TC | Назначение | Статус | Severity / прим. | +> |---|---|---|---| +> | TC-UI-01-Z9 | hillshade доступен/виден на z9 | NOT EXECUTED | блокер: нет z9-тайлов + нет раннера | +> | TC-UI-02-Z8-REGRESS | TRI на z8 как до ET-013 | NOT EXECUTED | нет раннера | +> | TC-UI-03-Z9-Q | читаемость z9 (оба слоя) | NOT EXECUTED | блокер: нет z9 hillshade | +> | TC-UI-04-Z10-Q | читаемость z10 | NOT EXECUTED | нет раннера (тайлы z10 есть) | +> | TC-UI-05-Z11-Q | читаемость z11 | NOT EXECUTED | нет раннера (тайлы z11 есть) | +> | TC-UI-06-Z14-REGRESS | hillshade не перегрет z14 | NOT EXECUTED | нет раннера | +> | TC-UI-07-Z9-MOBILE | mobile z9 | NOT EXECUTED | блокер: нет z9 hillshade | +> | TC-UI-08-Z10-SAT-Q | спутник + hillshade z10 | NOT EXECUTED | нет раннера | +> | TC-UI-09-Z10-DARK-Q | тёмная тема + hillshade z10 | NOT EXECUTED | нет раннера | +> | TC-UI-10-PERSIST | localStorage переживает F5 | NOT EXECUTED | нет раннера | +> | TC-UI-11-NETWORK-Q | сетевой объём M-10 | NOT EXECUTED | нет раннера + нет baseline | +> | TC-UI-12-Z9-PAN | панорамирование z9 | NOT EXECUTED | нет раннера | +> +> Severity по блокеру: **P1** (целевой UX ET-013 на z9 для hillshade +> недостижим без данных). Это данные/инфра, не код. +> +> --- + > **v17 (2026-06-07).** Независимый перепрогон (tester re-run, свежий > экземпляр). Состояние кода ET-013 неизменно (фича в `main`; > `git diff main...HEAD` затрагивает **только docs** —