Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

299
Vistas
¿Cómo usar nock para simular Firebase/Firestore en NodeJS?

Tengo una API REST escrita en NodeJS. La API REST obtiene un archivo e información y luego carga el archivo en la unidad y almacena la información dentro de mi Firebase/Firestore DB. Estoy tratando de escribir pruebas para probar mi API REST, así que necesito simular Firestore. Ya me burlo de google-drive usando nock rastreando las solicitudes HTTPS que realiza googleapis . Ahora estoy tratando de hacer lo mismo con Firestore.

Probé diferentes métodos como, por ejemplo, para la autenticación que probé ( basado en los documentos ):

 nock('https://firestore.googleapis.com/$discovery/rest') .persist() .post('') .reply(200, { 'access_token': 'abc', 'refresh_token': '123', 'expires_in': 10 })

Pero nock no sigue las solicitudes. ¿Cómo uso nock para rastrear el siguiente código? ¿El paquete firebase realmente realiza solicitudes a la API?

 const firebase = require("firebase"); // Required for side-effects require("firebase/firestore"); // First code - authenatiocation firebase.initializeApp(firebaseConfig); db = firebase.firestore(); // ... // Second code - Get data from DB const snapshot = await db.collection(collection).orderBy("timestamp", "desc").get(); // ... // Third code - upload new report const response = await db.collection(collection).doc(document_id).set(data);

Si no es posible con nock , ¿entonces se puede lograr?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Se podría argumentar que bloquear los métodos de Firebase tendría más sentido que burlarse de las llamadas a la API que la biblioteca podría hacer internamente. Este último asume el conocimiento sobre el funcionamiento interno de la biblioteca y no aprovecha al máximo los beneficios de la abstracción.

Podrías usar sinon para stub métodos de Firebase. Algo como,

 db = firebase.firestore(); const stub = sinon.stub(db, 'collection') .returns({ orderBy: sinon.stub().returns({ get: sinon.stub().returns(yourDocObjectHere) }), doc: sinon.stub().returns({ set: sinon.stub().returns(someObjectHere) }) })

y luego afirmar como

 sinon.assert.calledWith(db.collection.orderBy, 'timestamp', 'desc');
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda