Necesito satisfacer a SonarQube por el caso de error en el código a continuación.
Sin embargo, cuando ejecuto el código de prueba, no fallará.
index.js
const mod = require('mod') function get_modclass(data) { let modclass = new ModClass(data, function(err) { if (err) { console.log('ERROR: ' + err); throw err } }) return modclass }
index.spec.js
describe('Test get_modclass', () => { jest.resetModules() jest.clearAllMocks() test('Should fail get_modclass', () => { const idx = require('./index.js'); const mod = require('mod') jest.mock('mod', () => ({ ModClass: jest.fn(() => ({ constructor: (_data, cb) => cb('err'), })) })) try { let mc = idx.get_modclass("abc") } catch(e) { expect(e.message).toEqual('some message') } }) })
En lugar de cb('err')
he intentado enviar cb(new Error('err message'))
al constructor, pero aun así no fallará. Cuando depuro, entra en la función idx.get_modclass
, pero desde allí va directamente a return modclass
en lugar de al if
de la devolución de llamada.
Ayuda apreciada.
¡Gracias!