UNPKG

vue3-dnd

Version:

Drag and Drop for Vue Composition API

66 lines (65 loc) 3.07 kB
import { SourceConnector } from "../SourceConnector"; import { vi, describe, beforeEach, it, expect } from "vitest"; describe("SourceConnector", function() { var backend; var connector; beforeEach(function() { backend = { setup: vi.fn(), teardown: vi.fn(), connectDragSource: vi.fn(), connectDragPreview: vi.fn(), connectDropTarget: vi.fn(), profile: vi.fn() }; connector = new SourceConnector(backend); }); it("unsubscribes drag source when clearing handler id", function() { var unsubscribeDragSource = vi.fn(); backend.connectDragSource.mockReturnValueOnce(unsubscribeDragSource); connector.receiveHandlerId("test"); connector.hooks.dragSource()({}); expect(backend.connectDragSource).toHaveBeenCalled(); expect(unsubscribeDragSource).not.toHaveBeenCalled(); backend.connectDragSource.mockClear(); connector.receiveHandlerId(null); expect(backend.connectDragSource).not.toHaveBeenCalled(); expect(unsubscribeDragSource).toHaveBeenCalled(); }); it("unsubscribes drag preview when hook is called without node", function() { var unsubscribeDragSource = vi.fn(); backend.connectDragSource.mockReturnValueOnce(unsubscribeDragSource); connector.receiveHandlerId("test"); connector.hooks.dragSource()({}); expect(backend.connectDragSource).toHaveBeenCalled(); expect(unsubscribeDragSource).not.toHaveBeenCalled(); backend.connectDragSource.mockClear(); connector.hooks.dragSource()(null); expect(backend.connectDragSource).not.toHaveBeenCalled(); expect(unsubscribeDragSource).toHaveBeenCalled(); }); it("unsubscribes drag preview when clearing handler id", function() { var unsubscribeDragPreview = vi.fn(); backend.connectDragPreview.mockReturnValueOnce(unsubscribeDragPreview); connector.receiveHandlerId("test"); connector.hooks.dragPreview()({}); expect(backend.connectDragPreview).toHaveBeenCalled(); expect(unsubscribeDragPreview).not.toHaveBeenCalled(); backend.connectDragPreview.mockClear(); connector.receiveHandlerId(null); expect(backend.connectDragPreview).not.toHaveBeenCalled(); expect(unsubscribeDragPreview).toHaveBeenCalled(); }); it("unsubscribes drag preview when hook called without node", function() { var unsubscribeDragPreview = vi.fn(); backend.connectDragPreview.mockReturnValueOnce(unsubscribeDragPreview); connector.receiveHandlerId("test"); connector.hooks.dragPreview()({}); expect(backend.connectDragPreview).toHaveBeenCalled(); expect(unsubscribeDragPreview).not.toHaveBeenCalled(); backend.connectDragPreview.mockClear(); connector.hooks.dragPreview()(null); expect(backend.connectDragPreview).not.toHaveBeenCalled(); expect(unsubscribeDragPreview).toHaveBeenCalled(); }); });