mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-31 13:29:55 +00:00
93 lines
2.3 KiB
TypeScript
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,
|
|
)
|
|
})
|
|
})
|
|
})
|