Каков наилучший способ имитировать req и res функции, которая передается клиенту, например функции redis get - пример ниже - PullRequest
0 голосов
/ 04 августа 2020

Итак, я пытаюсь найти лучший способ имитировать запрос и ответ функции в шутку, я видел много методов, некоторые из которых используют jest.fn (), другие используют sinon, а некоторые используют внешние пакеты.

Как лучше всего вернуть статус, json и что было запрошено. См. Код ниже.

export const redisGet = (client) => async (req, res, next) => {
  try {

    const {
      postCode,
      houseNumber,
    } = req.params
  
    const addressObj = {
      postCode,
      houseNumber,
    }
  
    const addressGetParams = JSON.stringify(addressObj)

    await client.get(addressGetParams, (err, data) => {
      if (data) {
        return res.status(200).send({
          error: false,
          message: `Addresses found.`,
          data: JSON.parse(data)
        })
      }
      
      if (err) {
        return res.status(400).send({
          error: err,
          message: `Bad request`,
          data: JSON.parse(data),
        })
      }

      next()
    })
  } catch (e) {
    throw Error(e)
  }
}
...