From 56ebbb4cbfa89c850d2b4c6a2ddc4bb85f755ca0 Mon Sep 17 00:00:00 2001 From: Bram Date: Tue, 26 Nov 2024 23:57:44 +0100 Subject: [PATCH] Added test for flat array input data --- src/TreeView/TreeView.svelte | 5 +- tests/TreeView/TreeView.test.ts | 11 +++ tests/TreeView/TreeViewFlatArray.test.svelte | 75 ++++++++++++++++++++ 3 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 tests/TreeView/TreeViewFlatArray.test.svelte diff --git a/src/TreeView/TreeView.svelte b/src/TreeView/TreeView.svelte index 8ad02f40..80c769ed 100644 --- a/src/TreeView/TreeView.svelte +++ b/src/TreeView/TreeView.svelte @@ -44,7 +44,7 @@ /** * Provide a flat array of nodes to render - * @type {Array} + * @type {Array} */ export let nodesFlat = []; @@ -203,8 +203,7 @@ /** * Create a nested array from a flat array - * TODO: accept a parent key - * @type {(flatArray: TreeNode[] & { pid: any }[]) => TreeNode[]} + * @type {(flatArray: TreeNode[] & { pid?: any }[]) => TreeNode[]} */ function createNestedArray(flatArray) { /** @type TreeNode[] */ diff --git a/tests/TreeView/TreeView.test.ts b/tests/TreeView/TreeView.test.ts index b2a0a6a3..0e29a9d9 100644 --- a/tests/TreeView/TreeView.test.ts +++ b/tests/TreeView/TreeView.test.ts @@ -1,6 +1,7 @@ import { render, screen } from "@testing-library/svelte"; import { user } from "../setup-tests"; import TreeView from "./TreeView.test.svelte"; +import TreeViewFlatArray from "./TreeViewFlatArray.test.svelte"; describe("TreeView", () => { const getItemByName = (name: RegExp) => { @@ -37,4 +38,14 @@ describe("TreeView", () => { text: "AI / Machine learning", }); }); + + it("can turn flat array into nested array", async () => { + const consoleLog = vi.spyOn(console, "log"); + render(TreeViewFlatArray); + const firstItem = getItemByName(/Blockchain/); + expect(firstItem).toBeInTheDocument(); + await user.click(firstItem); + expect(getSelectedItemByName(/Blockchain/)).toBeInTheDocument(); + expect(consoleLog).toBeCalledWith("selectedIds", [7]); + }); }); diff --git a/tests/TreeView/TreeViewFlatArray.test.svelte b/tests/TreeView/TreeViewFlatArray.test.svelte new file mode 100644 index 00000000..86b7fe71 --- /dev/null +++ b/tests/TreeView/TreeViewFlatArray.test.svelte @@ -0,0 +1,75 @@ + + + console.log("select", detail)} + on:toggle={({ detail }) => console.log("toggle", detail)} + on:focus={({ detail }) => console.log("focus", detail)} + let:node +> + {node.text} + + +