Я пытаюсь настроить приложение React Native / TypeScript для тестирования с помощью Jest и @testing-library/react-native
;
Пока я получаю эту ошибку:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object.
Ранее Я столкнулся с ошибкой Missing class properties transform
, поэтому я добавил @babel/plugin-proposal-class-properties
в конфигурацию Babel, уже включенную в первоначальную загрузку с expo init
, но как только я это сделал, я получил эту другую ошибку, и ничего, что я пробовал до сих пор, не работает.
Это моя конфигурация babel:
module.exports = function(api) {
api.cache(true);
return {
presets: [
"babel-preset-expo",
["@babel/preset-env", { targets: { node: "current" } }],
"@babel/preset-typescript"
],
plugins: ["@babel/plugin-proposal-class-properties"]
};
};
и моя конфигурация Jest:
"jest": {
"preset": "react-native"
}
Испытание на разрыв:
import React from "react";
import App from "../App";
import { render } from "@testing-library/react-native";
describe("App", () => {
it("renders", () => {
const { container: received } = render(<App />);
expect(received).toMatchSnapshot();
});
});
Обратите внимание что я потратил некоторое время, пробуя различные комбинации пресетов / плагинов / конфигов, так что это может быть не идеальная установка. Я пытаюсь понять, есть ли фактическое ограничение этого указанного c стека, который я выбрал (пока я не мог найти точный обновленный пример с использованием этого точного стека), неправильная конфигурация или фактическая ошибка, которую я должен поднять. Я также не знаю, к какому пакету относится баг - если он вообще есть - я должен сообщить об этом Джесту? Или Реагировать Родной? или бабель? Или Библиотека тестирования?
Любая помощь будет принята с благодарностью.
Спасибо!