Zombie.js Ошибка загрузки jQuery "j.getClientRects не является функцией"

Итак, сначала я прочитал этот вопрос переполнения стека, и он не похож на мою проблему.

В основном я пытаюсь использовать Mocha и Zombie.js для запуска некоторых тестов на моем сайте Node.js.

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

Но в настоящее время он даже не работает с browser.assert.success(); поэтому я сейчас пытаюсь решить эту проблему, прежде чем перейти к проверке элементов.

browser.visit('/login', function() {
    browser.fill('email', 'test1@test.com');
    browser.fill('password', 'testtest');
    browser.pressButton('Login').then(function() {
        browser.assert.success();
    }).then(done, done);
});

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

<script>
    $("#paymentModal").modal('show');
</script>

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

https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3
}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpan
TypeError: j.getClientRects is not a function
 at k (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:26891)
 at Object.n.extend.pixelMarginRight (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:25936)
 at a.getComputedStyle.Sa (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:27592)
 at Function.n.extend.css (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:30895)
 at https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:4:520
 at Y (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:4661)
 at n.fn.extend.css (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:4:361)
 at c.setScrollbar (http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js:6:18612)
 at c.show (http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js:6:14692)
 at .<anonymous> (http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js:6:13878)

Похоже, по какой-то причине Zombie.js не загружает jQuery на эту страницу или произошла ошибка. Но в этом предыдущем вопросе Stack Overflow и ответе в начале вопроса похоже, что Zombie.js может загрузить jQuery.

Вы не можете загрузить jQuery с Zombie.js? Как я могу это исправить? Похоже, очень простая вещь для тестирования страниц с помощью jQuery. Есть идеи?

Дайте мне знать, если вам нужна дополнительная информация или что-нибудь. Благодарю.

РЕДАКТИРОВАТЬ по какой-то причине при переходе на версию jQuery 1.11.3 кажется, работает, и ошибка исчезает. Есть причина для этого?

1 ответ

Решение

Эта ошибка исправлена: https://github.com/assaf/zombie/issues/1031

Принятие jsdom 8/9 в качестве решения вашей проблемы оказалось сложнее, чем я хотел. Должно быть довольно легко добавить фиктивную реализацию для getClientRects(), чтобы обойти эту конкретную ошибку. Попробую и посмотрю как пойдет

Добавить заглушку реализации getClientRects() было просто. Я опубликовал 5.0.1 с исправлением этой конкретной ошибки.

mdlavin

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