@livetemplate/client 0.8.36 → 0.8.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -162,6 +162,41 @@ describe("handleHighlightDirectives", () => {
162
162
  (0, directives_1.handleHighlightDirectives)(document.body);
163
163
  expect(target.style.backgroundColor).toBe(originalBg);
164
164
  });
165
+ it("removes empty style attribute after cleanup", () => {
166
+ document.body.innerHTML = `<div id="target" lvt-fx:highlight="flash"></div>`;
167
+ const target = document.getElementById("target");
168
+ (0, directives_1.handleHighlightDirectives)(document.body);
169
+ // While the highlight is in flight, the directive's transition + bg are
170
+ // present, so style attribute exists.
171
+ expect(target.hasAttribute("style")).toBe(true);
172
+ // Advance past the inner setTimeout (50ms initial + 500ms duration default)
173
+ jest.advanceTimersByTime(50);
174
+ jest.advanceTimersByTime(500);
175
+ // After full cycle: directive's bg + transition removed; nothing user-set
176
+ // remains on this element, so style attribute is gone.
177
+ expect(target.hasAttribute("style")).toBe(false);
178
+ });
179
+ it("preserves style attribute when user-set CSS vars remain after cleanup", () => {
180
+ document.body.innerHTML = `<div id="target" lvt-fx:highlight="flash" style="--lvt-highlight-color: #ff0000;"></div>`;
181
+ const target = document.getElementById("target");
182
+ (0, directives_1.handleHighlightDirectives)(document.body);
183
+ jest.advanceTimersByTime(50);
184
+ jest.advanceTimersByTime(500);
185
+ // Directive's own properties cleared, but the user's --lvt-highlight-color
186
+ // CSS var must survive — style.length>0 keeps the attribute.
187
+ expect(target.hasAttribute("style")).toBe(true);
188
+ expect(target.style.getPropertyValue("--lvt-highlight-color")).toBe("#ff0000");
189
+ });
190
+ it("removes empty style attribute when element disconnects mid-cycle", () => {
191
+ document.body.innerHTML = `<div id="target" lvt-fx:highlight="flash"></div>`;
192
+ const target = document.getElementById("target");
193
+ (0, directives_1.handleHighlightDirectives)(document.body);
194
+ // Disconnect before the inner setTimeout fires (between 0 and 50ms)
195
+ target.remove();
196
+ jest.advanceTimersByTime(50);
197
+ // Even on the disconnected path, cleanup should leave no empty style attr
198
+ expect(target.hasAttribute("style")).toBe(false);
199
+ });
165
200
  });
166
201
  describe("handleAnimateDirectives", () => {
167
202
  beforeEach(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"directives.test.js","sourceRoot":"","sources":["../../tests/directives.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directives.test.js","sourceRoot":"","sources":["../../tests/directives.test.ts"],"names":[],"mappings":"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"}
@@ -632,5 +632,359 @@ describe("EventDelegator", () => {
632
632
  });
633
633
  });
634
634
  });
635
+ describe("drag events", () => {
636
+ // JSDOM's DragEvent and DataTransfer are not faithful to the spec
637
+ // (DataTransfer constructor missing in many versions, dataTransfer
638
+ // field on DragEvent often null). We build a Map-backed DataTransfer
639
+ // mock and attach it via defineProperty so the production code's
640
+ // `(e as DragEvent).dataTransfer` reads our mock.
641
+ const buildDataTransferMock = () => {
642
+ const store = new Map();
643
+ const mock = {
644
+ setData: jest.fn((type, value) => {
645
+ store.set(type, value);
646
+ }),
647
+ getData: jest.fn((type) => store.get(type) ?? ""),
648
+ effectAllowed: "uninitialized",
649
+ dropEffect: "none",
650
+ };
651
+ return { store, mock };
652
+ };
653
+ const dispatchDrag = (target, type, dt, relatedTarget) => {
654
+ const evt = new Event(type, { bubbles: true, cancelable: true });
655
+ if (dt) {
656
+ Object.defineProperty(evt, "dataTransfer", {
657
+ value: dt,
658
+ writable: false,
659
+ configurable: true,
660
+ });
661
+ }
662
+ if (relatedTarget !== undefined) {
663
+ Object.defineProperty(evt, "relatedTarget", {
664
+ value: relatedTarget,
665
+ writable: false,
666
+ configurable: true,
667
+ });
668
+ }
669
+ target.dispatchEvent(evt);
670
+ return evt;
671
+ };
672
+ it("dragstart stashes data-key into the LVT MIME only (never text/plain)", () => {
673
+ const wrapper = document.createElement("div");
674
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-1");
675
+ wrapper.innerHTML = `
676
+ <li id="src" data-key="task-3" lvt-on:dragstart="startDrag"></li>
677
+ `;
678
+ document.body.appendChild(wrapper);
679
+ const context = createContext(wrapper);
680
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
681
+ delegator.setupEventDelegation();
682
+ const { store, mock } = buildDataTransferMock();
683
+ dispatchDrag(document.getElementById("src"), "dragstart", mock);
684
+ expect(mock.setData).toHaveBeenCalledWith("application/x-lvt-key", "task-3");
685
+ expect(store.get("application/x-lvt-key")).toBe("task-3");
686
+ // Critical: text/plain is NOT set, so the key cannot leak to
687
+ // external drop targets (URL bar, text editor, another app).
688
+ expect(store.has("text/plain")).toBe(false);
689
+ expect(context.send).toHaveBeenCalledWith({ action: "startDrag", data: {} });
690
+ });
691
+ it("dragstart sets effectAllowed to 'move'", () => {
692
+ const wrapper = document.createElement("div");
693
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-2");
694
+ wrapper.innerHTML = `<li id="src" data-key="x" lvt-on:dragstart="d"></li>`;
695
+ document.body.appendChild(wrapper);
696
+ const delegator = new event_delegation_1.EventDelegator(createContext(wrapper), (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
697
+ delegator.setupEventDelegation();
698
+ const { mock } = buildDataTransferMock();
699
+ dispatchDrag(document.getElementById("src"), "dragstart", mock);
700
+ expect(mock.effectAllowed).toBe("move");
701
+ });
702
+ it("dragstart with no enclosing data-key sends empty key without throwing", () => {
703
+ const wrapper = document.createElement("div");
704
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-3");
705
+ wrapper.innerHTML = `<div id="src" lvt-on:dragstart="d"></div>`;
706
+ document.body.appendChild(wrapper);
707
+ const context = createContext(wrapper);
708
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
709
+ delegator.setupEventDelegation();
710
+ const { mock } = buildDataTransferMock();
711
+ expect(() => dispatchDrag(document.getElementById("src"), "dragstart", mock)).not.toThrow();
712
+ expect(mock.setData).toHaveBeenCalledWith("application/x-lvt-key", "");
713
+ expect(context.send).toHaveBeenCalledWith({ action: "d", data: {} });
714
+ });
715
+ it("dragover preventDefaults on every event even when send is throttled", () => {
716
+ jest.useFakeTimers();
717
+ const wrapper = document.createElement("div");
718
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-4");
719
+ wrapper.innerHTML = `
720
+ <li id="tgt" data-key="t" lvt-on:dragover="over" lvt-mod:throttle="200"></li>
721
+ `;
722
+ document.body.appendChild(wrapper);
723
+ const context = createContext(wrapper);
724
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
725
+ delegator.setupEventDelegation();
726
+ const target = document.getElementById("tgt");
727
+ const { mock } = buildDataTransferMock();
728
+ const e1 = dispatchDrag(target, "dragover", mock);
729
+ const e2 = dispatchDrag(target, "dragover", mock);
730
+ const e3 = dispatchDrag(target, "dragover", mock);
731
+ // preventDefault is called on every event (not throttled)
732
+ expect(e1.defaultPrevented).toBe(true);
733
+ expect(e2.defaultPrevented).toBe(true);
734
+ expect(e3.defaultPrevented).toBe(true);
735
+ // send is throttled — only fired once
736
+ expect(context.send).toHaveBeenCalledTimes(1);
737
+ jest.advanceTimersByTime(200);
738
+ dispatchDrag(target, "dragover", mock);
739
+ expect(context.send).toHaveBeenCalledTimes(2);
740
+ });
741
+ it("dragover sets dropEffect to 'move'", () => {
742
+ const wrapper = document.createElement("div");
743
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-5");
744
+ wrapper.innerHTML = `<li id="tgt" data-key="t" lvt-on:dragover="o"></li>`;
745
+ document.body.appendChild(wrapper);
746
+ const delegator = new event_delegation_1.EventDelegator(createContext(wrapper), (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
747
+ delegator.setupEventDelegation();
748
+ const { mock } = buildDataTransferMock();
749
+ dispatchDrag(document.getElementById("tgt"), "dragover", mock);
750
+ expect(mock.dropEffect).toBe("move");
751
+ });
752
+ it("drop injects dragSourceKey from DataTransfer and dragTargetKey from DOM", () => {
753
+ const wrapper = document.createElement("div");
754
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-6");
755
+ wrapper.innerHTML = `
756
+ <ul>
757
+ <li id="tgt" data-key="task-1" lvt-on:drop="reorder"></li>
758
+ </ul>
759
+ `;
760
+ document.body.appendChild(wrapper);
761
+ const context = createContext(wrapper);
762
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
763
+ delegator.setupEventDelegation();
764
+ const { store, mock } = buildDataTransferMock();
765
+ store.set("application/x-lvt-key", "task-3");
766
+ dispatchDrag(document.getElementById("tgt"), "drop", mock);
767
+ expect(context.send).toHaveBeenCalledWith({
768
+ action: "reorder",
769
+ data: { dragSourceKey: "task-3", dragTargetKey: "task-1" },
770
+ });
771
+ });
772
+ it("drop calls preventDefault to suppress browser navigation", () => {
773
+ const wrapper = document.createElement("div");
774
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-7");
775
+ wrapper.innerHTML = `<li id="tgt" data-key="t" lvt-on:drop="d"></li>`;
776
+ document.body.appendChild(wrapper);
777
+ const delegator = new event_delegation_1.EventDelegator(createContext(wrapper), (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
778
+ delegator.setupEventDelegation();
779
+ const { mock } = buildDataTransferMock();
780
+ const evt = dispatchDrag(document.getElementById("tgt"), "drop", mock);
781
+ expect(evt.defaultPrevented).toBe(true);
782
+ });
783
+ it("drop ignores text/plain-only DataTransfer (cross-app drag is untrusted)", () => {
784
+ const wrapper = document.createElement("div");
785
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-8");
786
+ wrapper.innerHTML = `<li id="tgt" data-key="t" lvt-on:drop="d"></li>`;
787
+ document.body.appendChild(wrapper);
788
+ const context = createContext(wrapper);
789
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
790
+ delegator.setupEventDelegation();
791
+ const { store, mock } = buildDataTransferMock();
792
+ // Simulates a drag from outside the app — only text/plain is set,
793
+ // LVT MIME is absent. The drop must NOT promote arbitrary text
794
+ // to dragSourceKey.
795
+ store.set("text/plain", "arbitrary external text");
796
+ dispatchDrag(document.getElementById("tgt"), "drop", mock);
797
+ const call = context.send.mock.calls[0][0];
798
+ expect(call.action).toBe("d");
799
+ expect(call.data.dragTargetKey).toBe("t");
800
+ expect(call.data).not.toHaveProperty("dragSourceKey");
801
+ });
802
+ it("drop with no MIME data injects only dragTargetKey", () => {
803
+ const wrapper = document.createElement("div");
804
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-9");
805
+ wrapper.innerHTML = `<li id="tgt" data-key="t" lvt-on:drop="d"></li>`;
806
+ document.body.appendChild(wrapper);
807
+ const context = createContext(wrapper);
808
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
809
+ delegator.setupEventDelegation();
810
+ const { mock } = buildDataTransferMock();
811
+ dispatchDrag(document.getElementById("tgt"), "drop", mock);
812
+ const call = context.send.mock.calls[0][0];
813
+ expect(call.action).toBe("d");
814
+ expect(call.data.dragTargetKey).toBe("t");
815
+ expect(call.data).not.toHaveProperty("dragSourceKey");
816
+ });
817
+ it("drop without dataTransfer still injects dragTargetKey from the DOM", () => {
818
+ // Some embedded / synthetic-event environments produce DragEvents
819
+ // with no DataTransfer. dragSourceKey is unavailable in that case
820
+ // (it's stashed via DataTransfer), but dragTargetKey is derived
821
+ // from the DOM and must still be sent.
822
+ const wrapper = document.createElement("div");
823
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-no-dt");
824
+ wrapper.innerHTML = `<li id="tgt" data-key="task-X" lvt-on:drop="d"></li>`;
825
+ document.body.appendChild(wrapper);
826
+ const context = createContext(wrapper);
827
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
828
+ delegator.setupEventDelegation();
829
+ // dispatchDrag without a mock DataTransfer
830
+ dispatchDrag(document.getElementById("tgt"), "drop");
831
+ const call = context.send.mock.calls[0][0];
832
+ expect(call.action).toBe("d");
833
+ expect(call.data.dragTargetKey).toBe("task-X");
834
+ expect(call.data).not.toHaveProperty("dragSourceKey");
835
+ });
836
+ it("drop on nested element resolves dragTargetKey via closest data-key", () => {
837
+ const wrapper = document.createElement("div");
838
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-10");
839
+ wrapper.innerHTML = `
840
+ <ul>
841
+ <li data-key="task-5">
842
+ <span id="inner" lvt-on:drop="reorder"></span>
843
+ </li>
844
+ </ul>
845
+ `;
846
+ document.body.appendChild(wrapper);
847
+ const context = createContext(wrapper);
848
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
849
+ delegator.setupEventDelegation();
850
+ const { store, mock } = buildDataTransferMock();
851
+ store.set("application/x-lvt-key", "task-2");
852
+ dispatchDrag(document.getElementById("inner"), "drop", mock);
853
+ expect(context.send).toHaveBeenCalledWith({
854
+ action: "reorder",
855
+ data: { dragSourceKey: "task-2", dragTargetKey: "task-5" },
856
+ });
857
+ });
858
+ it("dragend forwards as a plain action (no drag-specific data injection)", () => {
859
+ const wrapper = document.createElement("div");
860
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-11");
861
+ wrapper.innerHTML = `<li id="src" data-key="x" lvt-on:dragend="cleanup"></li>`;
862
+ document.body.appendChild(wrapper);
863
+ const context = createContext(wrapper);
864
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
865
+ delegator.setupEventDelegation();
866
+ const { mock } = buildDataTransferMock();
867
+ dispatchDrag(document.getElementById("src"), "dragend", mock);
868
+ expect(context.send).toHaveBeenCalledWith({ action: "cleanup", data: {} });
869
+ // No drag-specific keys leaked into payload
870
+ expect(mock.setData).not.toHaveBeenCalled();
871
+ });
872
+ it("dragenter is suppressed when relatedTarget is a child of the action element", () => {
873
+ // The spec fires dragenter as the pointer crosses into a child
874
+ // of an existing drop target — that's noise. Our handler should
875
+ // suppress it and only fire on real boundary crossings.
876
+ const wrapper = document.createElement("div");
877
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-enter-noise");
878
+ wrapper.innerHTML = `
879
+ <li id="zone" data-key="t" lvt-on:dragenter="enter">
880
+ <span id="child"></span>
881
+ </li>
882
+ `;
883
+ document.body.appendChild(wrapper);
884
+ const context = createContext(wrapper);
885
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
886
+ delegator.setupEventDelegation();
887
+ // Fire dragenter on the zone with the child as relatedTarget —
888
+ // simulates pointer crossing from the zone proper into the child.
889
+ const child = document.getElementById("child");
890
+ dispatchDrag(document.getElementById("zone"), "dragenter", undefined, child);
891
+ expect(context.send).not.toHaveBeenCalled();
892
+ });
893
+ it("dragleave fires for boundary crossings between distinct elements", () => {
894
+ // Real boundary crossing: pointer leaves the zone for an element
895
+ // outside it. relatedTarget is NOT a child, so the action fires.
896
+ const wrapper = document.createElement("div");
897
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-leave-real");
898
+ wrapper.innerHTML = `
899
+ <ul>
900
+ <li id="zone-a" data-key="a" lvt-on:dragleave="leave"></li>
901
+ <li id="zone-b" data-key="b"></li>
902
+ </ul>
903
+ `;
904
+ document.body.appendChild(wrapper);
905
+ const context = createContext(wrapper);
906
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
907
+ delegator.setupEventDelegation();
908
+ const zoneB = document.getElementById("zone-b");
909
+ dispatchDrag(document.getElementById("zone-a"), "dragleave", undefined, zoneB);
910
+ expect(context.send).toHaveBeenCalledWith({ action: "leave", data: {} });
911
+ });
912
+ it("dragenter forwards as a plain action", () => {
913
+ const wrapper = document.createElement("div");
914
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-12");
915
+ wrapper.innerHTML = `<li id="tgt" data-key="t" lvt-on:dragenter="enter"></li>`;
916
+ document.body.appendChild(wrapper);
917
+ const context = createContext(wrapper);
918
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
919
+ delegator.setupEventDelegation();
920
+ dispatchDrag(document.getElementById("tgt"), "dragenter");
921
+ expect(context.send).toHaveBeenCalledWith({ action: "enter", data: {} });
922
+ });
923
+ it("dragleave forwards as a plain action", () => {
924
+ const wrapper = document.createElement("div");
925
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-13");
926
+ wrapper.innerHTML = `<li id="tgt" data-key="t" lvt-on:dragleave="leave"></li>`;
927
+ document.body.appendChild(wrapper);
928
+ const context = createContext(wrapper);
929
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
930
+ delegator.setupEventDelegation();
931
+ dispatchDrag(document.getElementById("tgt"), "dragleave");
932
+ expect(context.send).toHaveBeenCalledWith({ action: "leave", data: {} });
933
+ });
934
+ it("dragover with empty action calls preventDefault but skips send", () => {
935
+ const wrapper = document.createElement("div");
936
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-empty-over");
937
+ // Empty action — marker pattern: opt into preventDefault without WS send
938
+ wrapper.innerHTML = `<li id="tgt" data-key="t" lvt-on:dragover=""></li>`;
939
+ document.body.appendChild(wrapper);
940
+ const context = createContext(wrapper);
941
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
942
+ delegator.setupEventDelegation();
943
+ const { mock } = buildDataTransferMock();
944
+ const evt = dispatchDrag(document.getElementById("tgt"), "dragover", mock);
945
+ expect(evt.defaultPrevented).toBe(true);
946
+ expect(context.send).not.toHaveBeenCalled();
947
+ });
948
+ it("dragstart with empty action stashes key but skips send", () => {
949
+ const wrapper = document.createElement("div");
950
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-empty-start");
951
+ wrapper.innerHTML = `<li id="src" data-key="task-7" lvt-on:dragstart=""></li>`;
952
+ document.body.appendChild(wrapper);
953
+ const context = createContext(wrapper);
954
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
955
+ delegator.setupEventDelegation();
956
+ const { store, mock } = buildDataTransferMock();
957
+ dispatchDrag(document.getElementById("src"), "dragstart", mock);
958
+ expect(store.get("application/x-lvt-key")).toBe("task-7");
959
+ expect(context.send).not.toHaveBeenCalled();
960
+ });
961
+ it("end-to-end reorder flow: dragstart then drop produces expected payload", () => {
962
+ const wrapper = document.createElement("div");
963
+ wrapper.setAttribute("data-lvt-id", "wrapper-drag-14");
964
+ wrapper.innerHTML = `
965
+ <ul>
966
+ <li id="i1" data-key="task-1" draggable="true" lvt-on:dragstart="dnd" lvt-on:drop="dnd"></li>
967
+ <li id="i2" data-key="task-2" draggable="true" lvt-on:dragstart="dnd" lvt-on:drop="dnd"></li>
968
+ <li id="i3" data-key="task-3" draggable="true" lvt-on:dragstart="dnd" lvt-on:drop="dnd"></li>
969
+ </ul>
970
+ `;
971
+ document.body.appendChild(wrapper);
972
+ const context = createContext(wrapper);
973
+ const delegator = new event_delegation_1.EventDelegator(context, (0, logger_1.createLogger)({ scope: "EventDelegatorTest", level: "silent" }));
974
+ delegator.setupEventDelegation();
975
+ // Simulate a real drag: shared DataTransfer across the gesture.
976
+ const { mock } = buildDataTransferMock();
977
+ dispatchDrag(document.getElementById("i1"), "dragstart", mock);
978
+ dispatchDrag(document.getElementById("i3"), "drop", mock);
979
+ // First call: dragstart on i1
980
+ expect(context.send.mock.calls[0][0]).toEqual({ action: "dnd", data: {} });
981
+ // Second call: drop on i3 — payload carries source (from dataTransfer)
982
+ // and target (from i3's data-key)
983
+ expect(context.send.mock.calls[1][0]).toEqual({
984
+ action: "dnd",
985
+ data: { dragSourceKey: "task-1", dragTargetKey: "task-3" },
986
+ });
987
+ });
988
+ });
635
989
  });
636
990
  //# sourceMappingURL=event-delegation.test.js.map