Использование потока внутри файла шутного теста приводит к неопределенному тесту, ожиданию и т. Д. - PullRequest
0 голосов
/ 06 мая 2018

У меня есть простой файл test.js

// @flow
import React from "react";
import renderer from "react-test-renderer";
import RatioImage from "./";

test("<RatioImage /> base case should render correctly", () => {
  const tree = renderer.create(<RatioImage width={100} ratio={1} source={{ uri: "" }} />);
  expect(tree).toMatchSnapshot();
});

Добавление потока внутри там работает в renderer, что хорошо, однако test и expect вызывают ошибки потока, так как они не определены. Есть ли способ установить их как глобальные переменные, чтобы поток не ошибался?

1 Ответ

0 голосов
/ 07 мая 2018

Чтобы немного расширить сказанное Андреасом в комментарии, Flow позволяет создавать определения библиотек для внешних библиотек. (Как я полагаю, вы используете Jest здесь). (Их иногда называют libdefs)

Когда кто-то создает глобальную библиотеку, он может объявить функцию (или класс!) Как глобальную с синтаксисом declare function или declare class, описанным на странице документации Flow libdef .

По большей части все это детали реализации, которые вы можете игнорировать. flow-typed предоставляет массу объявлений для библиотек. Некоторые из них генерируются автоматически, некоторые из них собираются людьми.

С установленным потоком ввода вы можете получить определения библиотеки для Jest следующим образом: flow-typed install jest@22.x.x. Который должен включать объявление declare function, чтобы сделать функцию test глобальной функцией, о которой знает Flow, без необходимости require или import типов или функций из любого места.

...