Newer
Older
import { AppError } from "../src/lib/errors";
it("should return pdf document metadata including signatures", async () => {
const file = fs.readFileSync(
path.resolve(__dirname, "./abacus-two-signatures.pdf")
);
const parser = new PDFparser(file);
const actual = await parser.getPDFMeta();
it("should return pdf document metadata without signatures", async () => {
const file = fs.readFileSync(path.resolve(__dirname, "./example.pdf"));
const parser = new PDFparser(file);
const actual = await parser.getPDFMeta();
expect(actual.pages).toEqual(1);
expect(actual.title).toEqual("PDF Digital Signatures");
expect(actual.author).toEqual("Tecxoft");
});
it("should throw error without file", async () => {
try {
const parser = new PDFparser(null);
const actual = await parser.getPDFMeta();
} catch (error) {
expect(error).toBeInstanceOf(AppError);
}
});
it("should throw error if file type is different then pdf", async () => {
const file = fs.readFileSync(path.resolve(__dirname, "./test.txt"));
try {
const parser = new PDFparser(file);
const actual = await parser.getPDFMeta();
} catch (error) {
expect(error).toBeInstanceOf(AppError);
expect(error.message).toEqual("Only pdf file type is supported");
}
});
type SealCoords = {
[key: string]: { x: string; y: string };
};
describe("PDF insert", () => {
it.only("should insert qrcode into the pdf without breaking the signature", async () => {
const file = fs.readFileSync(
path.resolve(__dirname, "./abacus-two-signatures.pdf")
);
const qrcode = fs.readFileSync(path.resolve(__dirname, "./qrcode.png"));
const parser = new PDFparser(file);
const sealCoords: SealCoords = { 1: { x: "261.6", y: "384.84" } };
const resultPDF = await parser.insertQrCode(
qrcode.buffer,
"vereign.com",
sealCoords,
0.25
);
fs.writeFileSync(`${__dirname}/test.pdf`, Buffer.from(resultPDF));
});
});