使用管道进行单元测试wkhtmltopdf

时间:2019-08-29 12:08:05

标签: node.js unit-testing jestjs wkhtmltopdf

因此,我正在尝试测试其中具有的功能:

  1. Express-用于REST
  2. Wkhtmltopdf-用于将HTML转换为pdf

这是使用 wkhtmltopdf

HTML 生成 PDF 的基本代码

cert.js

// all required imports
const cert = express.Router()
cert.get('/hello', async (req, res) => {
  const compiledHtml = '<h1>Hello world</h1>';
  res.writeHead(200, {
     'Content-Type': 'application/pdf',
     'Content-disposition': 
     'attachment;filename=hello.pdf',
  })
  return wkhtmltopdf(compiledHtml, {
     disableSmartShrinking: true,
     pageSize: 'Letter',
     orientation: 'Landscape'
  }).pipe(res);
}); // closing of the the 'cert.get' with async callback 

考虑到我对 / hello 的REST调用,可以生成 hello.pdf 作为以下内容的响应(二进制文件):

你好世界

我应该如何在不生成实际PDF的情况下进行测试,我希望可以使用 .pipe 模拟 wkhtmltopdf 调用,以便在测试时进行模拟不会生成实际的 wkhtmltopdf ,而是调用模拟的模块,并且我可以测试它是否显示 toHaveBeenCalled toHaveBeenCalledTimes(1)

预先感谢, 快乐编码 :)

0 个答案:

没有答案