diff --git a/tests/App.test.svelte b/tests/App.test.svelte index 3ef5ac3d..de04ad2f 100644 --- a/tests/App.test.svelte +++ b/tests/App.test.svelte @@ -1,5 +1,54 @@ - - +
+
+ ({ + id: route.path, + text: route.name, + }))} + on:select={(e) => { + navigate(e.detail.id.toString()); + }} + /> +
+
+ {#each routes as route (route.path)} + {#if currentPath === route.path} + + {/if} + {/each} +
+
diff --git a/tests/TreeView/TreeView.test.svelte b/tests/TreeView/TreeView.test.svelte index ee277647..fb89bb49 100644 --- a/tests/TreeView/TreeView.test.svelte +++ b/tests/TreeView/TreeView.test.svelte @@ -7,7 +7,7 @@ let treeview: TreeView; let activeId: TreeNodeId = ""; let selectedIds: TreeNodeId[] = []; - let expandedIds: TreeNodeId[] = [1]; + let expandedIds: TreeNodeId[] = []; let nodes: ComponentProps["nodes"] = [ { id: 0, text: "AI / Machine learning", icon: Analytics }, { @@ -81,3 +81,12 @@ + diff --git a/tests/TreeView/TreeView.test.ts b/tests/TreeView/TreeView.test.ts index b2a0a6a3..3f1210f7 100644 --- a/tests/TreeView/TreeView.test.ts +++ b/tests/TreeView/TreeView.test.ts @@ -17,6 +17,16 @@ describe("TreeView", () => { }); }; + const noExpandedItems = () => { + expect(screen.queryAllByRole("treeitem", { expanded: true })).toHaveLength( + 0, + ); + }; + + const getAllExpandedItems = () => { + return screen.getAllByRole("treeitem", { expanded: true }); + }; + it("can select a node", async () => { const consoleLog = vi.spyOn(console, "log"); @@ -37,4 +47,30 @@ describe("TreeView", () => { text: "AI / Machine learning", }); }); + + it("can expand all nodes", async () => { + render(TreeView); + + noExpandedItems(); + + const expandAllButton = screen.getByText("Expand all"); + await user.click(expandAllButton); + + expect(getAllExpandedItems()).toHaveLength(5); + }); + + it("can expand some nodes", async () => { + render(TreeView); + + noExpandedItems(); + + const expandSomeNodesButton = screen.getByText("Expand some nodes"); + await user.click(expandSomeNodesButton); + + expect(getAllExpandedItems()).toHaveLength(2); + + expect( + screen.getByText("IBM Analytics Engine").parentNode?.parentNode, + ).toHaveAttribute("aria-expanded", "true"); + }); });