Как настроить тест для подтверждения правильности вывода PDF? - PullRequest
0 голосов
/ 13 октября 2019

tldr;В поисках способа проверить, соответствует ли объединенный выходной PDF ожидаемому PDF из PDFTK.

Я написал небольшое приложение для командной строки под названием pdfm для моей жены: D Приложение является оболочкой для PDFTK. Приложение работает нормально, но я пытаюсь настроить простой тест, чтобы убедиться, что результат соответствует ожидаемому. Приложение принимает два входа - файлы и - выход. --files - это текстовый файл со списком файлов, которые должны быть объединены в указанном порядке. Я написал тест с тремя известными входными PDF-файлами. Тест вызывает приложение и объединяет три входных PDF-файла, как и ожидалось. Я попытался использовать md5 и Buffer.equals, ни один из которых не работает.

Вот код для теста, который я сделал.

const fs = require('fs-extra')
const {spawn, exec} = require('child_process')
const path = require('path')
const moment = require("moment")
const dateFormat = 'YYYY.MM.DD'

let command = `node src/index.js --output ./test/test --files ./test/testfiles.pdfm`
let outfile = path.resolve(`./test/test-${moment().format(dateFormat)}.pdf`)
let expected = path.resolve(`./test/expected.pdf`)
exec(command, async (error, stdout, stderr) => {
        if (error) {
            console.error(error)
        } else {
            let file = fs.readFileSync(outfile)
            let expectedFile = fs.readFileSync(expected)
            // todo
            // md5()
            console.log(stdout)
            console.log(md5(file))
            console.log(expectedFile.equals(file))
        }
    }
)

Репо: https://github.com/MichaelLeeHobbs/pdfMerger

...