jestjs - redaccion - ¿Cuál es la forma correcta de escribir pruebas de Jest verificadas con Flow?
test de ortografia para imprimir (4)
Me imagino que las personas comúnmente usan Flow y Jest (y React) juntas, pero Flow no parece saber sobre Jest (o Jasmine) globales. Cuando agrego // @flow
a mis pruebas, obtengo errores de flujo como este:
src/__tests__/Thing-test.js:3
3: jest.unmock(''../Thing'')
^^^^ identifier `jest`. Could not resolve name
src/__tests__/Thing-test.js:7
7: describe(''Thing'', () => {
^^^^^^^^ identifier `describe`. Could not resolve name
src/__tests__/Thing-test.js:8
8: it(''does stuff'', () => {
^^ identifier `it`. Could not resolve name
Podría escribir una interfaz de Flow para Jest / Jasmine, pero parece largo y me falta algo. Dejar que Flow process node_modules/jest-cli
no parezca ayudar.
Aunque Jest está escrito con anotaciones de flujo, ellos tiran los tipos para la versión npm, así que no necesitamos babel para ejecutarlo. Afortunadamente, los tipos ya están en flow-type, por lo que la solución es bastante sencilla (tal como se menciona en el comentario):
npm install -g flow-typed
flow-typed install [email protected] # <-- replace the version with the latest
Aunque tuve que agregar esta línea también a mi .eslintrc.json
:
{
"env": {
"jest": true
}
}
Creo que declare var jest: any;
debería hacer el truco (póngalo en la parte superior de cada archivo de prueba, o en algún lugar en su directorio de flujo lib).
La respuesta aceptada no funciona si usa Create-React-App . A continuación, le indicamos cómo establecería una broma con CRA:
1. Instalar flujo en su proyecto
Si usa create-reat-app, here hay una guía para este paso.
yarn add -D flow-bin
yarn run flow init
2. Instalar tipos de flujo de broma
npx flow-typed install jest@22 // maybe you need a different version
(Puede usar npx jest -v
para verificar su versión de broma si usa create-react-app).
3. Registrar el flujo-tipado en la configuración
En su .flowconfig
, agregue la sección flow-typed to libs.
...
[libs]
flow-typed
...
Yo uso hilo, npm debería funcionar igual.
Si creó su proyecto con create-react-app, debe agregar manualmente bromas a sus packages.json. De lo contrario, flow-typed no instalará las definiciones de tipo necesarias porque create-react-app no agrega esta dependencia a packages.json.
yarn add --dev jest
flow-typed install