Реагировать на возникновение гладкой библиотеки DND и «ошибка недопустимого вызова» - PullRequest
0 голосов
/ 24 сентября 2019

Библиотеки

  • Jest
  • Библиотека React Testing

Описание Когда я запускаю тест для компонента, который сам использует smooth-dnd.Работает нормально.Однако, когда я запускаю все свои тесты, я получаю эту ошибку недопустимого вызова.

Node.js из библиотеки jsdom

Object.defineProperty(Node.prototype, "childNodes", {
get() {
if (!this || !module.exports.is(this)) {
  throw new TypeError("Illegal invocation"); // Error here
}

return utils.getSameObject(this, "childNodes", () => {
  return utils.tryWrapperForImpl(this[impl]["childNodes"]);
});
 },

 enumerable: true,
 configurable: true
});

Это ошибка.

Test suite failed to run

TypeError: Illegal invocation

  at Node.get [as childNodes] (node_modules/jsdom/lib/jsdom/living/generated/Node.js:423:13)
  at Node.get (node_modules/smooth-dnd/dist/index.js:1:11462)
  at node_modules/smooth-dnd/dist/index.js:1:11356
  at node_modules/smooth-dnd/dist/index.js:1:96
  at Object.<anonymous> (node_modules/smooth-dnd/dist/index.js:1:195)
  at node_modules/react-smooth-dnd/dist/index.js:1:145`

Кажется, что smooth-dnd вызывает jsdom, а jsdom создает исключение.Но это происходит только тогда, когда я запускаю все свои тесты.Когда я запускаю их по отдельности, они работают нормально.

Для чего нужен узел в jsdom?

в соответствии с кодом, в котором эта строка перехватывает ошибку (!this || !module.exports.is(this)

Почему Node не будет определен, когда я запускаю все тесты, но определен, когда я запускаю тесты индивидуально?

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

...