diff --git a/ui/src/components/MarkdownBody.test.tsx b/ui/src/components/MarkdownBody.test.tsx
new file mode 100644
index 00000000..06cfc70a
--- /dev/null
+++ b/ui/src/components/MarkdownBody.test.tsx
@@ -0,0 +1,31 @@
+// @vitest-environment node
+
+import { describe, expect, it } from "vitest";
+import { renderToStaticMarkup } from "react-dom/server";
+import { ThemeProvider } from "../context/ThemeContext";
+import { MarkdownBody } from "./MarkdownBody";
+
+describe("MarkdownBody", () => {
+ it("renders markdown images without a resolver", () => {
+ const html = renderToStaticMarkup(
+ ');
+ });
+
+ it("resolves relative image paths when a resolver is provided", () => {
+ const html = renderToStaticMarkup(
+
{preChildren};
+ },
+ a: ({ href, children: linkChildren }) => {
+ const parsed = href ? parseProjectMentionHref(href) : null;
+ if (parsed) {
+ const label = linkChildren;
+ return (
+
+ {label}
+
+ );
+ }
+ return (
+
+ {linkChildren}
+
+ );
+ },
+ };
+ if (resolveImageSrc) {
+ components.img = ({ node: _node, src, alt, ...imgProps }) => {
+ const resolved = src ? resolveImageSrc(src) : null;
+ return {preChildren};
- },
- a: ({ href, children: linkChildren }) => {
- const parsed = href ? parseProjectMentionHref(href) : null;
- if (parsed) {
- const label = linkChildren;
- return (
-
- {label}
-
- );
- }
- return (
-
- {linkChildren}
-
- );
- },
- img: resolveImageSrc
- ? ({ src, alt, ...imgProps }) => {
- const resolved = src ? resolveImageSrc(src) : null;
- return