Как добавить изображение приспособления к элементу в Cypress?

#javascript #typescript #cypress

#javascript #typescript #cypress

Вопрос:

У меня есть приложение react, которому требуется URL-адрес изображения в качестве ввода текста, затем после отправки URL-адреса изображение с URL-адреса отображается в <img> параметре, установив его атрибут src.

Я пишу тест в Cypress, и я хочу либо заглушить этот запрос, чтобы вернуть изображение приспособления, либо просто отобразить мое изображение приспособления на странице, прикрепив его к элементу. Что я пробовал:

  • Использовал route2, чтобы заглушить этот запрос изображения и вернуть мое изображение приспособления в качестве ответа, но это поместило cypress runner в бесконечный цикл, бесконечно вызывая URL-адрес изображения: введите описание изображения здесьВ документации route2 говорится, что он способен перехватывать загрузку ресурсов, так должно ли это быть возможно как-то с этим?

     cy.route2('GET', '**/kids.jpg', {
           statusCode: 200,
           fixture: `${FIXTURES_APP_PATH}kids.jpg`
        })
      
  • Использовал пакет ‘cypress-file-upload’, чтобы прикрепить файл изображения приспособления в виде большого двоичного объекта к элементу img (пришлось заменить специальные символы, потому base64StringToBlob что ошибка «Не удалось выполнить»atob» в «Window»: строка, подлежащая декодированию, неправильно закодирована»).

     cy.fixture(`${FIXTURES_APP_PATH}kids.jpg`, 'base64')
    .then(fixture =>
    {
        Cypress.Blob.base64StringToBlob(fixture.replace(/^[^,] ,/, ''), 'image/jpg')
    })
    .then((fileContent: Blob) =>
    {
        cy.get(AppPage.INPUT_IMG)
          .attachFile({filePath: `${FIXTURES_APP_PATH}kids.jpg`, fileContent, mimeType: 'image/jpg'});
    });
      

Что я делаю не так? Как это можно сделать?
Спасибо!

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

1. Существует ошибка с заглушкой ответов на изображения через приспособления, которая будет исправлена в Cypress 5.5.0. github.com/cypress-io/cypress/pull/8916

2. Спасибо! Я думаю, он должен быть выпущен через несколько дней 🙂

Ответ №1:

Исправление проблемы с заглушкой было выпущено в https://github.com/cypress-io/cypress/releases/tag/v5.5.0