Files
wehub-resource-sync adf0d17497
publish / version_or_publish (push) Has been cancelled
storybook-build / changes (push) Has been cancelled
storybook-build / :storybook-build (push) Has been cancelled
Sync Gradio Skills to Hugging Face / sync-skills (push) Has been cancelled
functional / changes (push) Has been cancelled
functional / build-frontend (push) Has been cancelled
functional / functional-test-SSR=false (push) Has been cancelled
functional / functional-reload (push) Has been cancelled
js / changes (push) Has been cancelled
js / js-test (push) Has been cancelled
docs-build / changes (push) Has been cancelled
docs-build / docs-build (push) Has been cancelled
docs-build / website-build (push) Has been cancelled
functional / functional-test-SSR=true (push) Has been cancelled
hygiene / hygiene-test (push) Has been cancelled
python / changes (push) Has been cancelled
python / build (push) Has been cancelled
python / test-ubuntu-latest-flaky (push) Has been cancelled
python / test-ubuntu-latest-not-flaky (push) Has been cancelled
python / test-windows-latest-flaky (push) Has been cancelled
python / test-windows-latest-not-flaky (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:17:32 +08:00

41 lines
1.2 KiB
TypeScript

import { test, expect } from "@self/tootils";
test.skip(
process.env?.GRADIO_SSR_MODE?.toLowerCase() === "true",
"Not Running SSR Mode"
);
test.skip("Gradio works behind a reverse proxy with root_path", async ({
page
}) => {
const url = new URL(page.url());
await page.goto(`${url.origin}/myapp/gradio/`);
const configResponse = await page.request.get(
`${url.origin}/myapp/gradio/config`
);
const config = await configResponse.json();
expect(config.root).toContain("/myapp/gradio");
const uploader = page.locator("input[type=file]");
await uploader.setInputFiles("./test/files/cheetah1.jpg");
await page.getByRole("button", { name: "Submit" }).click();
// Wait for the output image to load with a src URL that goes through
// the proxied gradio_api path
// Without the fix, the src would use /gradio/gradio_api/... (missing /myapp).
await expect(async () => {
const imgs = page.locator('[data-testid="image"] img');
const count = await imgs.count();
let foundProxiedSrc = false;
for (let i = 0; i < count; i++) {
const src = await imgs.nth(i).getAttribute("src");
if (src && src.includes("/myapp/gradio/gradio_api/")) {
foundProxiedSrc = true;
break;
}
}
expect(foundProxiedSrc).toBe(true);
}).toPass();
});