import { strict as assert } from "node:assert"; import test from "node:test"; import { canTreeNodeExpand, canTreeNodeShowExpander, treeItemPaddingLeft } from "../../apps/desktop/src/lib/sidebarTreeItemLayout.ts"; test("treeItemPaddingLeft converts tree depth to sidebar indentation", () => { assert.equal(treeItemPaddingLeft(0), "8px"); assert.equal(treeItemPaddingLeft(1), "24px"); assert.equal(treeItemPaddingLeft(2), "40px"); }); test("canTreeNodeExpand only returns true for expandable sidebar node types", () => { assert.equal(canTreeNodeExpand("connection"), true); assert.equal(canTreeNodeExpand("database"), true); assert.equal(canTreeNodeExpand("schema"), true); assert.equal(canTreeNodeExpand("table"), true); assert.equal(canTreeNodeExpand("view"), true); assert.equal(canTreeNodeExpand("saved-sql-root"), true); assert.equal(canTreeNodeExpand("saved-sql-folder"), true); assert.equal(canTreeNodeExpand("saved-sql-file"), false); assert.equal(canTreeNodeExpand("object-browser"), false); assert.equal(canTreeNodeExpand("column"), false); assert.equal(canTreeNodeExpand("index"), false); assert.equal(canTreeNodeExpand("redis-db"), false); assert.equal(canTreeNodeExpand("mongo-collection"), false); }); test("canTreeNodeShowExpander hides empty saved SQL containers", () => { assert.equal(canTreeNodeShowExpander({ type: "saved-sql-root", childCount: 0 }), false); assert.equal(canTreeNodeShowExpander({ type: "saved-sql-folder", childCount: 0 }), false); assert.equal(canTreeNodeShowExpander({ type: "saved-sql-root", childCount: 1 }), true); assert.equal(canTreeNodeShowExpander({ type: "saved-sql-folder", childCount: 1 }), true); });