From cd53dbaad2b347c24caa80ce75fb8b9834e45ab2 Mon Sep 17 00:00:00 2001 From: Kozitsyn Andrey Date: Sun, 5 Mar 2023 14:34:46 +0500 Subject: [PATCH 1/8] add draggableId to DraggableLocation --- src/state/get-home-location.js | 1 + src/state/middleware/drop/drop-middleware.js | 1 + src/types.js | 1 + 3 files changed, 3 insertions(+) diff --git a/src/state/get-home-location.js b/src/state/get-home-location.js index d64993b925..bec454414a 100644 --- a/src/state/get-home-location.js +++ b/src/state/get-home-location.js @@ -4,4 +4,5 @@ import type { DraggableDescriptor, DraggableLocation } from '../types'; export default (descriptor: DraggableDescriptor): DraggableLocation => ({ index: descriptor.index, droppableId: descriptor.droppableId, + draggableId: descriptor.id, }); diff --git a/src/state/middleware/drop/drop-middleware.js b/src/state/middleware/drop/drop-middleware.js index e8c14ce66b..a76f77a5d5 100644 --- a/src/state/middleware/drop/drop-middleware.js +++ b/src/state/middleware/drop/drop-middleware.js @@ -90,6 +90,7 @@ export default ({ getState, dispatch }: MiddlewareStore) => ( const source: DraggableLocation = { index: critical.draggable.index, droppableId: critical.droppable.id, + draggableId: critical.draggable.id, }; const result: DropResult = { diff --git a/src/types.js b/src/types.js index a4a1358d93..7662bf5b92 100644 --- a/src/types.js +++ b/src/types.js @@ -152,6 +152,7 @@ export type DroppableDimension = {| export type DraggableLocation = {| droppableId: DroppableId, index: number, + draggableId: DraggableId, |}; export type DraggableIdMap = { From bfc59d7412929b27968c17ad8bd534b0af81188e Mon Sep 17 00:00:00 2001 From: Kozitsyn Andrey Date: Wed, 8 Mar 2023 17:44:16 +0500 Subject: [PATCH 2/8] removed draggableId from source --- src/state/middleware/drop/drop-middleware.js | 1 - src/types.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/state/middleware/drop/drop-middleware.js b/src/state/middleware/drop/drop-middleware.js index a76f77a5d5..e8c14ce66b 100644 --- a/src/state/middleware/drop/drop-middleware.js +++ b/src/state/middleware/drop/drop-middleware.js @@ -90,7 +90,6 @@ export default ({ getState, dispatch }: MiddlewareStore) => ( const source: DraggableLocation = { index: critical.draggable.index, droppableId: critical.droppable.id, - draggableId: critical.draggable.id, }; const result: DropResult = { diff --git a/src/types.js b/src/types.js index 7662bf5b92..5e2382431a 100644 --- a/src/types.js +++ b/src/types.js @@ -152,7 +152,7 @@ export type DroppableDimension = {| export type DraggableLocation = {| droppableId: DroppableId, index: number, - draggableId: DraggableId, + draggableId?: DraggableId, |}; export type DraggableIdMap = { From c3a7c311ebbedecd5f37da2bfccf65b8336ab9a2 Mon Sep 17 00:00:00 2001 From: Kozitsyn Andrey Date: Sun, 23 Apr 2023 17:22:04 +0500 Subject: [PATCH 3/8] Adding draggableId in onDragEnd destination --- src/state/calculate-drag-impact/calculate-reorder-impact.js | 1 + src/state/get-home-location.js | 1 - src/types.js | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/state/calculate-drag-impact/calculate-reorder-impact.js b/src/state/calculate-drag-impact/calculate-reorder-impact.js index 7d726e841d..9cfbf1f029 100644 --- a/src/state/calculate-drag-impact/calculate-reorder-impact.js +++ b/src/state/calculate-drag-impact/calculate-reorder-impact.js @@ -130,6 +130,7 @@ export default function calculateReorderImpact({ destination: { droppableId: destination.descriptor.id, index, + draggableId: match.descriptor?.id, }, }, }; diff --git a/src/state/get-home-location.js b/src/state/get-home-location.js index bec454414a..d64993b925 100644 --- a/src/state/get-home-location.js +++ b/src/state/get-home-location.js @@ -4,5 +4,4 @@ import type { DraggableDescriptor, DraggableLocation } from '../types'; export default (descriptor: DraggableDescriptor): DraggableLocation => ({ index: descriptor.index, droppableId: descriptor.droppableId, - draggableId: descriptor.id, }); diff --git a/src/types.js b/src/types.js index 5e2382431a..a4a1358d93 100644 --- a/src/types.js +++ b/src/types.js @@ -152,7 +152,6 @@ export type DroppableDimension = {| export type DraggableLocation = {| droppableId: DroppableId, index: number, - draggableId?: DraggableId, |}; export type DraggableIdMap = { From 25eefede1861de9f8e5fdabb7b1576638791cd2d Mon Sep 17 00:00:00 2001 From: Kozitsyn Andrey Date: Sun, 23 Apr 2023 17:51:26 +0500 Subject: [PATCH 4/8] Editing Tests --- src/state/calculate-drag-impact/calculate-reorder-impact.js | 2 +- .../move-to-next-index/from-reorder/in-foreign-list.spec.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/state/calculate-drag-impact/calculate-reorder-impact.js b/src/state/calculate-drag-impact/calculate-reorder-impact.js index 9cfbf1f029..8932e49cc1 100644 --- a/src/state/calculate-drag-impact/calculate-reorder-impact.js +++ b/src/state/calculate-drag-impact/calculate-reorder-impact.js @@ -130,7 +130,7 @@ export default function calculateReorderImpact({ destination: { droppableId: destination.descriptor.id, index, - draggableId: match.descriptor?.id, + draggableId: match.descriptor.id, }, }, }; diff --git a/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-foreign-list.spec.js b/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-foreign-list.spec.js index 8e617ae687..be19543ae4 100644 --- a/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-foreign-list.spec.js +++ b/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-foreign-list.spec.js @@ -75,6 +75,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; at: { type: 'REORDER', destination: { + draggableId: preset.inForeign3.descriptor.id, droppableId: preset.foreign.descriptor.id, index: preset.inForeign3.descriptor.index, }, @@ -230,6 +231,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; at: { type: 'REORDER', destination: { + draggableId: preset.inForeign2.descriptor.id, droppableId: preset.foreign.descriptor.id, index: preset.inForeign2.descriptor.index, }, @@ -483,6 +485,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; type: 'REORDER', // now in position of inForeign4 destination: { + draggableId: preset.inForeign4.descriptor.id, droppableId: preset.foreign.descriptor.id, index: preset.inForeign4.descriptor.index, }, From f806561274a9e343bd74327836efadaf9d9f6101 Mon Sep 17 00:00:00 2001 From: Kozitsyn Andrey Date: Sun, 23 Apr 2023 18:27:39 +0500 Subject: [PATCH 5/8] Editing Tests 2 --- .../from-reorder/in-foreign-list.spec.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-foreign-list.spec.js b/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-foreign-list.spec.js index be19543ae4..c6af54b538 100644 --- a/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-foreign-list.spec.js +++ b/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-foreign-list.spec.js @@ -46,6 +46,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign2.descriptor.index, + draggableId: preset.inForeign2.descriptor.id, }, }, }; @@ -75,9 +76,9 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; at: { type: 'REORDER', destination: { - draggableId: preset.inForeign3.descriptor.id, droppableId: preset.foreign.descriptor.id, index: preset.inForeign3.descriptor.index, + draggableId: preset.inForeign3.descriptor.id, }, }, }; @@ -108,6 +109,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign4.descriptor.index, + draggableId: preset.inForeign4.descriptor.id, }, }, }; @@ -143,6 +145,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign3.descriptor.index, + draggableId: preset.inForeign3.descriptor.id, }, }, }; @@ -177,6 +180,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign2.descriptor.index, + draggableId: preset.inForeign2.descriptor.id, }, }, }; @@ -201,6 +205,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign3.descriptor.index, + draggableId: preset.inForeign3.descriptor.id, }, }, }; @@ -231,9 +236,9 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; at: { type: 'REORDER', destination: { - draggableId: preset.inForeign2.descriptor.id, droppableId: preset.foreign.descriptor.id, index: preset.inForeign2.descriptor.index, + draggableId: preset.inForeign2.descriptor.id, }, }, }; @@ -269,6 +274,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign1.descriptor.index, + draggableId: preset.inForeign1.descriptor.id, }, }, }; @@ -306,6 +312,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign2.descriptor.index, + draggableId: preset.inForeign2.descriptor.id, }, }, }; @@ -340,6 +347,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign3.descriptor.index, + draggableId: preset.inForeign3.descriptor.id, }, }, }; @@ -365,6 +373,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign1.descriptor.index, + draggableId: preset.inForeign1.descriptor.id, }, }, }; @@ -399,6 +408,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign4.descriptor.index, + draggableId: preset.inForeign4.descriptor.id, }, }, }; @@ -485,9 +495,9 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; type: 'REORDER', // now in position of inForeign4 destination: { - draggableId: preset.inForeign4.descriptor.id, droppableId: preset.foreign.descriptor.id, index: preset.inForeign4.descriptor.index, + draggableId: preset.inForeign4.descriptor.id, }, }, }; From 845925adc414efa61a05e1ec781c352715286cb2 Mon Sep 17 00:00:00 2001 From: Kozitsyn Andrey Date: Mon, 12 Jun 2023 22:45:52 +0500 Subject: [PATCH 6/8] Editing Tests 3 --- src/types.js | 1 + .../combine/started-before-critical.spec.js | 3 ++ .../did-not-start-displaced.spec.js | 3 ++ .../move-backward-from-last-item.spec.js | 1 + .../displacement-visibility.spec.js | 2 ++ .../started-after-critical.spec.js | 2 ++ .../started-before-critical.spec.js | 3 ++ .../with-droppable-scroll.spec.js | 2 ++ .../responders/repeated-use.spec.js | 7 ++++- .../middleware/responders/update.spec.js | 7 ++++- .../to-foreign-list.spec.js | 2 ++ .../to-home-list.spec.js | 3 ++ .../move-in-direction.spec.js | 31 ++++++++++++++++--- .../did-not-start-after-critical.spec.js | 4 +++ .../from-reorder/in-home-list.spec.js | 10 ++++++ .../not-visible-in-droppable.spec.js | 1 + .../not-visible-in-viewport.spec.js | 1 + .../displacement-animation.spec.js | 1 + 18 files changed, 77 insertions(+), 7 deletions(-) diff --git a/src/types.js b/src/types.js index a4a1358d93..5e2382431a 100644 --- a/src/types.js +++ b/src/types.js @@ -152,6 +152,7 @@ export type DroppableDimension = {| export type DraggableLocation = {| droppableId: DroppableId, index: number, + draggableId?: DraggableId, |}; export type DraggableIdMap = { diff --git a/test/unit/state/get-drag-impact/combine/started-before-critical.spec.js b/test/unit/state/get-drag-impact/combine/started-before-critical.spec.js index d2e9e4bbf0..5d1ca403cb 100644 --- a/test/unit/state/get-drag-impact/combine/started-before-critical.spec.js +++ b/test/unit/state/get-drag-impact/combine/started-before-critical.spec.js @@ -56,6 +56,7 @@ import { destination: { index: preset.inForeign3.descriptor.index, droppableId: preset.inForeign3.descriptor.droppableId, + draggableId: preset.inForeign3.descriptor.id, }, }, }; @@ -187,6 +188,7 @@ import { destination: { index: preset.inForeign4.descriptor.index, droppableId: preset.inForeign4.descriptor.droppableId, + draggableId: preset.inForeign4.descriptor.id, }, }, }; @@ -308,6 +310,7 @@ import { destination: { index: preset.inForeign2.descriptor.index, droppableId: preset.inForeign2.descriptor.droppableId, + draggableId: preset.inForeign2.descriptor.id, }, }, }; diff --git a/test/unit/state/get-drag-impact/reorder/over-foreign-list/did-not-start-displaced.spec.js b/test/unit/state/get-drag-impact/reorder/over-foreign-list/did-not-start-displaced.spec.js index 4c6f910517..69c751f222 100644 --- a/test/unit/state/get-drag-impact/reorder/over-foreign-list/did-not-start-displaced.spec.js +++ b/test/unit/state/get-drag-impact/reorder/over-foreign-list/did-not-start-displaced.spec.js @@ -80,6 +80,7 @@ import { // is now in position of inForeign3 droppableId: preset.foreign.descriptor.id, index: preset.inForeign3.descriptor.index, + draggableId: preset.inForeign3.descriptor.id, }, }, }; @@ -103,6 +104,7 @@ import { // is now in position of inForeign2 droppableId: preset.inForeign2.descriptor.droppableId, index: preset.inForeign2.descriptor.index, + draggableId: preset.inForeign2.descriptor.id, }, }, }; @@ -160,6 +162,7 @@ import { // is now in position of inForeign3 droppableId: preset.inForeign3.descriptor.droppableId, index: preset.inForeign3.descriptor.index, + draggableId: preset.inForeign3.descriptor.id, }, }, }; diff --git a/test/unit/state/get-drag-impact/reorder/over-foreign-list/move-backward-from-last-item.spec.js b/test/unit/state/get-drag-impact/reorder/over-foreign-list/move-backward-from-last-item.spec.js index ecb0aea2de..dbf9aba192 100644 --- a/test/unit/state/get-drag-impact/reorder/over-foreign-list/move-backward-from-last-item.spec.js +++ b/test/unit/state/get-drag-impact/reorder/over-foreign-list/move-backward-from-last-item.spec.js @@ -72,6 +72,7 @@ import { getOffsetForStartEdge } from '../../util/get-offset-for-edge'; destination: { index: preset.inForeign4.descriptor.index, droppableId: preset.inForeign4.descriptor.droppableId, + draggableId: preset.inForeign4.descriptor.id, }, }, }; diff --git a/test/unit/state/get-drag-impact/reorder/over-home-list/displacement-visibility.spec.js b/test/unit/state/get-drag-impact/reorder/over-home-list/displacement-visibility.spec.js index 97c91d0659..ebac846106 100644 --- a/test/unit/state/get-drag-impact/reorder/over-home-list/displacement-visibility.spec.js +++ b/test/unit/state/get-drag-impact/reorder/over-home-list/displacement-visibility.spec.js @@ -157,6 +157,7 @@ const viewport: Viewport = getViewport(); destination: { droppableId: droppable.descriptor.id, index: 0, + draggableId: visible.descriptor.id, }, }, }; @@ -296,6 +297,7 @@ const viewport: Viewport = getViewport(); destination: { droppableId: droppable.descriptor.id, index: 0, + draggableId: visible.descriptor.id, }, }, }; diff --git a/test/unit/state/get-drag-impact/reorder/over-home-list/started-after-critical.spec.js b/test/unit/state/get-drag-impact/reorder/over-home-list/started-after-critical.spec.js index c232c65d1e..48c3ba4b1c 100644 --- a/test/unit/state/get-drag-impact/reorder/over-home-list/started-after-critical.spec.js +++ b/test/unit/state/get-drag-impact/reorder/over-home-list/started-after-critical.spec.js @@ -106,6 +106,7 @@ import { // is now in position of inHome3 droppableId: preset.home.descriptor.id, index: preset.inHome3.descriptor.index, + draggableId: preset.inHome3.descriptor.id, }, }, }; @@ -176,6 +177,7 @@ import { destination: { droppableId: preset.home.descriptor.id, index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; diff --git a/test/unit/state/get-drag-impact/reorder/over-home-list/started-before-critical.spec.js b/test/unit/state/get-drag-impact/reorder/over-home-list/started-before-critical.spec.js index 0b28cb8af8..7a74b79f3c 100644 --- a/test/unit/state/get-drag-impact/reorder/over-home-list/started-before-critical.spec.js +++ b/test/unit/state/get-drag-impact/reorder/over-home-list/started-before-critical.spec.js @@ -82,6 +82,7 @@ import { // is now in position of inHome2 droppableId: preset.home.descriptor.id, index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; @@ -107,6 +108,7 @@ import { // is now in position of inHome1 droppableId: preset.home.descriptor.id, index: preset.inHome1.descriptor.index, + draggableId: preset.inHome1.descriptor.id, }, }, }; @@ -168,6 +170,7 @@ import { droppableId: preset.home.descriptor.id, // is now in position of inHome2 index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; diff --git a/test/unit/state/get-drag-impact/reorder/over-home-list/with-droppable-scroll.spec.js b/test/unit/state/get-drag-impact/reorder/over-home-list/with-droppable-scroll.spec.js index d11a4e9078..9ad1fb085b 100644 --- a/test/unit/state/get-drag-impact/reorder/over-home-list/with-droppable-scroll.spec.js +++ b/test/unit/state/get-drag-impact/reorder/over-home-list/with-droppable-scroll.spec.js @@ -86,6 +86,7 @@ const viewport: Viewport = getViewport(); // now in position of inHome2 as it has moved backwards (it started displaced) droppableId: preset.home.descriptor.id, index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; @@ -151,6 +152,7 @@ const viewport: Viewport = getViewport(); // is now in place of inHome2 droppableId: preset.home.descriptor.id, index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; diff --git a/test/unit/state/middleware/responders/repeated-use.spec.js b/test/unit/state/middleware/responders/repeated-use.spec.js index 801c70f166..553a09b542 100644 --- a/test/unit/state/middleware/responders/repeated-use.spec.js +++ b/test/unit/state/middleware/responders/repeated-use.spec.js @@ -36,11 +36,16 @@ it('should behave correctly across multiple drags', () => { expect(responders.onDragStart).toHaveBeenCalledTimes(1); // update + const newIndex = initialPublishArgs.critical.draggable.index + 1; + const newDraggableId = Object.keys(store.getState().dimensions.draggables)[ + newIndex + ]; const update: DragUpdate = { ...getDragStart(), destination: { droppableId: initialPublishArgs.critical.droppable.id, - index: initialPublishArgs.critical.draggable.index + 1, + index: newIndex, + draggableId: newDraggableId, }, combine: null, }; diff --git a/test/unit/state/middleware/responders/update.spec.js b/test/unit/state/middleware/responders/update.spec.js index 8acb237f2e..52611e4e8a 100644 --- a/test/unit/state/middleware/responders/update.spec.js +++ b/test/unit/state/middleware/responders/update.spec.js @@ -39,12 +39,17 @@ it('should call onDragUpdate if the position has changed on move', () => { expect(responders.onDragUpdate).not.toHaveBeenCalled(); jest.runOnlyPendingTimers(); + const newIndex = initialPublishArgs.critical.draggable.index + 1; + const newDraggableId = Object.keys(store.getState().dimensions.draggables)[ + newIndex + ]; const update: DragUpdate = { ...getDragStart(), combine: null, destination: { droppableId: initialPublishArgs.critical.droppable.id, - index: initialPublishArgs.critical.draggable.index + 1, + index: newIndex, + draggableId: newDraggableId, }, }; expect(responders.onDragUpdate).toHaveBeenCalledWith( diff --git a/test/unit/state/move-in-direction/move-cross-axis/move-to-new-droppable/to-foreign-list.spec.js b/test/unit/state/move-in-direction/move-cross-axis/move-to-new-droppable/to-foreign-list.spec.js index 0fe520305c..75d9503db0 100644 --- a/test/unit/state/move-in-direction/move-cross-axis/move-to-new-droppable/to-foreign-list.spec.js +++ b/test/unit/state/move-in-direction/move-cross-axis/move-to-new-droppable/to-foreign-list.spec.js @@ -322,6 +322,7 @@ import { destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign2.descriptor.index, + draggableId: preset.inForeign2.descriptor.id, }, }, }; @@ -372,6 +373,7 @@ import { destination: { droppableId: preset.foreign.descriptor.id, index: preset.inForeign2.descriptor.index, + draggableId: preset.inForeign2.descriptor.id, }, }, }; diff --git a/test/unit/state/move-in-direction/move-cross-axis/move-to-new-droppable/to-home-list.spec.js b/test/unit/state/move-in-direction/move-cross-axis/move-to-new-droppable/to-home-list.spec.js index e69f826887..2507540f1d 100644 --- a/test/unit/state/move-in-direction/move-cross-axis/move-to-new-droppable/to-home-list.spec.js +++ b/test/unit/state/move-in-direction/move-cross-axis/move-to-new-droppable/to-home-list.spec.js @@ -84,6 +84,7 @@ const dontCare: Position = { x: 0, y: 0 }; destination: { droppableId: preset.home.descriptor.id, index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; @@ -131,6 +132,7 @@ const dontCare: Position = { x: 0, y: 0 }; destination: { droppableId: preset.home.descriptor.id, index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; @@ -171,6 +173,7 @@ const dontCare: Position = { x: 0, y: 0 }; destination: { droppableId: preset.home.descriptor.id, index: preset.inHome4.descriptor.index, + draggableId: preset.inHome4.descriptor.id, }, }, }; diff --git a/test/unit/state/move-in-direction/move-in-direction.spec.js b/test/unit/state/move-in-direction/move-in-direction.spec.js index 0a79cdca96..912a17344d 100644 --- a/test/unit/state/move-in-direction/move-in-direction.spec.js +++ b/test/unit/state/move-in-direction/move-in-direction.spec.js @@ -16,6 +16,7 @@ import { tryGetDestination } from '../../../../src/state/get-impact-location'; describe('on the vertical axis', () => { const preset = getPreset(vertical); const state = getStatePreset(vertical); + const draggables = Object.keys(state.preset.dimensions.draggables); it('should move forward on a MOVE_DOWN', () => { const result: ?PublicResult = moveInDirection({ @@ -24,9 +25,12 @@ describe('on the vertical axis', () => { }); invariant(result, 'expected a result'); + const idx = 1; + const newDraggableId = draggables[idx]; const expected: DraggableLocation = { droppableId: preset.home.descriptor.id, - index: 1, + index: idx, + draggableId: newDraggableId, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); @@ -38,9 +42,12 @@ describe('on the vertical axis', () => { }); invariant(result, 'expected a result'); + const idx = 0; + const newDraggableId = draggables[idx]; const expected: DraggableLocation = { droppableId: preset.home.descriptor.id, - index: 0, + index: idx, + draggableId: newDraggableId, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); @@ -55,6 +62,7 @@ describe('on the vertical axis', () => { const expected: DraggableLocation = { droppableId: preset.foreign.descriptor.id, index: 1, + draggableId: preset.inForeign2.descriptor.id, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); @@ -69,6 +77,7 @@ describe('on the vertical axis', () => { const expected: DraggableLocation = { droppableId: preset.home.descriptor.id, index: 0, + draggableId: preset.inHome1.descriptor.id, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); @@ -77,6 +86,7 @@ describe('on the vertical axis', () => { describe('on the horizontal axis', () => { const preset = getPreset(horizontal); const state = getStatePreset(horizontal); + const draggables = Object.keys(state.preset.dimensions.draggables); it('should move forward on a MOVE_RIGHT', () => { const result: ?PublicResult = moveInDirection({ @@ -85,9 +95,12 @@ describe('on the horizontal axis', () => { }); invariant(result, 'expected a result'); + const idx = 1; + const newDraggableId = draggables[idx]; const expected: DraggableLocation = { droppableId: preset.home.descriptor.id, - index: 1, + index: idx, + draggableId: newDraggableId, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); @@ -99,9 +112,12 @@ describe('on the horizontal axis', () => { }); invariant(result, 'expected a result'); + const idx = 0; + const newDraggableId = draggables[idx]; const expected: DraggableLocation = { droppableId: preset.home.descriptor.id, - index: 0, + index: idx, + draggableId: newDraggableId, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); @@ -116,6 +132,7 @@ describe('on the horizontal axis', () => { const expected: DraggableLocation = { droppableId: preset.foreign.descriptor.id, index: 1, + draggableId: preset.inForeign2.descriptor.id, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); @@ -127,9 +144,12 @@ describe('on the horizontal axis', () => { }); invariant(result, 'expected a result'); + const idx = 0; + const newDraggableId = draggables[idx]; const expected: DraggableLocation = { droppableId: preset.home.descriptor.id, - index: 0, + index: idx, + draggableId: newDraggableId, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); @@ -181,6 +201,7 @@ describe('on the horizontal axis', () => { const expected: DraggableLocation = { droppableId: preset.foreign.descriptor.id, index: 1, + draggableId: preset.inForeign2.descriptor.id, }; expect(tryGetDestination(result.impact)).toEqual(expected); }); diff --git a/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-combine/did-not-start-after-critical.spec.js b/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-combine/did-not-start-after-critical.spec.js index da23c9fdaf..e181f92517 100644 --- a/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-combine/did-not-start-after-critical.spec.js +++ b/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-combine/did-not-start-after-critical.spec.js @@ -74,6 +74,7 @@ const enableCombine = (droppable: DroppableDimension): DroppableDimension => ({ destination: { index: preset.inForeign2.descriptor.index, droppableId: preset.foreign.descriptor.id, + draggableId: preset.inForeign2.descriptor.id, }, }, }; @@ -127,6 +128,7 @@ const enableCombine = (droppable: DroppableDimension): DroppableDimension => ({ destination: { index: preset.inForeign1.descriptor.index, droppableId: preset.foreign.descriptor.id, + draggableId: preset.inForeign1.descriptor.id, }, }, }; @@ -194,6 +196,7 @@ const enableCombine = (droppable: DroppableDimension): DroppableDimension => ({ destination: { index: preset.inForeign2.descriptor.index, droppableId: preset.foreign.descriptor.id, + draggableId: preset.inForeign2.descriptor.id, }, }, }; @@ -263,6 +266,7 @@ const enableCombine = (droppable: DroppableDimension): DroppableDimension => ({ destination: { index: preset.inForeign1.descriptor.index, droppableId: preset.foreign.descriptor.id, + draggableId: preset.inForeign1.descriptor.id, }, }, }; diff --git a/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-home-list.spec.js b/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-home-list.spec.js index 1b3866916a..c251f77cc0 100644 --- a/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-home-list.spec.js +++ b/test/unit/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder/in-home-list.spec.js @@ -51,6 +51,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { index: preset.inHome3.descriptor.index, droppableId: preset.home.descriptor.id, + draggableId: preset.inHome3.descriptor.id, }, }, }; @@ -77,6 +78,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { index: preset.inHome4.descriptor.index, droppableId: preset.home.descriptor.id, + draggableId: preset.inHome4.descriptor.id, }, }, }; @@ -106,6 +108,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { index: preset.inHome3.descriptor.index, droppableId: preset.home.descriptor.id, + draggableId: preset.inHome3.descriptor.id, }, }, }; @@ -138,6 +141,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { index: preset.inHome2.descriptor.index, droppableId: preset.home.descriptor.id, + draggableId: preset.inHome2.descriptor.id, }, }, }; @@ -171,6 +175,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { index: preset.inHome1.descriptor.index, droppableId: preset.home.descriptor.id, + draggableId: preset.inHome1.descriptor.id, }, }, }; @@ -218,6 +223,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.home.descriptor.id, index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; @@ -263,6 +269,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.home.descriptor.id, index: preset.inHome1.descriptor.index, + draggableId: preset.inHome1.descriptor.id, }, }, }; @@ -303,6 +310,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.home.descriptor.id, index: preset.inHome2.descriptor.index, + draggableId: preset.inHome2.descriptor.id, }, }, }; @@ -332,6 +340,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.home.descriptor.id, index: preset.inHome3.descriptor.index, + draggableId: preset.inHome3.descriptor.id, }, }, }; @@ -358,6 +367,7 @@ import { emptyGroups } from '../../../../../../../src/state/no-impact'; destination: { droppableId: preset.home.descriptor.id, index: preset.inHome4.descriptor.index, + draggableId: preset.inHome4.descriptor.id, }, }, }; diff --git a/test/unit/state/move-in-direction/move-to-next-place/moving-to-invisible-place/not-visible-in-droppable.spec.js b/test/unit/state/move-in-direction/move-to-next-place/moving-to-invisible-place/not-visible-in-droppable.spec.js index 297e636f45..3d67ab936c 100644 --- a/test/unit/state/move-in-direction/move-to-next-place/moving-to-invisible-place/not-visible-in-droppable.spec.js +++ b/test/unit/state/move-in-direction/move-to-next-place/moving-to-invisible-place/not-visible-in-droppable.spec.js @@ -326,6 +326,7 @@ import { emptyGroups } from '../../../../../../src/state/no-impact'; destination: { droppableId: foreign.descriptor.id, index: inForeign.descriptor.index, + draggableId: inForeign.descriptor.id, }, }, }; diff --git a/test/unit/state/move-in-direction/move-to-next-place/moving-to-invisible-place/not-visible-in-viewport.spec.js b/test/unit/state/move-in-direction/move-to-next-place/moving-to-invisible-place/not-visible-in-viewport.spec.js index a914215243..b742f74d1a 100644 --- a/test/unit/state/move-in-direction/move-to-next-place/moving-to-invisible-place/not-visible-in-viewport.spec.js +++ b/test/unit/state/move-in-direction/move-to-next-place/moving-to-invisible-place/not-visible-in-viewport.spec.js @@ -309,6 +309,7 @@ import { emptyGroups } from '../../../../../../src/state/no-impact'; destination: { droppableId: foreign.descriptor.id, index: inForeign.descriptor.index, + draggableId: inForeign.descriptor.id, }, }, }; diff --git a/test/unit/state/publish-while-dragging/displacement-animation.spec.js b/test/unit/state/publish-while-dragging/displacement-animation.spec.js index bdb4afd64a..2f4763e073 100644 --- a/test/unit/state/publish-while-dragging/displacement-animation.spec.js +++ b/test/unit/state/publish-while-dragging/displacement-animation.spec.js @@ -57,6 +57,7 @@ it('should not animate any displacement', () => { destination: { index: preset.inForeign2.descriptor.index, droppableId: preset.foreign.descriptor.id, + draggableId: preset.inForeign2.descriptor.id, }, }, }; From d7d953b8865dc39e3d2b436beea584d5d1315330 Mon Sep 17 00:00:00 2001 From: Kozitsyn Andrey Date: Mon, 12 Jun 2023 23:24:28 +0500 Subject: [PATCH 7/8] fix TS + lint --- .../state/middleware/responders/repeated-use.spec.js | 6 +++--- test/unit/state/middleware/responders/update.spec.js | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/test/unit/state/middleware/responders/repeated-use.spec.js b/test/unit/state/middleware/responders/repeated-use.spec.js index 553a09b542..3461b3542e 100644 --- a/test/unit/state/middleware/responders/repeated-use.spec.js +++ b/test/unit/state/middleware/responders/repeated-use.spec.js @@ -15,6 +15,7 @@ import type { Responders, DragUpdate, DropResult, + DraggingState, } from '../../../../../src/types'; import createResponders from './util/get-responders-stub'; import getAnnounce from './util/get-announce-stub'; @@ -37,9 +38,8 @@ it('should behave correctly across multiple drags', () => { // update const newIndex = initialPublishArgs.critical.draggable.index + 1; - const newDraggableId = Object.keys(store.getState().dimensions.draggables)[ - newIndex - ]; + const state: DraggingState = store.getState(); + const newDraggableId = Object.keys(state.dimensions.draggables)[newIndex]; const update: DragUpdate = { ...getDragStart(), destination: { diff --git a/test/unit/state/middleware/responders/update.spec.js b/test/unit/state/middleware/responders/update.spec.js index 52611e4e8a..3a0fb135b0 100644 --- a/test/unit/state/middleware/responders/update.spec.js +++ b/test/unit/state/middleware/responders/update.spec.js @@ -15,7 +15,12 @@ import { import createStore from '../util/create-store'; import getAnnounce from './util/get-announce-stub'; import createResponders from './util/get-responders-stub'; -import type { Responders, State, DragUpdate } from '../../../../../src/types'; +import type { + Responders, + State, + DragUpdate, + DraggingState, +} from '../../../../../src/types'; import type { Store, Dispatch } from '../../../../../src/state/store-types'; jest.useFakeTimers(); @@ -40,9 +45,8 @@ it('should call onDragUpdate if the position has changed on move', () => { jest.runOnlyPendingTimers(); const newIndex = initialPublishArgs.critical.draggable.index + 1; - const newDraggableId = Object.keys(store.getState().dimensions.draggables)[ - newIndex - ]; + const state: DraggingState = store.getState(); + const newDraggableId = Object.keys(state.dimensions.draggables)[newIndex]; const update: DragUpdate = { ...getDragStart(), combine: null, From 8b37c8a4c3227422a62a6ba91560112f4b4155c0 Mon Sep 17 00:00:00 2001 From: Kozitsyn Andrey Date: Tue, 13 Jun 2023 00:15:28 +0500 Subject: [PATCH 8/8] fix TS 2 --- .../state/middleware/responders/repeated-use.spec.js | 3 +-- test/unit/state/middleware/responders/update.spec.js | 9 ++------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/test/unit/state/middleware/responders/repeated-use.spec.js b/test/unit/state/middleware/responders/repeated-use.spec.js index 3461b3542e..67a6fd3efa 100644 --- a/test/unit/state/middleware/responders/repeated-use.spec.js +++ b/test/unit/state/middleware/responders/repeated-use.spec.js @@ -15,7 +15,6 @@ import type { Responders, DragUpdate, DropResult, - DraggingState, } from '../../../../../src/types'; import createResponders from './util/get-responders-stub'; import getAnnounce from './util/get-announce-stub'; @@ -38,7 +37,7 @@ it('should behave correctly across multiple drags', () => { // update const newIndex = initialPublishArgs.critical.draggable.index + 1; - const state: DraggingState = store.getState(); + const state: State = store.getState(); const newDraggableId = Object.keys(state.dimensions.draggables)[newIndex]; const update: DragUpdate = { ...getDragStart(), diff --git a/test/unit/state/middleware/responders/update.spec.js b/test/unit/state/middleware/responders/update.spec.js index 3a0fb135b0..287b9f1873 100644 --- a/test/unit/state/middleware/responders/update.spec.js +++ b/test/unit/state/middleware/responders/update.spec.js @@ -15,12 +15,7 @@ import { import createStore from '../util/create-store'; import getAnnounce from './util/get-announce-stub'; import createResponders from './util/get-responders-stub'; -import type { - Responders, - State, - DragUpdate, - DraggingState, -} from '../../../../../src/types'; +import type { Responders, State, DragUpdate } from '../../../../../src/types'; import type { Store, Dispatch } from '../../../../../src/state/store-types'; jest.useFakeTimers(); @@ -45,7 +40,7 @@ it('should call onDragUpdate if the position has changed on move', () => { jest.runOnlyPendingTimers(); const newIndex = initialPublishArgs.critical.draggable.index + 1; - const state: DraggingState = store.getState(); + const state: State = store.getState(); const newDraggableId = Object.keys(state.dimensions.draggables)[newIndex]; const update: DragUpdate = { ...getDragStart(),