Код Middle Page Object и архитектура обновлено

Путь страницы по шаблону маршрута

Условие

Page Object открывает страницу по шаблону маршрута. Напишите buildPath(template, params):

  • сегменты вида :name заменить на encodeURIComponent(params[name]);
  • если параметра для сегмента нет, вернуть null;
  • оставшиеся параметры добавить строкой запроса ?k=v&k2=v2 в алфавитном порядке ключей, ключ и значение через encodeURIComponent;
  • если оставшихся нет, без ?.

Примеры

buildPath("/users/:id", {"id":42}) // "/users/42"
buildPath("/users/:id/orders/:orderId", {"id":1,"orderId":"A-7"}) // "/users/1/orders/A-7"
buildPath("/catalog", {"q":"чайник","page":2}) // "/catalog?page=2&q=%D1%87%D0%B0%D0%B9%D0%BD%D0%B8%D0%BA"

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме