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

131
Vistas
¿Cómo simular un objeto de ventana de terceros en la prueba vue?

Entonces tengo un método vue que necesito probar

en CheckoutButton.vue

 createMidtransToken () { const card = this.$store.state.payment.creditCardPayload const options = { onSuccess: (response) => { // HANDLING SUCCESS const payload = { ...this.paymentTypeChoosen, token: response.token_id } this.payCheckout(payload) }, onFailure: (response) => { // HANDLING ERROR const errorMessage = response.status_message this.$alertModal.show({ show: true, type: 'error', title: 'Transaksi Dibatalkan', text: errorMessage, showButton: true, buttonText: 'Kembali', buttonEventExist: true, buttonEvent: () => { this.handleRouteError() } }) } } window.MidtransNew3ds.getCardToken(card, options) }

en CheckoutButton.spec.js

 it('Should test createMidtransToken', () => { Object.defineProperty(window, 'MidtransNew3ds', { getCardToken: jest.fn() }) wrapper.vm.createMidtransToken() expect(window.MidtransNew3ds.getCardToken).toHaveBeenCalled() }) })

y me sale un error

● Probar el componente CheckoutButton con el resumen de la etapa › Debería probar createMidtransToken

 TypeError: Cannot read property 'getCardToken' of undefined 362 | } 363 | } > 364 | window.MidtransNew3ds.getCardToken(card, options) | ^ 365 | },

¿Cómo pruebo el método createMidtransToken para que la prueba del archivo pueda ejecutarse correctamente?

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

0

Los argumentos defineProperty son incorrectos. Debe haber una función de get o un value de valor en el objeto de configuración para definir una propiedad.

 Object.defineProperty(window, 'MidtransNew3ds', { value: { getCardToken: jest.fn() } })

No hay razón para usarlo aquí porque defineProperty es útil solo para propósitos específicos. Se puede definir por prueba o en beforeEach para todas las pruebas:

 window.MidtransNew3ds = { getCardToken: jest.fn() };

Y siempre debe limpiarse en afterEach para no afectar otras pruebas:

 delete window.MidtransNew3ds
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