Я пытаюсь проверить, выдает ли моя функция ошибку, если я передаю неверные параметры, как вы можете видеть в коде этой строки:
if (!query.name || !query.formName) throw new Error('required parameters: name, formName')
, но я получаюошибка «AssertionError: ожидалось, что undefined будет функцией».Насколько я вижу, я назначил функцию для результата, и я проверяю это?
const sendEmail = require('../src/lib/sendEmail')
describe('sendEmail', function () {
let sandbox = null
before(() => {
sandbox = sinon.createSandbox()
})
afterEach(() => {
sandbox.restore()
})
describe('sendEmail', () => {
context('throw error without params', () => {
let mockParams, result
beforeEach(async () => {
mockParams = {
formName: 'form name',
emailName: 'email name'
}
sandbox.stub(sendEmail, 'sendEmail').withArgs({ formName: 'form name', emailName: 'email name', name: 'person' })
result = await sendEmail.sendEmail(mockParams)
})
it('should throw an error', () => {
expect(result).to.throw(Error)
})
})
})
})
sendEmail.js
sendEmail.sendEmail = async query => {
if (!query.name || !query.formName) throw new Error('required parameters: name, formName')
const [err, data] = await to(request({
// some stuff happens
}))
if (err) throw err
return data
}
module.exports = sendEmail