Несовместимость Preact Compat в тестах Jest - PullRequest
1 голос
/ 10 июля 2019

Я использую preact 8.4.2 и у меня также есть preact-compat.

Я использую linkifyjs/react для отображения ссылок в тексте. Это отлично работает в разработке, но мои тесты не выполняются при попытке импортировать зависимую от React библиотеку `linkifyjs / реаги 'с этой ошибкой:

  ● Test suite failed to run

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

      1 | import {h, Component, createRef} from 'preact';
    > 2 | import Linkify from 'linkifyjs/react';
        | ^

Я действительно не уверен, что означает эта ошибка, и я запутался, потому что preact-compat должен позволять использовать библиотеки с зависимостями React. Трассировка стека указывает на preact-compat / src / index.js: 60, который имеет:

Object.defineProperty(VNode.prototype, 'type', {
    get() {
        return this.nodeName;
    },
    set(v) {
        this.nodeName = v;
    },
    configurable: true
});

1 Ответ

1 голос
/ 18 июля 2019

Я столкнулся с той же проблемой.Для меня проблема заключалась в том, что и preact-compat, и enzyme-adapter-preact-pure пытались сделать Preact vNode похожим на элемент React.

https://github.com/preactjs/enzyme-adapter-preact-pure/pull/62

Этот запрос на извлечение для enzyme-adapter-preact-pure исправил эти проблемы для меня.Так что с ферментом-adapter-preact-pure@^2.0.1 все работает как надо.

...