Files
ComfyUI_frontend/src/lib/litegraph/test/ToOutputRenderLink.test.ts
Benjamin Lu e324c805ba Add 'src/lib/litegraph/' from commit '1b58bf4966e9cdaa04bfaa40f5650b6c6680ab97'
git-subtree-dir: src/lib/litegraph
git-subtree-mainline: 1eadf80fec
git-subtree-split: 1b58bf4966
2025-08-03 14:55:05 -04:00

93 lines
2.3 KiB
TypeScript

import { describe, expect, it, vi } from "vitest"
import { ToOutputRenderLink } from "@/canvas/ToOutputRenderLink"
import { LinkDirection } from "@/types/globalEnums"
describe("ToOutputRenderLink", () => {
describe("connectToOutput", () => {
it("should return early if inputNode is null", () => {
// Setup
const mockNetwork = {}
const mockFromSlot = {}
const mockNode = { id: "test-id", inputs: [mockFromSlot], getInputPos: vi.fn().mockReturnValue([0, 0]) }
const renderLink = new ToOutputRenderLink(
mockNetwork as any,
mockNode as any,
mockFromSlot as any,
undefined,
LinkDirection.CENTER,
)
// Override the node property to simulate null case
Object.defineProperty(renderLink, "node", {
value: null,
})
const mockTargetNode = {
connectSlots: vi.fn(),
}
const mockEvents = {
dispatch: vi.fn(),
}
// Act
renderLink.connectToOutput(
mockTargetNode as any,
{} as any,
mockEvents as any,
)
// Assert
expect(mockTargetNode.connectSlots).not.toHaveBeenCalled()
expect(mockEvents.dispatch).not.toHaveBeenCalled()
})
it("should create connection and dispatch event when inputNode exists", () => {
// Setup
const mockNetwork = {}
const mockFromSlot = {}
const mockNode = {
id: "test-id",
inputs: [mockFromSlot],
getInputPos: vi.fn().mockReturnValue([0, 0]),
}
const renderLink = new ToOutputRenderLink(
mockNetwork as any,
mockNode as any,
mockFromSlot as any,
undefined,
LinkDirection.CENTER,
)
const mockNewLink = { id: "new-link" }
const mockTargetNode = {
connectSlots: vi.fn().mockReturnValue(mockNewLink),
}
const mockEvents = {
dispatch: vi.fn(),
}
// Act
renderLink.connectToOutput(
mockTargetNode as any,
{} as any,
mockEvents as any,
)
// Assert
expect(mockTargetNode.connectSlots).toHaveBeenCalledWith(
expect.anything(),
mockNode,
mockFromSlot,
undefined,
)
expect(mockEvents.dispatch).toHaveBeenCalledWith(
"link-created",
mockNewLink,
)
})
})
})