Estoy probando una función con este código:
return new Promise((ok, fail) => { this.repository.findById(id, (error, result) => { if (error) return fail(error); ok(result); }); }); Quiero probar la ruta del error, es decir, cuando el método findById llama a la devolución de llamada con un error. Estoy usando sinon para generar un código auxiliar para mi repository y su método findById , pero no sé cómo obligar al código auxiliar a llamar a la devolución de llamada con los parámetros deseados.
¿Alguien hizo algo así antes?
Gracias
Con Sinon 2, puedes usar el método callsFake de un stub:
sinon.stub(repository, 'findById').callsFake((id, callback) => callback(new Error('oops')) );Consulte la documentación de Sinon 2: http://sinonjs.org/releases/v2.1.0/stubs/
Una respuesta más genérica aquí: cada vez que tengo que desconectar una devolución de llamada, lo hago así
const stubFindId = sinon.stub(repository, 'findById'); stubGetitem.callsFake((value: string, callback: any) => { return callback(true, false); });