jest js: wicg-inert не может переопределить свойство inert - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь сделать простой юнит-тест в React Modal.Если он крепится без реквизита.Вот файл test.js.

import React from "react";
import { mount } from "enzyme";
import MyModal from ".";
import "wicg-inert";
import "animate.css";

describe("MyModal component", () => {
  describe("When props is missing", () => {
    it("should be defined", () => {
      expect(() => mount(<MyModal />)).toBeDefined();
    });
  });
});

Сообщение об ошибке:

Test suite failed to run

TypeError: Cannot redefine property: inert
    at Function.defineProperty (<anonymous>)

  4 | import classnames from "classnames";
  5 | import MyButton, { MyButtonGroup } from "components/MyButton";
> 6 | import "wicg-inert";
  7 | import "animate.css";
  8 |
  9 | import "./MyModal.scss";

  at node_modules/wicg-inert/dist/inert.js:794:10
  at node_modules/wicg-inert/dist/inert.js:2:66
  at Object.<anonymous> (node_modules/wicg-inert/dist/inert.js:5:2)
  at Object.<anonymous> (src/components/MyModal/MyModal.jsx:6:1)
  at Object.<anonymous> (src/components/MyModal/index.mjs:1:318)
  at Object.<anonymous> (src/components/MyModal/MyModal.test.js:3:32)

В файле inert.js внутри узловых модулей.Первая строка - 792.

 var inertManager = new InertManager(document);

 Object.defineProperty(Element.prototype, 'inert', {
    enumerable: true,
    get: function get() {
       return this.hasAttribute('inert');
    },
    set: function set(inert) {
       inertManager.setInert(this, inert);
    }
 });

Абсолютно не знаю, как ее решить, нигде не могу найти объяснения.

1 Ответ

0 голосов
/ 22 февраля 2019

В package.json добавьте следующее:

"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-scripts test --env=jsdom --silent **--no-cache**",
    "eject": "react-scripts eject",
    "doc": "jsdoc -R src/README.md src/ -r -d doc/"
  },

В test.js удалите строку:

import "wicg-inert";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...