vue3-dnd
Version:
Drag and Drop for Vue Composition API
66 lines (65 loc) • 3.07 kB
JavaScript
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();
});
});