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

146
Vistas
Cómo sobrescribir 1 función en un simulacro automático en Jest

Estoy haciendo la transición del proyecto de Javascript a Typescript. Tengo un archivo de ayuda con javascript pero el archivo está mecanografiado (debido a la transición en curso). Tengo un archivo helper.ts como tal (este archivo tiene una longitud de 1000, por lo que no es tan fácil convertir este archivo a mecanografiado desafortunadamente)

 // helper.ts module.exports = function () { this.validateJwt = function(token) { if (token.valid) { return 200 } else { return 400 } } this.someOtherFunction = function () { .... /// and many more such dirty code there }

Mi problema es que quiero simular esta función en la prueba, así que no hay problema, he creado una carpeta de simulacros y simplemente hago una simulación automática de esto en mi prueba de esta manera:

 //__mocks__/helper.ts module.exports = function () { this.validateJwt = function(token) { return 200; } }

Mi clase de cliente:

 //client.ts import helper from "../../helper" module.exports.create = (event) => { let helper = new helper(); if (helper.validateJwt(event.token) { return true } else { return false } }

Y mi prueba:

 // test.ts import * as helper from ('../../helper'); jest.mock('../../helper'); var client = require("../../client"); describe('client', () => { it('return true if token is valid', () => { let event = {"token": "exists"} expect(client.create(event)).toBe(true); }); it('return false if no token', () => { let event = {} (<any>helper).validateJwt.mockImplementationOnce(() => {return 400} // not working expect(client.create(event)).toBe(false); // this still returns true }); });

Cómo hacer que mi simulacro anule el simulacro automático y agregue esto a la prueba nr 2 para que validarJwt devuelva falso. Estoy usando archivos ts pero con javascript real en ellos. Probé con esto:

 import * as helper from "../../helper"; jest.mock("../../helper"); const mockedHelper = helper as jest.Mocked<typeof helper>;

y en la segunda prueba utilícelo: mockedHelper.validateJwt.mockImplementationOnce(() => {return 400});

pero no funciona (supongo que porque tengo una función en javascript, no mecanografiada).

¿Alguna idea de cómo solucionarlo (y por ahora reescribir esta función en el asistente para la clase mecanografiada no es una opción)?

about 4 years ago · Juan Pablo Isaza
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