/track-viewer

Тестовое задание: Поиск и показ трекингов

Primary LanguageJavaScript

track-viewer

Тестовое задание: Поиск и показ трекингов

Описание решения

Map

Компонент-обертка над глобальными методами работы с картой

Track

Компонент, инкапсулирующий трек (набор точек) и предоставляющий методы для работы с ним

TrackPlayer

Основной компонент, показывающий загруженный трек на карте, указанной при создании

Во время воспроизведения выполняет бесконечный цикл, каждая итерация которого состоит из шагов:

  1. увеличить текущее время на время прошедшее с предыдущей итерации умноженное на скорость воспроизведения
  2. показать точку, соответствующую текущему времени

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