Open igorgarbuz opened 1 year ago
I found a few problems with this issue:
Hey @igorgarbuz , could you share a code sample to reproduce this? I am curious to see what your imports look like.
It's sufficient to have only one import referring to firebase-admin
. For example import FFTest from 'firebase-functions-test';
is the only line in a file <filename>.test.ts
.
When the file is run npx jest <filename>.test.ts
there is an error :
Cannot find module '@firebase/database-compat/standalone' from '../../node_modules/firebase-admin/lib/database/index.js'
Require stack:
<path>/node_modules/firebase-admin/lib/database/index.js
<path>/node_modules/firebase-functions/lib/common/providers/database.js
<path>/node_modules/firebase-functions/lib/v1/providers/database.js
<path>/node_modules/firebase-functions/lib/v1/index.js
src/config.ts
src/mocks/handlers.ts
src/mocks/server.ts
jest.setup.ts
Actually my previous example was not accurate. Even if there is an empty test file, there is still en error because there is an import import * as functions from 'firebase-functions';
in src/config.ts
used by jest.setup.ts
and run before the test.
If there is not import of firebase-functions
in src/config.ts
, there is still an error from firebase-functions-test
:
FAIL <filename>.test.ts
● Test suite failed to run
Cannot find module '@firebase/database-compat/standalone' from '../../node_modules/firebase-admin/lib/database/index.js'
Require stack:
<path>/node_modules/firebase-admin/lib/database/index.js
<path>/node_modules/firebase-functions/lib/common/providers/database.js
<path>/node_modules/firebase-functions/lib/v1/providers/database.js
<path>/node_modules/firebase-functions/lib/v1/index.js
<path>/node_modules/firebase-functions-test/lib/v1.js
<path>/node_modules/firebase-functions-test/lib/main.js
<path>/node_modules/firebase-functions-test/lib/features.js
<path>node_modules/firebase-functions-test/lib/index.js
<filename>.test.ts
imports in <filename>test.ts
look like
import path from 'path';
import { DocumentReference, DocumentSnapshot } from '@firebase/firestore-types';
import FFTest from 'firebase-functions-test';
import 'html-validate/jest';
import { v4 as uuidv4 } from 'uuid';
@igorgarbuz did u manage to solve this? this would be very helpful, thanks
Environment
Describe the problem After updating:
firebase-functions
v3 -> v4firebase-admin
v11.3 -> v11.5firebase-functions-test
v0.3.0 -> v3.0.0Any jest test using any firebase library will fail with the following error:
Call stack in the example above may differ depending on the firebase library used, but will alway end at
Users/igor/Dev/vogel_database/node_modules/firebase-admin/lib/database/index.js
with the same error for importing'@firebase/database-compat/standalone'
.Steps to reproduce:
Install libraries with the provided versions. Run
jest <any.file.test.ts>
where test file uses at least one firebase library that has an internal reference tofirebase-admin
.