Путь элемента привязки возвращает неопределенный в Rhino с env.js

Я столкнулся с проблемой, которая, я считаю, коренится в реализации якорных тегов в Rhino. Хотя я использую env.js, я подозреваю, что, возможно, я что-то неправильно настраиваю.

В частности, моя проблема возникает, когда я пытаюсь написать модульные тесты для кода, написанного для приложения angularjs. Когда я включаю angular.js (версии 1.2.1, чтобы представить), я получаю следующую ошибку:

TypeError: Cannot call method "charAt" of undefined

Я убежден, что ошибка является результатом этого звонка urlParsingNode.pathname с console.log вызов показывает, что pathname объект не определен

Я проследил инстанцирование urlParsingNode к этой строке, где мы видим, что это является результатом вызова document.createElement("a"); Далее мы видим, что они установили href атрибут в этой строке в надежде, что созданный тег привязки будет использовать браузер для правильного анализа URL.

Я должен верить, что я не первый, кто пытался выполнить модульное тестирование JS для угловых через Rhino, но до сих пор я не смог найти подходящее решение. Любые советы будут с благодарностью.

1 ответ

Решение

Нашел и исправил. pathname getter/setter просто не определен для HTMLAnchorElement в env.js,

Я отправил запрос на извлечение, но, к сожалению, проект выглядит почти заброшенным. Я также не мог понять, как собрать его в один файл. Похоже, возможно, кто-то взял это на себя, чтобы разбить его на require.js модули. Не стоит сражаться за мой случай использования.

Так что для всех, кто сталкивается с этой проблемой, у меня есть код, который вам нужен ниже. Принадлежит в HTMLAnchorElement.prototype, В моем экземпляре env.js 1.2, этот прототип начинается в строке 8075. Я добавил следующее в строке 8118.

get pathname() {
  var uri = Envjs.urlsplit(this.href);
  return uri.path;
},
set pathname(val) {
  var uri = Envjs.urlsplit(this.href);
  uri.path = val
  this.href(uri.urlunsplit(uri));
},

К вашему сведению, моя конкретная проблема решена с помощью этого запроса.

Другие вопросы по тегам