Ошибка: документ не определен - PullRequest
0 голосов
/ 26 июня 2018

Я хочу протестировать свойство HTML-сети с помощью Chai следующим образом:

const chai = require('chai');
const expect  = chai.expect;
expect(document.getElementById('ref_button')).to.have.attr('disabled');

Когда я поставлю эту строку от Чай-Дом chai.use(require('chai-dom')) это ошибка:

Unhandled rejection ReferenceError: document is not defined at     
C:\Users\67563478\new_workspace\onconsup\node_modules\chai-dom\chai-dom.js:69:53 at Object.exports.use
(C:\Users\67563478\new_workspace\onconsup\node_modules\chai\lib\chai.js:39:5)
И строка внутри Chai-Dom, который через ошибку это:
NODE_LIST_STRING = Object.prototype.toString.call(document.childNodes),

УДАЛЕН ЭТУ ЛИНИЮ И ЭТО ОШИБКА НЕ БОЛЬШЕ Теперь ошибка document is not defined для строки document.getElementById. Что я должен делать? Может быть, библиотека чай-дом устарела?

1 Ответ

0 голосов
/ 26 июня 2018

document - глобальная переменная, специфичная для браузера, которая не определена в среде Node.js, поэтому, когда вы ссылаетесь на document chai, не имеет ни малейшего представления, что это такое и как его найти.

Более того, (вероятно - поскольку вы не показали, как HTML-файл подключен к Chai), нет связи между кнопкой и ее тестом.

Чтобы решить проблему, вы можете взглянуть на JSDOM (https://github.com/jsdom/jsdom), который реализует стандарты WHATWG DOM и HTML. В качестве альтернативы, вы можете использовать браузер без головы, такой как Chrome без головы (https://github.com/GoogleChrome/puppeteer).

Чтобы выбрать нужную опцию, требуется немного больше знаний оваш вариант использования.

...