Files
dbx/packages/app-tests/sidebarTreeCollapse.test.ts
T
二丫讲梵 af9ad39ffb feat(sidebar): 添加一键折叠所有节点功能
- 在侧边栏中添加了“折叠所有”按钮,用户可以一键折叠所有展开的节点。
- 更新了相关的国际化文本,支持多语言。
- 增加了 collapseAllGroups 和 collapseExpandedTreeNodes 函数以支持新功能。
2026-07-02 18:50:01 +08:00

43 lines
1.5 KiB
TypeScript

import { strict as assert } from "node:assert";
import { test } from "vitest";
import { collapseExpandedTreeNodes } from "../../apps/desktop/src/lib/sidebarTreeCollapse.ts";
import type { TreeNode } from "../../apps/desktop/src/types/database.ts";
test("collapseExpandedTreeNodes collapses all expanded descendants", () => {
const nodes: TreeNode[] = [
{
id: "conn",
label: "conn",
type: "connection",
isExpanded: true,
children: [
{
id: "db",
label: "db",
type: "database",
isExpanded: true,
children: [
{ id: "tables", label: "Tables", type: "group-tables", isExpanded: false },
{ id: "views", label: "Views", type: "group-views", isExpanded: true },
],
},
],
},
{ id: "closed", label: "closed", type: "connection", isExpanded: false },
];
assert.equal(collapseExpandedTreeNodes(nodes), 3);
assert.equal(nodes[0].isExpanded, false);
assert.equal(nodes[0].children?.[0]?.isExpanded, false);
assert.equal(nodes[0].children?.[0]?.children?.[0]?.isExpanded, false);
assert.equal(nodes[0].children?.[0]?.children?.[1]?.isExpanded, false);
assert.equal(nodes[1].isExpanded, false);
});
test("collapseExpandedTreeNodes returns zero when nothing is expanded", () => {
const nodes: TreeNode[] = [{ id: "conn", label: "conn", type: "connection", isExpanded: false }];
assert.equal(collapseExpandedTreeNodes(nodes), 0);
assert.equal(nodes[0].isExpanded, false);
});