Можно ли использовать Jest с несколькими пресетами одновременно? - PullRequest
0 голосов
/ 23 июня 2018

Можно ли использовать Jest с несколькими предустановками, скажем, jsdom и response-native?

Я хотел бы протестировать компонент React, который может работать как в Интернете, так и в среде React Native.Проблема заключается в том, что компонент может использовать либо библиотеки React Native, либо методы некоторых документов.

Когда я запускаю некоторые тесты, Jest отвечает:

Не удается найти модуль «NetInfo» из «реакции»-native-creation.js '

Когда я пытаюсь добавить

"jest": {
  "preset": "react-native"
}

в package.json, я получаю:

ReferenceError: windowне определено

1 Ответ

0 голосов
/ 03 октября 2018

Предустановки - это просто обычные объекты Javascript, поэтому во многих случаях вы можете просто объединить их.Например, вот как я включаю ts-jest и jest-puppeteer одновременно:

const merge = require('merge')
const ts_preset = require('ts-jest/jest-preset')
const puppeteer_preset = require('jest-puppeteer/jest-preset')

module.exports = merge.recursive(ts_preset, puppeteer_preset, {
    globals: {
        test_url: `http://${process.env.HOST || '127.0.0.1'}:${process.env.PORT || 3000}`,
    },
})

Если есть определенные опции, которые не могут быть «объединены», просто обработайте эти случаи вручную.

...