JsonResult.test.tsx (2353B)
1 import { describe, it, expect } from "vitest"; 2 import { render, screen, within } from "@testing-library/react"; 3 import { JsonResult } from "./JsonResult"; 4 5 describe("JsonResult", () => { 6 it("renders a simple object", () => { 7 const { container } = render(<JsonResult data={{ key: "value" }} />); 8 expect(container.textContent).toContain("key"); 9 expect(container.textContent).toContain("value"); 10 }); 11 12 it("renders a simple array", () => { 13 const { container } = render(<JsonResult data={[1, 2, 3]} />); 14 expect(container.textContent).toContain("1"); 15 expect(container.textContent).toContain("2"); 16 expect(container.textContent).toContain("3"); 17 }); 18 19 it("renders empty object", () => { 20 const { container } = render(<JsonResult data={{}} />); 21 expect(container.querySelector("[data-testid='json-tree']")).toBeTruthy(); 22 }); 23 24 it("renders empty array", () => { 25 const { container } = render(<JsonResult data={[]} />); 26 expect(container.querySelector("[data-testid='json-tree']")).toBeTruthy(); 27 }); 28 29 it("renders nested objects", () => { 30 const { container } = render(<JsonResult data={{ outer: { inner: "deep" } }} />); 31 expect(container.textContent).toContain("outer"); 32 expect(container.textContent).toContain("inner"); 33 expect(container.textContent).toContain("deep"); 34 }); 35 36 it("renders with dark styles", () => { 37 const { container } = render(<JsonResult data={{ test: true }} />); 38 const tree = container.querySelector("[data-testid='json-tree']"); 39 expect(tree).toBeTruthy(); 40 }); 41 42 it("renders null values", () => { 43 const { container } = render(<JsonResult data={{ key: null }} />); 44 expect(container.textContent).toContain("key"); 45 expect(container.textContent).toContain("null"); 46 }); 47 48 it("renders boolean values", () => { 49 const { container } = render(<JsonResult data={{ yes: true, no: false }} />); 50 expect(container.textContent).toContain("true"); 51 expect(container.textContent).toContain("false"); 52 }); 53 54 it("renders number values", () => { 55 const { container } = render(<JsonResult data={{ count: 42 }} />); 56 expect(container.textContent).toContain("42"); 57 }); 58 59 it("renders string values", () => { 60 const { container } = render(<JsonResult data={{ name: "test" }} />); 61 expect(container.textContent).toContain("test"); 62 }); 63 });