diff --git a/.changeset/pretty-ants-joke.md b/.changeset/pretty-ants-joke.md new file mode 100644 index 000000000000..c1af1d4515f2 --- /dev/null +++ b/.changeset/pretty-ants-joke.md @@ -0,0 +1,6 @@ +--- +"@gradio/image": patch +"gradio": patch +--- + +feat:Add `gr.Image` interaction test + `gr.ImageEditor` interaction test improvement diff --git a/js/app/test/kitchen_sink.spec.ts b/js/app/test/kitchen_sink.spec.ts index 575145d79a2a..f4d41062f0b7 100644 --- a/js/app/test/kitchen_sink.spec.ts +++ b/js/app/test/kitchen_sink.spec.ts @@ -1,7 +1,13 @@ import { test, expect } from "@gradio/tootils"; -import { BASE64_IMAGE } from "./media_data"; +import { chromium } from "playwright"; test("test inputs", async ({ page }) => { + const browser = await chromium.launch(); + const context = await browser.newContext({ + permissions: ["camera"] + }); + context.grantPermissions(["camera"]); + const textbox = await page.getByLabel("Textbox").nth(0); await expect(textbox).toHaveValue("Lorem ipsum"); @@ -32,6 +38,11 @@ test("test inputs", async ({ page }) => { const uploaded_image_cropper = await page.locator("img").nth(0); const image_data_cropper = await uploaded_image_cropper.getAttribute("src"); await expect(image_data_cropper).toContain("cheetah1.jpg"); + + // Image Input w/ Webcam + await page.getByRole("button", { name: "Click to Access Webcam" }).click(); + await page.getByRole("button", { name: "select input source" }).click(); + expect(await page.getByText("fake_device_0")).toBeTruthy(); }); test("test outputs", async ({ page }) => { diff --git a/js/image/shared/Webcam.svelte b/js/image/shared/Webcam.svelte index a21d7138728d..71ecfaaa4ede 100644 --- a/js/image/shared/Webcam.svelte +++ b/js/image/shared/Webcam.svelte @@ -250,12 +250,11 @@ {#if !recording} {/if} diff --git a/js/imageeditor/ImageEditor.stories.svelte b/js/imageeditor/ImageEditor.stories.svelte index 28c403fe679b..cd370b32c6bd 100644 --- a/js/imageeditor/ImageEditor.stories.svelte +++ b/js/imageeditor/ImageEditor.stories.svelte @@ -51,6 +51,9 @@