импорт внутри Jest ручной макет (в __mocks__) иногда не определен - PullRequest
1 голос
/ 20 марта 2019

Я хочу использовать эмулятор Firebase Firestore в моем Jest-макете для интеграционных тестов. Мой src/__mocks__/firebase.ts:

import mockFirebase from '@firebase/testing'

console.log(mockFirebase)

export const firebase = mockFirebase.initializeAdminApp({
  projectId: `autoflocc-${process.pid}`,
})

export const db = firebase.firestore()

Он импортируется в тестовом коде следующим образом:

import mockFirebase from '@firebase/testing'
jest.mock('../src/firebase')

Однако, когда запускается фиктивный файл, mockFirebase равен undefined (согласно console.log). Я пытался импортировать другие модули и некоторые работы (import _ from 'lodash'), но другие не (import x from 'firebase-functions'), также возвращая undefined.

Есть идеи, почему некоторые операции импорта выполняются в ручном режиме, а другие нет?

Примечание: это Typescript, который может повлиять на него.

1 Ответ

0 голосов
/ 20 марта 2019

Этот синтаксис:

import mockFirebase from '@firebase/testing';

... пытается импортировать default экспорт из @firebase/testing как mockFirebase ...

... но mockFirebase заканчивается undefined, потому что @firebase/testing не имеет default экспорта .


Правильный синтаксис для импорта всего в @firebase/testing будет:

import * as mockFirebase from '@firebase/testing';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...