Программная генерация файлов в тестах Cypress
Документация Cypress рекомендует использовать фикстуры для загрузки файлов, но загромождение хранилища файлами фикстур может оказаться нежелательным. В идеале тестовый пакет должен программно "на лету" генерировать файлы, соответствующие требованиям конкретного теста.
С помощью метода selectFile
и Blob
в Cypress можно создавать заглушки для тестирования файлов, не требующие базовых фикстур.
cy.get('[data-testid="file-input"]').selectFile({
contents: Cypress.Blob.createBlob([]),
fileName: "picture.png",
mimeType: "image/png",
lastModified: Date.now(),
});
Этот код создает базовый файл, который может быть использован при вводе файла. Единственным свойством, которое требует Cypress, является contents
, а остальные свойства можно использовать по мере необходимости. Например, mimeType
может быть использован, если поле ввода имеет атрибут accept
, и браузер будет использовать mimeType
из заглушки и вести себя соответствующим образом.