track-viewer
Тестовое задание: Поиск и показ трекингов
Описание решения
Map
Компонент-обертка над глобальными методами работы с картой
Track
Компонент, инкапсулирующий трек (набор точек) и предоставляющий методы для работы с ним
TrackPlayer
Основной компонент, показывающий загруженный трек на карте, указанной при создании
Во время воспроизведения выполняет бесконечный цикл, каждая итерация которого состоит из шагов:
- увеличить текущее время на время прошедшее с предыдущей итерации умноженное на скорость воспроизведения
- показать точку, соответствующую текущему времени
index.html
Содержит код, не оформленный в отдельные компоненты. Этот код производит инициализацию приложения и инстантиацию и соединение указанных выше компонентов
Использованные фреймворки
- jQuery - манипулирование DOM
- jQuery UI - минималистичный набор компонентов пользовательского интерфейса.
- jQuery UI Timepicker - дополнение jQuery UI - компонент ввода времени
- Moment.js - универсальная библиотека для работы с датами-временем. Имеет расширение Moment Timezone для работы с часовыми поясами (включает в себя актуальные и независимые от ОС данные о часовым поясах)
Возможные настройки
TrackPlayer.UPDATE_CURRENT_TIME_INTERVAL
- время в миллисекундах между итерациями основного цикла во время воспроизведения трека. Значение по умолчанию - 100 мс
Автоматизированное тестирование
Для автоматизированного тестирования используется фреймворк Jasmine
Файлы в папке specs
содержат спецификации компонентов, которые можно запустить, открыв в браузере страницу SpecRunner.html
. Открытие и проверку на отсутствие ошибок на этой странице следует производить при каждой сборке приложения. Эту операцию можно производить либо в универсальном headless браузере либо в конкретных браузерах, совместимость с которыми необходимо гарантировать. Для удобства виртуальные машины и устройства с этими конкретными бразуерами можно объединить в Selenium Grid