agent-flow / src /frontend /tests /utils /simulate-drag-and-drop.ts
Tai Truong
fix readme
d202ada
raw
history blame contribute delete
898 Bytes
import { Page } from "@playwright/test";
import { readFileSync } from "fs";
export async function simulateDragAndDrop(
page: Page,
filePath: string,
dropSelector: string,
jsonContent?: string,
) {
// Read file content
let fileContent = await readFileSync(filePath, "utf-8");
if (jsonContent) {
fileContent = jsonContent;
}
// Create DataTransfer object with file
const dataTransfer = await page.evaluateHandle(async (content) => {
const dt = new DataTransfer();
const file = new File([content], "file.json", { type: "application/json" });
dt.items.add(file);
return dt;
}, fileContent);
const dropzone = page.getByTestId(dropSelector);
await dropzone.dispatchEvent("mousedown", { button: 0 });
await dropzone.dispatchEvent("mousemove", { buttons: 1 });
await dropzone.dispatchEvent("drop", { dataTransfer });
await dataTransfer.dispose();
}