Cypress — Как проверить данные из файла PDF с помощью команды cypress

#cypress

Вопрос:

Ниже приведен мой код в cypress. Как распечатать содержимое в формате pdf и проверить содержимое с помощью cypress .contains или .eq? когда я запускаю код, он печатает объект {6}, но я хочу распечатать содержимое моего PDF-файла. Я был бы очень признателен за помощь.

 **Plugins/index.js:**

const fs = require('fs')
const pdf = require('pdf-parse')
const path = require('path')

const repoRoot = path.join("C:/Users/XXXXX/Downloads/loginCy-excel")

const parsePdf = async (pdfName) => {
  const pdfPathname = path.join(repoRoot, pdfName)
  let dataBuffer = fs.readFileSync(pdfPathname);
  return await pdf(dataBuffer)
}

module.exports = (on, config) => {
on('task', {
        getPdfContent (pdfName) {
          return parsePdf(pdfName)
        },
      })

}



**cypress spec file has these code:**

it('tests a pdf', () => {
    cy.task('getPdfContent', 'sample.pdf').then(content => {
        cy.log(content)
})
  })
 

Ответ №1:

pdf метод вернет объект, поэтому я думаю cy.log() , что не смогу распечатать его таким образом. Если вы хотите увидеть, что функция собрала в вашем PDF-файле, вы можете упорядочить результат:

 cy
  .log(JSON.stringify(content));
 

Если вы хотите получить только текст из вашего PDF-файла, вам нужно поработать с text property:

 cy
  .log(content.text);
 

Комментарии:

1. Спасибо за ответ @pavelsaman Как я могу добавить утверждение для проверки конкретного текста, присутствующего в PDF? Я не могу этого сделать: cy.log(content.text). должен (‘have.text’, ‘Hello’) Как я могу добавить утверждение?

2. Сначала прочитайте документацию docs.cypress.io/guides/references/assertions

3. Из документа Cypress, которым вы поделились, я получил это утверждение. Есть мысли? cy.wrap(content.text). следует (‘have.string’, ‘Hello World!’) ожидать (content.text).to.have.string(‘Привет, мир!’)

4. Они работают так, как ожидалось? Правильно ли они сообщают «нет совпадения»?