const fs = require('fs');
const pdfParse = require('pdf-parse');
// ts-prune-ignore-next
export const readPdf = (PDFfilename: string) => {
  const pdf = `cypress/downloads/${PDFfilename}`;
  return new Promise((resolve) => {
    const dataBuffer = fs.readFileSync(pdf);
    pdfParse(dataBuffer).then(function ({ text }: { text: string }) {
      const arr = text.split('\n');
      resolve(arr);
    });
  });
};

// ts-prune-ignore-next
export const findPDF = (PDFfilename: string) => {
  const PDFfile = `cypress/downloads/${PDFfilename}`;
  return fs.existsSync(PDFfile);
};

// ts-prune-ignore-next
export const hasPDF = (PDFfilename: string, ms: number) => {
  const delay = 10;
  return new Promise((resolve, reject) => {
    if (ms < 10) {
      return resolve(false);
    }
    const found = findPDF(PDFfilename);
    if (found) {
      return resolve(true);
    }
    setTimeout(() => {
      hasPDF(PDFfilename, ms - delay).then(resolve, reject);
    }, 10);
  });
};
