Как смоделировать промежуточное ПО в супертесте? - PullRequest
0 голосов
/ 07 мая 2019

Я хочу проверить, называется ли промежуточное ПО в app.js. Хотя я издеваюсь над модулем work.js, он все равно запускает оригинальный код.

app.js

const work = require('./work')
const express = require('require')

const app = express()
  .use(work)
  .use(...)
  .get(...)


module.exports = app

work.js

function work(req, res, next){...}

module.exports = work

приложение-test.js

const supertest = require('supertest')
const app = require('../app')

test('test middleware in app.js', async(done) => {
  jest.mock('../work', () => jest.fn((req, res, next) => next()))

  const agent = () => supertest(app)
  const work = require('../work')  

  await agent()
    .get('/')
    .set(...)

  expect(work).toHaveBeenCalledTimes(1)  // Error

  done()
})

Я ожидаю, что work.js будет вызван один раз. Что-то не так? Должен ли я изменить свой тест?

...