first
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import { describe, it } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
import { buildCommunityLegend, buildRenderableGraph } from "../src/render";
|
||||
import { UNGROUPED_COMMUNITY_ID, UNGROUPED_COMMUNITY_LABEL } from "../src/types";
|
||||
import type { GraphData } from "../src/types";
|
||||
|
||||
describe("community legend", () => {
|
||||
it("lists the ungrouped virtual community as 未分组 with its node ids", () => {
|
||||
const graph = buildRenderableGraph(graphFixtureWithUngroupedNodes());
|
||||
const rows = buildCommunityLegend(
|
||||
graph.communities,
|
||||
graph.nodes.map((node) => ({ id: node.id, community: node.community }))
|
||||
);
|
||||
|
||||
assert.equal(rows.find((row) => row.id === UNGROUPED_COMMUNITY_ID)?.label, UNGROUPED_COMMUNITY_LABEL);
|
||||
assert.deepEqual(
|
||||
rows.find((row) => row.id === UNGROUPED_COMMUNITY_ID)?.nodeIds,
|
||||
["loose-a", "loose-b"]
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
function graphFixtureWithUngroupedNodes(): GraphData {
|
||||
return {
|
||||
meta: {
|
||||
build_date: "2026-06-18T00:00:00.000Z",
|
||||
wiki_title: "Legend ungrouped graph",
|
||||
total_nodes: 4,
|
||||
total_edges: 1
|
||||
},
|
||||
nodes: [
|
||||
{ id: "a", label: "Alpha", type: "topic", community: "alpha", source_path: "wiki/alpha/a.md", weight: 2 },
|
||||
{ id: "b", label: "Beta", type: "entity", community: "alpha", source_path: "wiki/alpha/b.md" },
|
||||
{ id: "loose-a", label: "Loose A", type: "topic", community: null, source_path: "wiki/loose/a.md", score: 2 },
|
||||
{ id: "loose-b", label: "Loose B", type: "entity", source_path: "wiki/loose/b.md", weight: 1 }
|
||||
],
|
||||
edges: [
|
||||
{ id: "a-b", from: "a", to: "b", type: "EXTRACTED", relation_type: "实现", weight: 0.6 }
|
||||
],
|
||||
learning: {
|
||||
version: 1,
|
||||
entry: { recommended_start_node_id: "a", recommended_start_reason: "hub", default_mode: "global" },
|
||||
views: {
|
||||
path: { enabled: false, start_node_id: null, node_ids: [], degraded: true },
|
||||
community: { enabled: false, community_id: null, label: null, node_ids: [], is_weak: false, degraded: true },
|
||||
global: { enabled: true, node_ids: ["a", "b"], degraded: false }
|
||||
},
|
||||
communities: [
|
||||
{ id: "alpha", label: "Alpha", node_count: 2, color_index: 0, members: ["a", "b"] }
|
||||
]
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user