process.env.FIREBASE_CONFIG está indefinido cuando se ejecutan todas las pruebas unitarias juntas.
Cuando ejecuto todas mis pruebas juntas, la llamada “makeDocumentSnapshot” produce el error “SyntaxError: Token inesperado u en JSON en la posición 0” en “firebase-functions-test/lib/app.js:41:65”, lo cual básicamente significa que “process.env.FIREBASE_CONFIG” está indefinido. Sin embargo, si solo ejecuto la prueba individualmente, pasa.
Mi estructura de archivos:
src
|-- foo
|-- index.ts
|-- foo.ts
|-- index.ts
test
|-- test.ts
|-- foo
|-- foo.test.ts
package.json { "test": "mocha -r ts-node/register test/*/.test.ts" }
// index.ts
import * as admin from 'firebase-admin';
admin.initializeApp();
admin.firestore().settings({ ignoreUndefinedProperties: true });
export * as foo from './foo/index';
// test.ts
import Test from 'firebase-functions-test';
export default Test({ databaseURL, storageBucket, projectId }, 'test/service-account-key.json');
// foo.test.ts
import test from '../test';
import * as myFunctions from '../../src/index';
describe('foo()', () => {
const wrapped = test.wrap(myFunctions.foo.foo);
it ('should do this', async () => {
// Esta línea produce un error cuando ejecuto todas las pruebas juntas,
// pero no cuando ejecuto esta prueba individualmente con describe.only().
const snapshot = test.firestore.makeDocumentSnapshot(...)
...
});
});
davy.ai
Problema con la llamada a
makeDocumentSnapshot
en las pruebas de mocha.js en Google Cloud FirestoreAl ejecutar todas las pruebas juntas, la llamada a la función
makeDocumentSnapshot
produce un error:SyntaxError: Token inesperado u en JSON en la posición 0
. Este error ocurre porqueprocess.env.FIREBASE_CONFIG
está indefinido. Sin embargo, al ejecutar la prueba individualmente condescribe.only()
se aprueba.En la estructura de archivos,
index.ts
inicializa y exporta el módulofoo
. Enfoo.test.ts
, la funciónfoo
se envuelve contest.wrap()
, y la llamada a la funciónmakeDocumentSnapshot
está causando un error.Para solucionar el problema, es necesario definir la variable
process.env.FIREBASE_CONFIG
antes de ejecutar las pruebas juntas. Una solución alternativa es definir la variable en el archivotest.ts
. Otra solución es usar un paquete comodotenv
para cargar las variables de entorno.Además, asegúrese de que la llamada a
makeDocumentSnapshot
esté utilizando argumentos válidos y no esté causando el error. Ejecutar la prueba individualmente condescribe.only()
puede ayudar a aislar el problema.Al definir
process.env.FIREBASE_CONFIG
y verificar la llamada amakeDocumentSnapshot
, el error debería resolverse al ejecutar todas las pruebas juntas.