JestJS: Как протестировать вызов функции во вложенной (асинхронной) функции - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь написать модульный тест для вложенной функции, который выглядит следующим образом:

myFunction.js

const anotherFunction = require('./anotherFunction.js')

module.exports = (app, io) => {
  return (req, res) => {
    const { id, value } = req.query
    req.app.locals['target' + id].pwmWrite(value)
    anotherFunction(app, io)
    res.send({ value })
  }
}

Я хотел быпроверьте, были ли вызваны pwmWrite() и anotherFunction().

Но у меня есть некоторые проблемы из-за return (req, res) => {} и из-за импортированной функции.

Это моя попытка,который не работает:

myFunction.test.js

test('should call pwmWrite() and anotherFunction()', async () => {
  const app = {}
  const io = { emit: jest.fn() }
  const req = {
    app: {
      locals: {
        target1: { pwmWrite: () => 25 }
        }
      }
    }
  }
  expect.assertions(1)
  expect(req.app.locals.target1.pwmWrite).toHaveBeenCalled()
  await expect(myFunction(app, io)).resolves.toEqual(25)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...