Files
enduro-trails/docs/work-items/ET-007/03-acceptance-criteria.md
claude-bot d7d06bb046
All checks were successful
CI / lint (push) Successful in 4s
CI / test (push) Successful in 6s
CI / build (push) Successful in 1s
docs(ET-007): analyst artifacts - BRD, TRZ, AC, TestPlan, UI tests
2026-05-31 18:28:31 +00:00

10 KiB
Raw Blame History

type, work_item_id, title, version, status, created_at, updated_at, authors
type work_item_id title version status created_at updated_at authors
acceptance-criteria ET-007 AC: Спутниковая карта (Схема / Спутник) 1 draft 2026-05-31 2026-05-31
agent:analyst

Acceptance Criteria — ET-007: Спутниковая карта (Схема / Спутник)

AC-01: UI переключателя

Feature: Переключатель подложки в попапе слоёв

  Scenario: Открытие попапа показывает переключатель
    Given пользователь находится на карте
    When пользователь нажимает кнопку «Рельеф» (#terrain-toggle)
    Then открывается попап #terrain-popup
    And в попапе виден segmented-control «Подложка» с кнопками «Схема» и «Спутник»
    And одна из кнопок имеет класс .active

  Scenario: Default — Схема
    Given localStorage пуст (или ключ 'map-base-layer' не задан)
    When пользователь открывает попап слоёв
    Then активна кнопка «Схема» (#base-btn-schematic)
    And не активна кнопка «Спутник» (#base-btn-satellite)

AC-02: Переключение на «Спутник»

Feature: Переключение Схема → Спутник

  Scenario: Базовое переключение
    Given активна подложка «Схема»
    When пользователь нажимает «Спутник» в попапе слоёв
    Then кнопка «Спутник» получает класс .active
    And кнопка «Схема» теряет класс .active
    And на карте слой osm-base скрыт (visibility=none)
    And на карте появляется слой satellite-base (visibility=visible)
    And положение карты (center, zoom, bearing, pitch) не изменилось

  Scenario: Атрибуция Esri отображается
    Given пользователь включил режим «Спутник»
    Then в нижнем правом углу карты видна атрибуция «Source: Esri, Maxar, Earthstar Geographics, and the GIS User Community»

AC-03: Переключение на «Схема»

Feature: Переключение Спутник → Схема

  Scenario: Возврат на схему
    Given активна подложка «Спутник»
    When пользователь нажимает «Схема» в попапе слоёв
    Then кнопка «Схема» получает класс .active
    And слой osm-base снова виден (visibility=visible)
    And слой satellite-base скрыт (visibility=none), но source остаётся в стиле
    And положение карты не изменилось

AC-04: Совместимость со слоями приложения

Feature: Слои поверх спутника

  Scenario: Грунтовки и тропы видны на спутнике
    Given активна подложка «Спутник»
    And в попапе включены «Грунтовки» и «Тропы»
    Then на карте видны линии грунтовок и троп поверх спутника
    And линии имеют визуально различимую обводку (halo) для контраста

  Scenario: POI видны на спутнике
    Given активна подложка «Спутник»
    And в попапе включён «POI»
    Then на карте видны маркеры POI поверх спутника
    And подписи POI читаемы (имеют тёмный halo)

  Scenario: Hillshade поверх спутника
    Given активна подложка «Спутник»
    When пользователь включает «Тени рельефа»
    Then на карте видны и спутник, и hillshade (hillshade поверх спутника)

  Scenario: Маршрут OSRM поверх спутника
    Given пользователь построил маршрут через OSRM
    When пользователь переключает подложку на «Спутник»
    Then маршрут остаётся виден поверх спутника
    And статистика маршрута сохранена

  Scenario: GPX-треки поверх спутника
    Given пользователь загрузил GPX-трек
    When пользователь переключает подложку на «Спутник»
    Then GPX-линии и waypoints остаются видны поверх спутника

AC-05: Сохранение в localStorage

Feature: Persistence выбора подложки

  Scenario: Сохранение при переключении
    Given активна подложка «Схема»
    When пользователь нажимает «Спутник»
    Then localStorage['map-base-layer'] === 'satellite'

  Scenario: Восстановление после reload
    Given localStorage['map-base-layer'] === 'satellite'
    When пользователь перезагружает страницу
    Then после загрузки карты активна подложка «Спутник»
    And кнопка «Спутник» имеет класс .active

AC-06: Восстановление при смене темы

Feature: Подложка переживает смену темы

  Scenario: Переключение тёмной/светлой темы в режиме «Спутник»
    Given активна подложка «Спутник»
    When пользователь переключает тему (тёмная ↔ светлая)
    Then после завершения map.setStyle() спутниковый слой восстановлен
    And подложка «Спутник» остаётся активной
    And все слои поверх (trails, POI, маршрут, GPX) восстановлены

  Scenario: Переключение слоёв terrain в режиме «Спутник»
    Given активна подложка «Спутник»
    When пользователь включает или выключает «Тени рельефа» / «Перепады»
    Then подложка «Спутник» остаётся активной

AC-07: Совместимость с режимами тулбара

Feature: Подложка не мешает другим режимам

  Scenario: Режим «Маршрут» на спутнике
    Given активна подложка «Спутник»
    When пользователь активирует режим «Маршрут»
    And тапает 2 точки на карте
    Then маршрут строится корректно
    And линия маршрута видна на спутнике

  Scenario: Режим «Разведка» на спутнике
    Given активна подложка «Спутник»
    When пользователь активирует режим «Разведка» и тапает на карту
    Then круг радиуса разведки видим
    And статистика разведки отображается

  Scenario: Линейка на спутнике
    Given активна подложка «Спутник»
    When пользователь активирует «Линейка» и расставляет точки
    Then линия линейки видна
    And расстояние отображается

  Scenario: Поиск на спутнике
    Given активна подложка «Спутник»
    When пользователь нажимает «Поиск» и вводит запрос
    Then результаты поиска отображаются
    And карта корректно центрируется на найденной точке

AC-08: Производительность

Feature: Скорость переключения

  Scenario: Переключение Схема → Спутник
    Given активна подложка «Схема» и сеть ≥ 5 Мбит/с
    When пользователь нажимает «Спутник»
    Then первая спутниковая плитка отображается в течение ≤ 500 мс

  Scenario: Переключение Спутник → Схема
    Given активна подложка «Спутник» (тайлы уже подгружены)
    When пользователь нажимает «Схема»
    Then смена визуально мгновенная (≤ 100 мс)

AC-09: Mobile UI

Feature: Переключатель на мобильных устройствах

  Scenario: Попап слоёв на мобильном
    Given пользователь открыл приложение на мобильном устройстве (виртуальный viewport 375×812)
    When пользователь открывает попап слоёв
    Then переключатель «Подложка» виден полностью
    And обе кнопки нажимаемы (touch target ≥ 34px)
    And не перекрывает другие элементы попапа

AC-10: Не ломает существующий функционал

Feature: Регресс-проверка

  Scenario: Все режимы работают как в режиме «Схема», так и в «Спутник»
    Given пользователь использует приложение
    Then режимы Маршрут, Связка, Красивый, Разведка, Линейка, Поиск, Метка, GPX
        работают одинаково в обеих подложках
    And переключение единиц измерения (км/мили) работает в обеих подложках
    And переключение темы работает в обеих подложках