12 KiB
12 KiB
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 |
|
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 трек отображается на карте