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

287
Vistas
¿Cómo simular métodos de objetos anidados en Jest?

No estoy 100% seguro de que mi terminología esté bien aquí, pero lo que quiero hacer es lo siguiente. Logré simular con éxito stripe.customers.create creando una simulación manual como esta:

 __mocks__/stripe.js class Stripe {} const stripe = jest.fn(() => new Stripe()); module.exports = stripe; module.exports.Stripe = Stripe;

luego en mi unit.test.js importo el simulacro así

 const { Stripe } = require("stripe"); Stripe.prototype.customers = { create: jest.fn(() => { return { id: "cus_testid", }; }), };

Y el método stripe.customers.create() se burla muy bien. Sin embargo, el problema comienza cuando empiezo (a falta de una mejor palabra) "anidar" o "encadenar" los métodos más abajo en el objeto de la raya. Por ejemplo, este simulacro no funcionará:

 Stripe.prototype.checkout.sessions = { create: jest.fn(() => { return { session: { url: 'someurl' } } }) }

TypeError: no se puede establecer la propiedad 'sesiones' de indefinido

¿Por qué no puedo configurar un simulacro de método anidado y cómo debo abordar hacer un simulacro anidado? ¿Debo modificar el simulacro manual para lograr esto?

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

0

De acuerdo con el documento , la url es una propiedad inmediata del objeto Session, por lo que solo debe devolver {url: 'someUrl' } en lugar de envolverlo dentro de otra propiedad de session .

Por cierto, también te puede interesar stripe-mock , es un servidor HTTP simulado que responde como la API de Stripe real.

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