Estoy usando Jest para probar y cubrir mi código express js . Tengo un archivo default.js que exporta una función simple:
async function foo(req, res) { let out = {} // performs some computations res.send({ file: 'Default', data: out.data }) } module.export = {foo} Esto se llama entonces en app.js :
const def = require('./default') app.get('/default/:a/:b' async (req, res) => { def.foo(req, res) }) Esto funciona bien. Sin embargo, cuando intento crear una prueba en la función Handler en default.js , Jest arroja este error:
TypeError: def.foo is not a functionEste es mi archivo de prueba:
const def = require('./default') describe('Default Test', function() { test('responds to /default/:a/:b', () => { const req = { params: { a: 'country', b: 'city' } } const res = { text: '', send: function(input) { this.text = input } } def.foo(req, res) expect(res.json).toEqual({ file: 'Default', }) }) }) No importa que la prueba falle con la función de expect . Pero la prueba está fallando por defecto. default.foo no está encontrando esta función. ¿Por qué es esto?