39 lines
1.8 KiB
TypeScript
39 lines
1.8 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { treeNodeRowAction, treeNodeRowDoubleClickAction } from "../src/lib/treeNodeClick.ts";
|
|
|
|
test("table and view rows open data without toggling structure groups", () => {
|
|
assert.equal(treeNodeRowAction("table", true), "open-data");
|
|
assert.equal(treeNodeRowAction("view", true), "open-data");
|
|
});
|
|
|
|
test("expandable non-table rows still toggle from row clicks", () => {
|
|
assert.equal(treeNodeRowAction("connection", true), "toggle");
|
|
assert.equal(treeNodeRowAction("database", true), "toggle");
|
|
assert.equal(treeNodeRowAction("schema", true), "toggle");
|
|
assert.equal(treeNodeRowAction("group-columns", true), "toggle");
|
|
});
|
|
|
|
test("leaf data browser nodes keep their open behavior through toggle handler", () => {
|
|
assert.equal(treeNodeRowAction("redis-db", false), "toggle");
|
|
assert.equal(treeNodeRowAction("mongo-collection", false), "toggle");
|
|
});
|
|
|
|
test("plain metadata leaf rows do nothing on row clicks", () => {
|
|
assert.equal(treeNodeRowAction("column", false), "none");
|
|
assert.equal(treeNodeRowAction("index", false), "none");
|
|
});
|
|
|
|
test("database and schema rows open object browser only on double click", () => {
|
|
assert.equal(treeNodeRowAction("database", true), "toggle");
|
|
assert.equal(treeNodeRowAction("schema", true), "toggle");
|
|
assert.equal(treeNodeRowDoubleClickAction("database", true), "open-object-browser");
|
|
assert.equal(treeNodeRowDoubleClickAction("schema", true), "open-object-browser");
|
|
});
|
|
|
|
test("double click does not open object browser for non-browsable rows", () => {
|
|
assert.equal(treeNodeRowDoubleClickAction("database", false), "none");
|
|
assert.equal(treeNodeRowDoubleClickAction("table", true), "none");
|
|
assert.equal(treeNodeRowDoubleClickAction("column", true), "none");
|
|
});
|