|
import { test, expect, drag_and_drop_file } from "@gradio/tootils"; |
|
|
|
test("File component properly dispatches load event for the single file case.", async ({ |
|
page |
|
}) => { |
|
await page |
|
.getByRole("button", { name: "Drop File Here - or - Click to Upload" }) |
|
.first() |
|
.click(); |
|
const uploader = await page.getByTestId("file-upload").first(); |
|
await uploader.setInputFiles(["./test/files/cheetah1.jpg"]); |
|
|
|
await expect(page.getByLabel("# Load Upload Single File")).toHaveValue("1"); |
|
|
|
const downloadPromise = page.waitForEvent("download"); |
|
await page.getByRole("link").nth(0).click(); |
|
const download = await downloadPromise; |
|
await expect(download.suggestedFilename()).toBe("cheetah1.jpg"); |
|
}); |
|
|
|
test("File component properly dispatches load event for the multiple file case.", async ({ |
|
page |
|
}) => { |
|
await page |
|
.getByRole("button", { name: "Drop File Here - or - Click to Upload" }) |
|
.last() |
|
.click(); |
|
const uploader = await page.getByTestId("file-upload").last(); |
|
await uploader.setInputFiles([ |
|
"./test/files/face.obj", |
|
"./test/files/cheetah1.jpg" |
|
]); |
|
|
|
await expect(page.getByLabel("# Load Upload Multiple Files")).toHaveValue( |
|
"1" |
|
); |
|
|
|
const downloadPromise = page.waitForEvent("download"); |
|
await page.getByRole("link").nth(1).click(); |
|
const download = await downloadPromise; |
|
await expect(download.suggestedFilename()).toBe("cheetah1.jpg"); |
|
}); |
|
|
|
test("File component drag-and-drop uploads a file to the server correctly.", async ({ |
|
page |
|
}) => { |
|
await drag_and_drop_file( |
|
page, |
|
"input[type=file]", |
|
"./test/files/alphabet.txt", |
|
"alphabet.txt" |
|
); |
|
}); |
|
|