feat: complete tree shell cutover and regression coverage

This commit is contained in:
lix-2026
2026-04-18 09:38:16 +08:00
parent d3876e56eb
commit 111a87d4fd
53 changed files with 5440 additions and 516 deletions
@@ -0,0 +1,33 @@
import { describe, expect, it } from "vitest";
import type { TreeProjectionItemBase } from "@/lib/tree-protocol";
describe("tree-protocol", () => {
it("冻结共享 tree projection 字段与 file_tree 扩展语义", () => {
const item: TreeProjectionItemBase = {
nodeId: "doc_1",
parentNodeId: null,
nodeType: "page",
projectionKind: "file_tree",
title: "页面 1",
depth: 0,
position: 1,
childCount: 2,
expandable: true,
expandedByDefault: true,
capabilities: ["expand", "open", "drag", "drop", "select", "create-child"],
resourceMeta: {
resourceKind: "document",
documentId: "doc_1",
assetKind: "file",
iconHint: "page",
},
iconHint: "page",
};
expect(item.resourceMeta.resourceKind).toBe("document");
expect(item.resourceMeta.assetKind).toBe("file");
expect(item.capabilities).toContain("expand");
expect(item.expandable).toBe(true);
expect(item.iconHint).toBe("page");
});
});