import { cleanup, fireEvent, render, screen } from "@solidjs/testing-library";
import { afterEach, describe, expect, it, vi } from "vitest";
import { type TreeNode, TreeView } from "../TreeView";
const sampleNodes: TreeNode[] = [{
id: "1",
label: "Root",
children: [{ id: "1-1", label: "Child 1" }, { id: "1-2", label: "Child 2" }],
}, { id: "2", label: "Sibling" }];
describe("TreeView", () => {
afterEach(cleanup);
it("renders nodes", () => {
render(() => );
expect(screen.getByRole("tree")).toBeInTheDocument();
expect(screen.getByText("Root")).toBeInTheDocument();
expect(screen.getByText("Sibling")).toBeInTheDocument();
});
it("expands children on click", () => {
render(() => );
expect(screen.queryByText("Child 1")).not.toBeInTheDocument();
fireEvent.click(screen.getByText("Root"));
expect(screen.getByText("Child 1")).toBeInTheDocument();
expect(screen.getByText("Child 2")).toBeInTheDocument();
});
it("calls onSelect when node clicked", () => {
const handleSelect = vi.fn();
render(() => );
fireEvent.click(screen.getByText("Sibling"));
expect(handleSelect).toHaveBeenCalledWith(expect.objectContaining({ id: "2" }));
});
});