Testing Markdown URL Rendering Functionality in Gradio
This test suite validates the Markdown component’s URL rendering functionality in the Gradio application, focusing on both valid and invalid URL handling within markdown text content.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
gradio-app/gradio
js/markdown/Markdown.test.ts
import { test, describe, assert, afterEach } from "vitest";
import { cleanup, render } from "@self/tootils";
import Markdown from "./Index.svelte";
import type { LoadingStatus } from "@gradio/statustracker";
const loading_status: LoadingStatus = {
eta: 0,
queue_position: 1,
queue_size: 1,
status: "complete" as LoadingStatus["status"],
scroll_to_output: false,
visible: true,
fn_index: 0,
show_progress: "full"
};
describe("Markdown", () => {
afterEach(() => cleanup());
test("renders valid URL", async () => {
const { getByText } = await render(Markdown, {
show_label: true,
max_lines: 1,
loading_status,
lines: 1,
value: "Visit [Gradio](https://www.gradio.app/) for more information.",
label: "Markdown",
interactive: false
});
const link: HTMLAnchorElement = getByText("Gradio") as HTMLAnchorElement;
assert.equal(link.href, "https://www.gradio.app/");
});
test("renders invalid URL", async () => {
const { getByText } = await render(Markdown, {
show_label: true,
max_lines: 1,
loading_status,
lines: 1,
value: "Visit [Invalid URL](https://) for more information.",
label: "Markdown",
interactive: false
});
const link: HTMLAnchorElement = getByText(
"Invalid URL"
) as HTMLAnchorElement;
assert.equal(link.href, "https://");
});
});