diff --git a/apps/web/src/components/ChatMarkdown.test.tsx b/apps/web/src/components/ChatMarkdown.test.tsx new file mode 100644 index 00000000000..c650dc11f04 --- /dev/null +++ b/apps/web/src/components/ChatMarkdown.test.tsx @@ -0,0 +1,74 @@ +import { EnvironmentId } from "@t3tools/contracts"; +import { renderToStaticMarkup } from "react-dom/server"; +import { describe, expect, it, vi } from "vite-plus/test"; + +import ChatMarkdown from "./ChatMarkdown"; + +vi.mock("@effect/atom-react", () => ({ + useAtomValue: () => ({ availableEditors: [] }), +})); + +vi.mock("../hooks/useTheme", () => ({ + useTheme: () => ({ resolvedTheme: "light" }), +})); + +vi.mock("../editorPreferences", () => ({ + useOpenInPreferredEditor: () => () => {}, +})); + +vi.mock("../state/assets", () => ({ + assetEnvironment: { createUrl: {} }, +})); + +vi.mock("../state/entities", () => ({ + useActiveEnvironmentId: () => EnvironmentId.make("environment-local"), +})); + +vi.mock("../state/preview", () => ({ + previewEnvironment: { open: {} }, +})); + +vi.mock("../state/server", () => ({ + serverEnvironment: { configValueAtom: () => ({}) }, +})); + +vi.mock("../state/session", () => ({ + usePreparedConnection: () => ({ _tag: "None" }), +})); + +vi.mock("../state/use-atom-command", () => ({ + useAtomCommand: () => () => {}, +})); + +vi.mock("../state/use-atom-query-runner", () => ({ + useAtomQueryRunner: () => () => "", +})); + +describe("ChatMarkdown bidi list rendering", () => { + it("renders code-prefixed Hebrew unordered lists as RTL", () => { + const markup = renderToStaticMarkup( + , + ); + + expect(markup).toContain('