Использование JSDOM / Enzyme с React-native

Я совершенно не знаком с мобильным тестированием, мне было интересно, почему у меня есть ошибки в тесте с использованием Jsdom с Enzyme;

У меня есть тест:

describe("Rendering", () => {
    const wrapper = shallow(
        <PrescriptionList
            prescriptions={prescription}
            navigation={navigation}/>);
    const instance = mount(<PrescriptionList
        prescriptions={prescription}
        navigation={navigation}/>);
    it("should renders prescriptions correctly", () => {
        expect(wrapper.debug()).toMatchSnapshot();
    });

    it("should renders as much card as prescriptions", () => {
        expect(instance.find(PrescriptionCard)).toHaveLength(prescription.length);
    });
});

И у меня такие ошибки:

console.error node_modules/react-dom/cjs/react-dom.development.js:506
    Warning: The tag <Text> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.
        in Text (created by Text)
        in Text (created by Text)
        in Text (created by PrescriptionCard)

Для каждого узла моего компонента PrescriptionList.

Вот мой файл jest.config:

import {configure} from "enzyme";
import Adapter from "enzyme-adapter-react-16";
import {JSDOM} from "jsdom";

configure({adapter: new Adapter()});
const globalAny: any = global;
const jsdom = new JSDOM("<!doctype html><html><body></body></html>");
const {window} = jsdom;

function copyProps (src, target) {
    Object.defineProperties(target, {
        ...Object.getOwnPropertyDescriptors(src),
        ...Object.getOwnPropertyDescriptors(target),
    });
}

globalAny.window = window;
globalAny.document = window.document;
globalAny.navigator = {
    userAgent: "node.js"
};
globalAny.requestAnimationFrame = function (callback) {
    return setTimeout(callback, 0);
};
globalAny.cancelAnimationFrame = function (id) {
    clearTimeout(id);
};
copyProps(window, global);

0 ответов

Другие вопросы по тегам