Files
enduro-trails/docs/work-items/ET-006/03-acceptance-criteria.md

12 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-006 AC: Загрузка и визуализация GPX-треков 2 approved 2026-05-22 2026-05-22
agent:analyst

Acceptance Criteria — ET-006: Загрузка и визуализация GPX-треков

AC-01: Загрузка файла через кнопку

Feature: Загрузка GPX-файла

  Scenario: Успешная загрузка одного файла
    Given пользователь находится на карте
    When пользователь нажимает кнопку «Загрузить GPX» в правой панели
    And выбирает валидный GPX-файл размером < 50 МБ
    Then файл парсится без ошибок
    And трек отображается на карте цветной линией
    And карта выполняет fit bounds по треку
    And в панели GPX-треков появляется запись с именем файла

  Scenario: Файл превышает лимит
    Given пользователь находится на карте
    When пользователь выбирает GPX-файл размером > 50 МБ
    Then показывается toast «Файл слишком большой (макс. 50 МБ)»
    And трек не загружается

  Scenario: Невалидный файл
    Given пользователь находится на карте
    When пользователь выбирает файл с невалидным XML
    Then показывается toast «Не удалось прочитать GPX-файл»
    And трек не загружается

  Scenario: Пустой GPX (без треков и waypoints)
    Given пользователь находится на карте
    When пользователь выбирает GPX-файл без <trk> и без <wpt>
    Then показывается toast «GPX-файл не содержит данных»

AC-02: Визуализация трека

Feature: Отрисовка трека на карте

  Scenario: Один трек в файле
    Given загружен GPX-файл с одним треком
    Then на карте отображается линия трека
    And линия имеет цвет из палитры
    And толщина линии 4px

  Scenario: Несколько треков в одном файле
    Given загружен GPX-файл с 3 треками
    Then на карте отображаются 3 линии
    And все линии одного цвета (цвет файла)
    And в панели — одна запись (имя файла) с 3 треками внутри

  Scenario: Несколько файлов
    Given загружены 3 GPX-файла
    Then на карте отображаются треки из всех файлов
    And каждый файл имеет свой цвет из палитры
    And в панели — 3 записи

AC-03: Waypoints

Feature: Отображение waypoints

  Scenario: Waypoints с именами
    Given загружен GPX-файл с waypoints, у которых есть <name>
    Then на карте отображаются маркеры в позициях waypoints
    And рядом с каждым маркером отображается имя

  Scenario: Waypoints без имён
    Given загружен GPX-файл с waypoints без <name>
    Then на карте отображаются маркеры без подписей

  Scenario: Файл без waypoints
    Given загружен GPX-файл без <wpt>
    Then маркеры waypoints не отображаются
    And трек отображается нормально

AC-04: Fit bounds

Feature: Автоцентрирование карты

  Scenario: Карта центрируется на загруженном треке
    Given карта показывает произвольную область
    When пользователь загружает GPX-файл
    Then карта выполняет fit bounds по всем точкам файла
    And padding составляет 50px со всех сторон

  Scenario: Загрузка второго файла
    Given на карте уже есть загруженный трек
    When пользователь загружает второй GPX-файл
    Then карта выполняет fit bounds только по второму файлу

AC-05: Удаление трека

Feature: Удаление загруженного трека

  Scenario: Удаление трека из панели
    Given загружены 2 GPX-файла
    When пользователь нажимает кнопку удаления (✕) у первого трека
    Then первый трек исчезает с карты (линия + waypoints)
    And первый трек исчезает из панели
    And второй трек остаётся на карте

  Scenario: Удаление активного трека
    Given загружены 2 GPX-файла, второй — активный (показана статистика)
    When пользователь удаляет второй трек
    Then профиль высот и статистика скрываются
    And первый трек остаётся на карте
    And первый трек не становится автоматически активным

  Scenario: Удаление последнего трека
    Given загружен 1 GPX-файл
    When пользователь удаляет его
    Then карта пуста (нет GPX-слоёв)
    And панель GPX показывает пустое состояние

AC-06: Панель управления (sheet-gpx)

Feature: Панель GPX-треков

  Scenario: Открытие панели при загрузке
    Given панель GPX закрыта
    When пользователь загружает первый GPX-файл
    Then панель GPX открывается автоматически

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

  Scenario: Выбор активного трека
    Given загружены 3 GPX-файла
    When пользователь тапает на второй трек в списке
    Then второй трек выделяется визуально
    And показывается его статистика и профиль высот

AC-07: Профиль высот

Feature: Профиль высот

  Scenario: Трек с данными высот
    Given выбран активный трек с данными <ele>
    Then в панели отображается график профиля высот
    And ось X — расстояние (км)
    And ось Y — высота (м)
    And линия графика — цвет трека

  Scenario: Трек без данных высот
    Given выбран активный трек без данных <ele>
    Then вместо графика отображается текст «Данные высот отсутствуют»

  Scenario: Интерактивность профиля
    Given отображается профиль высот
    When пользователь наводит курсор (или тапает) на точку графика
    Then показывается tooltip с высотой и расстоянием
    And на карте подсвечивается соответствующая точка трека

AC-08: Статистика трека

Feature: Статистика трека

  Scenario: Полная статистика (с высотами)
    Given выбран активный трек с данными <ele>
    Then отображаются: длина (км), набор высоты (м), сброс высоты (м), мин. высота (м), макс. высота (м)

  Scenario: Частичная статистика (без высот)
    Given выбран активный трек без данных <ele>
    Then отображается только длина (км)
    And остальные поля показывают «—»

AC-09: Интерактивность на карте

Feature: Клик по треку на карте

  Scenario: Выбор трека кликом
    Given на карте отображаются 3 трека из разных файлов
    When пользователь кликает на линию второго трека
    Then второй трек становится активным в панели
    And показывается его статистика и профиль высот

AC-10: Совместимость с другими режимами

Feature: Параллельная работа с роутингом

  Scenario: GPX + активный маршрут
    Given пользователь построил маршрут через OSRM
    And загрузил GPX-файл
    Then оба отображаются на карте одновременно
    And маршрут OSRM визуально выше GPX-трека
    And оба интерактивны

  Scenario: GPX + режим разведки
    Given пользователь в режиме разведки
    When загружает GPX-файл
    Then трек отображается на карте
    And режим разведки продолжает работать

AC-12: Сохранение при переключении стиля карты

Feature: Сохранение GPX-треков при смене стиля карты

  Scenario: Переключение тёмной темы
    Given загружен GPX-трек и отображается на карте
    When пользователь переключает тёмную тему
    Then трек остаётся на карте после смены стиля
    And waypoints остаются на карте
    And активный трек, его статистика и профиль высот сохраняются

  Scenario: Переключение слоёв рельефа
    Given загружены 2 GPX-трека
    When пользователь включает или выключает слой рельефа (hillshade / TRI)
    Then оба трека остаются на карте с прежними цветами
    And z-order GPX-слоёв сохраняется (ниже маршрута OSRM)

AC-11: Индикатор загрузки

Feature: Индикатор при парсинге

  Scenario: Большой файл
    Given пользователь выбирает GPX-файл > 10 МБ
    Then показывается индикатор загрузки (spinner)
    And после завершения парсинга индикатор скрывается
    And трек отображается на карте