Настройка для React Native / TypeScript / Библиотека тестирования / Jest не работает - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь настроить приложение 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 стека, который я выбрал (пока я не мог найти точный обновленный пример с использованием этого точного стека), неправильная конфигурация или фактическая ошибка, которую я должен поднять. Я также не знаю, к какому пакету относится баг - если он вообще есть - я должен сообщить об этом Джесту? Или Реагировать Родной? или бабель? Или Библиотека тестирования?

Любая помощь будет принята с благодарностью.

Спасибо!

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