import { LGraph, LGraphGroup, LGraphNode, LiteGraph } from "../src/litegraph" import { LiteGraphGlobal } from "../src/LiteGraphGlobal" function makeGraph() { const LiteGraph = new LiteGraphGlobal() LiteGraph.registerNodeType("TestNode", LGraphNode) LiteGraph.registerNodeType("OtherNode", LGraphNode) LiteGraph.registerNodeType("", LGraphNode) return new LGraph() } describe("LGraph", () => { it("can be instantiated", () => { // @ts-ignore TODO: Remove once relative imports fix goes in. const graph = new LGraph({ extra: "TestGraph" }) expect(graph).toBeInstanceOf(LGraph) expect(graph.extra).toBe("TestGraph") }) }) describe("Legacy LGraph Compatibility Layer", () => { it("can be extended via prototype", () => { const graph = new LGraph() // @ts-expect-error Should always be an error. LGraph.prototype.newMethod = function () { return "New method added via prototype" } // @ts-expect-error Should always be an error. expect(graph.newMethod()).toBe("New method added via prototype") }) it("is correctly assigned to LiteGraph", () => { expect(LiteGraph.LGraph).toBe(LGraph) }) }) describe("LGraph Serialisation", () => { it("should serialise", () => { const graph = new LGraph() graph.add(new LGraphNode("Test Node")) graph.add(new LGraphGroup("Test Group")) expect(graph.nodes.length).toBe(1) expect(graph.groups.length).toBe(1) }) })