| import { expect, test } from "bun:test" | |
| import { FileTree, type FileTreeDirectoryHandle } from "@pierre/trees" | |
| test("reports directory expansion changes", () => { | |
| const changes: Array<{ path: string; expanded: boolean }> = [] | |
| const tree = new FileTree({ | |
| paths: ["src/"], | |
| onExpansionChange: (change) => changes.push(change), | |
| }) | |
| const src = tree.getItem("src/") | |
| if (!src || !src.isDirectory()) throw new Error("Expected src to be a directory") | |
| const directory = src as FileTreeDirectoryHandle | |
| directory.expand() | |
| directory.collapse() | |
| expect(changes).toEqual([ | |
| { path: "src/", expanded: true }, | |
| { path: "src/", expanded: false }, | |
| ]) | |
| tree.cleanUp() | |
| }) | |