Jest测试中的Preact Compat不兼容

时间:2019-07-10 16:29:01

标签: javascript reactjs jestjs preact

我使用的是preact 8.4.2,并且也具有preact-compat。

我正在使用linkifyjs/react来呈现文本链接。这在开发中工作正常,但是当尝试导入具有以下错误的依赖于React的`linkifyjs / react'库时,我的测试失败了:

  ● 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 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。对我造成问题的是preact-compatenzyme-adapter-preact-pure都在试图使Preact vNode看起来像React元素。

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

enzyme-adapter-preact-pure的请求请求为我解决了这些问题。因此,使用酶适应剂-preact-pure@^2.0.1时,一切都会按预期进行。