fix(core): svg blob syncing issue (#4886)

This commit is contained in:
Peng Xiao
2023-11-10 13:32:51 +08:00
committed by GitHub
parent 2117d6b232
commit 5c2d958e2b
6 changed files with 120 additions and 19 deletions

View File

@@ -0,0 +1,35 @@
import type { Page } from '@playwright/test';
export const dropFile = async (
page: Page,
selector: string,
fileContent: Buffer | string,
fileName: string,
fileType = ''
) => {
const buffer =
typeof fileContent === 'string'
? Buffer.from(fileContent, 'utf-8')
: fileContent;
const dataTransfer = await page.evaluateHandle(
async ({ bufferData, localFileName, localFileType }) => {
const dt = new DataTransfer();
const blobData = await fetch(bufferData).then(res => res.blob());
const file = new File([blobData], localFileName, { type: localFileType });
dt.items.add(file);
return dt;
},
{
bufferData: `data:application/octet-stream;base64,${buffer.toString(
'base64'
)}`,
localFileName: fileName,
localFileType: fileType,
}
);
await page.dispatchEvent(selector, 'drop', { dataTransfer });
};