@vived/app 5.0.6 → 5.0.7
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.
- package/dist/cjs/Babylon/Mocks/MockSceneRayPickUC.js +3 -1
- package/dist/cjs/Babylon/Mocks/MockSceneRayPickUC.js.map +1 -1
- package/dist/cjs/Babylon/UC/SceneRayPickUC.test.js +1 -0
- package/dist/cjs/Babylon/UC/SceneRayPickUC.test.js.map +1 -1
- package/dist/cjs/BaseApp/UC/EditSlideTextUC.test.js +8 -6
- package/dist/cjs/BaseApp/UC/EditSlideTextUC.test.js.map +1 -1
- package/dist/cjs/BaseApp/UC/UndoRedoEditSlideText.test.js +10 -6
- package/dist/cjs/BaseApp/UC/UndoRedoEditSlideText.test.js.map +1 -1
- package/dist/cjs/BaseApp/UC/UpdateContentSizeUC.test.js +8 -6
- package/dist/cjs/BaseApp/UC/UpdateContentSizeUC.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/CreateCalloutUndoRedo.test.js +7 -4
- package/dist/cjs/Callouts/UC/CreateCalloutUndoRedo.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/DeleteAllCalloutsUC.test.js +7 -4
- package/dist/cjs/Callouts/UC/DeleteAllCalloutsUC.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/DeleteAllCalloutsUndoRedo.test.js +13 -7
- package/dist/cjs/Callouts/UC/DeleteAllCalloutsUndoRedo.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/DeleteCallout.test.js +5 -2
- package/dist/cjs/Callouts/UC/DeleteCallout.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/DeleteCalloutUndoRedo.test.js +9 -7
- package/dist/cjs/Callouts/UC/DeleteCalloutUndoRedo.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/SetCalloutSizeUC.test.js +7 -5
- package/dist/cjs/Callouts/UC/SetCalloutSizeUC.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/SetCalloutSizeUndoRedo.test.js +10 -6
- package/dist/cjs/Callouts/UC/SetCalloutSizeUndoRedo.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/TryAddCallout.test.js +5 -4
- package/dist/cjs/Callouts/UC/TryAddCallout.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/TryPanLabelUC.test.js +3 -2
- package/dist/cjs/Callouts/UC/TryPanLabelUC.test.js.map +1 -1
- package/dist/cjs/Challenge/UCs/SetChallengeUC.test.js +11 -9
- package/dist/cjs/Challenge/UCs/SetChallengeUC.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/ClearAllColorOverlayUndoRedo.test.js +13 -7
- package/dist/cjs/ChannelModel/UC/ClearAllColorOverlayUndoRedo.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/ClearModelObjectOverlaysUC.test.js +7 -4
- package/dist/cjs/ChannelModel/UC/ClearModelObjectOverlaysUC.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/SelectChannelModelUC.test.js +5 -2
- package/dist/cjs/ChannelModel/UC/SelectChannelModelUC.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/StickAllChannelModelObjectsUC.test.js +10 -8
- package/dist/cjs/ChannelModel/UC/StickAllChannelModelObjectsUC.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.test.js +9 -7
- package/dist/cjs/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/UnhideAllChannelModelObjectsUC.test.js +7 -5
- package/dist/cjs/ChannelModel/UC/UnhideAllChannelModelObjectsUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStateChange.js +3 -3
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStateChange.js.map +1 -1
- package/dist/cjs/Environment/UCs/SetEnvironmentIntensityUC.test.js +11 -9
- package/dist/cjs/Environment/UCs/SetEnvironmentIntensityUC.test.js.map +1 -1
- package/dist/cjs/Environment/UCs/SetTexturalEnvironmentUC.test.js +9 -7
- package/dist/cjs/Environment/UCs/SetTexturalEnvironmentUC.test.js.map +1 -1
- package/dist/cjs/Hideable/UCs/HideUC.test.js +10 -8
- package/dist/cjs/Hideable/UCs/HideUC.test.js.map +1 -1
- package/dist/cjs/Hideable/UCs/TryHideWithPickUC.test.js +7 -6
- package/dist/cjs/Hideable/UCs/TryHideWithPickUC.test.js.map +1 -1
- package/dist/cjs/HoverLabel/UseCases/TryShowHoverLabel.test.js +12 -11
- package/dist/cjs/HoverLabel/UseCases/TryShowHoverLabel.test.js.map +1 -1
- package/dist/cjs/Label/UC/ClearCustomLabelUC.test.js +9 -4
- package/dist/cjs/Label/UC/ClearCustomLabelUC.test.js.map +1 -1
- package/dist/cjs/Label/UC/ClearCustomLabelUndoRedo.test.js +10 -6
- package/dist/cjs/Label/UC/ClearCustomLabelUndoRedo.test.js.map +1 -1
- package/dist/cjs/Label/UC/SetCustomLabelUC.test.js +9 -4
- package/dist/cjs/Label/UC/SetCustomLabelUC.test.js.map +1 -1
- package/dist/cjs/Label/UC/SetCustomLabelUndoRedo.test.js +10 -6
- package/dist/cjs/Label/UC/SetCustomLabelUndoRedo.test.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/DeleteAllLabelDropUC.test.js +9 -7
- package/dist/cjs/LabelDrop/UseCases/DeleteAllLabelDropUC.test.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/DeleteLabelDropUC.test.js +9 -7
- package/dist/cjs/LabelDrop/UseCases/DeleteLabelDropUC.test.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/DragLabelDropUC.test.js +8 -6
- package/dist/cjs/LabelDrop/UseCases/DragLabelDropUC.test.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/DragLabelDropWorldUC.test.js +17 -17
- package/dist/cjs/LabelDrop/UseCases/DragLabelDropWorldUC.test.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/EditLabelDropUC.test.js +20 -18
- package/dist/cjs/LabelDrop/UseCases/EditLabelDropUC.test.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js +4 -2
- package/dist/cjs/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/AddLandmarkUndoRedo.test.js +10 -5
- package/dist/cjs/Landmarks/UseCases/AddLandmarkUndoRedo.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/DeleteAllLandmarksUC.test.js +5 -3
- package/dist/cjs/Landmarks/UseCases/DeleteAllLandmarksUC.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/DeleteAllLandmarksUndoRedo.test.js +11 -6
- package/dist/cjs/Landmarks/UseCases/DeleteAllLandmarksUndoRedo.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/DeleteLandmarkUC.test.js +10 -5
- package/dist/cjs/Landmarks/UseCases/DeleteLandmarkUC.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/DeleteLandmarkUndoRedo.test.js +10 -5
- package/dist/cjs/Landmarks/UseCases/DeleteLandmarkUndoRedo.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/SetLandmarkSizeUC.test.js +7 -5
- package/dist/cjs/Landmarks/UseCases/SetLandmarkSizeUC.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/SetLandmarkSizeUndoRedo.test.js +10 -6
- package/dist/cjs/Landmarks/UseCases/SetLandmarkSizeUndoRedo.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/TryAddNewLandmarkUC.test.js +29 -15
- package/dist/cjs/Landmarks/UseCases/TryAddNewLandmarkUC.test.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/TryPreviewLandmarkUC.test.js +4 -3
- package/dist/cjs/Landmarks/UseCases/TryPreviewLandmarkUC.test.js.map +1 -1
- package/dist/cjs/ObjectPick/UseCases/AddCorrectObjectIdUC.test.js +10 -8
- package/dist/cjs/ObjectPick/UseCases/AddCorrectObjectIdUC.test.js.map +1 -1
- package/dist/cjs/ObjectPick/UseCases/ClearCorrectObjectIdsUC.test.js +10 -8
- package/dist/cjs/ObjectPick/UseCases/ClearCorrectObjectIdsUC.test.js.map +1 -1
- package/dist/cjs/ObjectPick/UseCases/RemoveCorrectObjectIdUC.test.js +10 -8
- package/dist/cjs/ObjectPick/UseCases/RemoveCorrectObjectIdUC.test.js.map +1 -1
- package/dist/cjs/ObjectPick/UseCases/TrySelectObjectPickUC.test.js +18 -15
- package/dist/cjs/ObjectPick/UseCases/TrySelectObjectPickUC.test.js.map +1 -1
- package/dist/cjs/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js +3 -1
- package/dist/cjs/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js.map +1 -1
- package/dist/cjs/OverlayColor/UC/SetOverlayColorUC.test.js +9 -4
- package/dist/cjs/OverlayColor/UC/SetOverlayColorUC.test.js.map +1 -1
- package/dist/cjs/OverlayColor/UC/SetOverlayColorUndoRedo.test.js +10 -6
- package/dist/cjs/OverlayColor/UC/SetOverlayColorUndoRedo.test.js.map +1 -1
- package/dist/cjs/Question/UC/AddAnswerUndoRedo.test.js +16 -6
- package/dist/cjs/Question/UC/AddAnswerUndoRedo.test.js.map +1 -1
- package/dist/cjs/Question/UC/AddQuestionAnswerUC.test.js +14 -5
- package/dist/cjs/Question/UC/AddQuestionAnswerUC.test.js.map +1 -1
- package/dist/cjs/Question/UC/DeleteAnswerUndoRedo.test.js +17 -6
- package/dist/cjs/Question/UC/DeleteAnswerUndoRedo.test.js.map +1 -1
- package/dist/cjs/Question/UC/DeleteQuestionAnswerUC.test.js +9 -6
- package/dist/cjs/Question/UC/DeleteQuestionAnswerUC.test.js.map +1 -1
- package/dist/cjs/Question/UC/SetAnswerFeedbackUC.test.js +9 -6
- package/dist/cjs/Question/UC/SetAnswerFeedbackUC.test.js.map +1 -1
- package/dist/cjs/Question/UC/SetAnswerFeedbackUndoRedo.test.js +10 -6
- package/dist/cjs/Question/UC/SetAnswerFeedbackUndoRedo.test.js.map +1 -1
- package/dist/cjs/Question/UC/SetAnswerTextUC.test.js +9 -6
- package/dist/cjs/Question/UC/SetAnswerTextUC.test.js.map +1 -1
- package/dist/cjs/Question/UC/SetAnswerTextUndoRedo.test.js +10 -6
- package/dist/cjs/Question/UC/SetAnswerTextUndoRedo.test.js.map +1 -1
- package/dist/cjs/Question/UC/ToggleIsCorrectUndoRedo.test.js +10 -6
- package/dist/cjs/Question/UC/ToggleIsCorrectUndoRedo.test.js.map +1 -1
- package/dist/cjs/Question/UC/ToggleQuestionAnswerIsCorrect.test.js +7 -4
- package/dist/cjs/Question/UC/ToggleQuestionAnswerIsCorrect.test.js.map +1 -1
- package/dist/cjs/RequestHandler/UC/SetAppStateUC.test.js +2 -0
- package/dist/cjs/RequestHandler/UC/SetAppStateUC.test.js.map +1 -1
- package/dist/cjs/SceneRoot/UC/BumpSceneRootScaleAboutPixelPoint.test.js +7 -4
- package/dist/cjs/SceneRoot/UC/BumpSceneRootScaleAboutPixelPoint.test.js.map +1 -1
- package/dist/cjs/SceneRoot/UC/DragScaleSceneRoot.test.js +9 -6
- package/dist/cjs/SceneRoot/UC/DragScaleSceneRoot.test.js.map +1 -1
- package/dist/cjs/SceneRoot/UC/OrbitSceneRoot.test.js +16 -7
- package/dist/cjs/SceneRoot/UC/OrbitSceneRoot.test.js.map +1 -1
- package/dist/cjs/SceneRoot/UC/PanSceneRoot.test.js +9 -6
- package/dist/cjs/SceneRoot/UC/PanSceneRoot.test.js.map +1 -1
- package/dist/cjs/SceneRoot/UC/PinchSceneRoot.test.js +9 -6
- package/dist/cjs/SceneRoot/UC/PinchSceneRoot.test.js.map +1 -1
- package/dist/cjs/Selection/UC/HoverAppObjectUC.test.js +3 -3
- package/dist/cjs/Selection/UC/HoverAppObjectUC.test.js.map +1 -1
- package/dist/cjs/Selection/UC/PressAppObjectUC.test.js +3 -3
- package/dist/cjs/Selection/UC/PressAppObjectUC.test.js.map +1 -1
- package/dist/cjs/Selection/UC/SelectAppObjectUC.test.js +3 -3
- package/dist/cjs/Selection/UC/SelectAppObjectUC.test.js.map +1 -1
- package/dist/cjs/Stick/UCs/MoveTransformWithStickUC.test.js +9 -7
- package/dist/cjs/Stick/UCs/MoveTransformWithStickUC.test.js.map +1 -1
- package/dist/cjs/Stick/UCs/PanTransformWithStickUC.test.js +13 -11
- package/dist/cjs/Stick/UCs/PanTransformWithStickUC.test.js.map +1 -1
- package/dist/cjs/Stick/UCs/StickUC.test.js +9 -7
- package/dist/cjs/Stick/UCs/StickUC.test.js.map +1 -1
- package/dist/cjs/Stick/UCs/TryStickAppObjectUC.test.js +7 -6
- package/dist/cjs/Stick/UCs/TryStickAppObjectUC.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js +5 -3
- package/dist/cjs/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/MoveTransformUC.test.js +21 -11
- package/dist/cjs/Transform3D/UC/MoveTransformUC.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/MoveTransformUndoRedo.test.js +10 -6
- package/dist/cjs/Transform3D/UC/MoveTransformUndoRedo.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/PanTransformUC.test.js +13 -11
- package/dist/cjs/Transform3D/UC/PanTransformUC.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/PinchTransform.test.js +7 -5
- package/dist/cjs/Transform3D/UC/PinchTransform.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/RayPanScaleTransform.test.js +9 -7
- package/dist/cjs/Transform3D/UC/RayPanScaleTransform.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/ScaleTransform.test.js +22 -18
- package/dist/cjs/Transform3D/UC/ScaleTransform.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/StylusMoveTransformUC.test.js +11 -6
- package/dist/cjs/Transform3D/UC/StylusMoveTransformUC.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/TryMoveTransformUC.test.js +3 -1
- package/dist/cjs/Transform3D/UC/TryMoveTransformUC.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/TryPanTransformUC.test.js +25 -24
- package/dist/cjs/Transform3D/UC/TryPanTransformUC.test.js.map +1 -1
- package/dist/cjs/Transparency/UCs/MakeTransparentUC.test.js +10 -8
- package/dist/cjs/Transparency/UCs/MakeTransparentUC.test.js.map +1 -1
- package/dist/cjs/UndoRedo/Mocks/MockUndoRedo.js +4 -4
- package/dist/cjs/UndoRedo/Mocks/MockUndoRedo.js.map +1 -1
- package/dist/esm/Babylon/Mocks/MockSceneRayPickUC.js +3 -1
- package/dist/esm/Babylon/Mocks/MockSceneRayPickUC.js.map +1 -1
- package/dist/esm/Babylon/UC/SceneRayPickUC.test.js +1 -0
- package/dist/esm/Babylon/UC/SceneRayPickUC.test.js.map +1 -1
- package/dist/esm/BaseApp/UC/EditSlideTextUC.test.js +9 -7
- package/dist/esm/BaseApp/UC/EditSlideTextUC.test.js.map +1 -1
- package/dist/esm/BaseApp/UC/UndoRedoEditSlideText.test.js +10 -6
- package/dist/esm/BaseApp/UC/UndoRedoEditSlideText.test.js.map +1 -1
- package/dist/esm/BaseApp/UC/UpdateContentSizeUC.test.js +8 -6
- package/dist/esm/BaseApp/UC/UpdateContentSizeUC.test.js.map +1 -1
- package/dist/esm/Callouts/UC/CreateCalloutUndoRedo.test.js +7 -4
- package/dist/esm/Callouts/UC/CreateCalloutUndoRedo.test.js.map +1 -1
- package/dist/esm/Callouts/UC/DeleteAllCalloutsUC.test.js +7 -4
- package/dist/esm/Callouts/UC/DeleteAllCalloutsUC.test.js.map +1 -1
- package/dist/esm/Callouts/UC/DeleteAllCalloutsUndoRedo.test.js +13 -7
- package/dist/esm/Callouts/UC/DeleteAllCalloutsUndoRedo.test.js.map +1 -1
- package/dist/esm/Callouts/UC/DeleteCallout.test.js +5 -2
- package/dist/esm/Callouts/UC/DeleteCallout.test.js.map +1 -1
- package/dist/esm/Callouts/UC/DeleteCalloutUndoRedo.test.js +9 -7
- package/dist/esm/Callouts/UC/DeleteCalloutUndoRedo.test.js.map +1 -1
- package/dist/esm/Callouts/UC/SetCalloutSizeUC.test.js +7 -5
- package/dist/esm/Callouts/UC/SetCalloutSizeUC.test.js.map +1 -1
- package/dist/esm/Callouts/UC/SetCalloutSizeUndoRedo.test.js +10 -6
- package/dist/esm/Callouts/UC/SetCalloutSizeUndoRedo.test.js.map +1 -1
- package/dist/esm/Callouts/UC/TryAddCallout.test.js +5 -4
- package/dist/esm/Callouts/UC/TryAddCallout.test.js.map +1 -1
- package/dist/esm/Callouts/UC/TryPanLabelUC.test.js +3 -2
- package/dist/esm/Callouts/UC/TryPanLabelUC.test.js.map +1 -1
- package/dist/esm/Challenge/UCs/SetChallengeUC.test.js +11 -9
- package/dist/esm/Challenge/UCs/SetChallengeUC.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/ClearAllColorOverlayUndoRedo.test.js +13 -7
- package/dist/esm/ChannelModel/UC/ClearAllColorOverlayUndoRedo.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/ClearModelObjectOverlaysUC.test.js +7 -4
- package/dist/esm/ChannelModel/UC/ClearModelObjectOverlaysUC.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/SelectChannelModelUC.test.js +5 -2
- package/dist/esm/ChannelModel/UC/SelectChannelModelUC.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/StickAllChannelModelObjectsUC.test.js +10 -8
- package/dist/esm/ChannelModel/UC/StickAllChannelModelObjectsUC.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.test.js +9 -7
- package/dist/esm/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/UnhideAllChannelModelObjectsUC.test.js +7 -5
- package/dist/esm/ChannelModel/UC/UnhideAllChannelModelObjectsUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchStateChange.js +3 -3
- package/dist/esm/Dispatcher/Mocks/MockDispatchStateChange.js.map +1 -1
- package/dist/esm/Environment/UCs/SetEnvironmentIntensityUC.test.js +11 -9
- package/dist/esm/Environment/UCs/SetEnvironmentIntensityUC.test.js.map +1 -1
- package/dist/esm/Environment/UCs/SetTexturalEnvironmentUC.test.js +9 -7
- package/dist/esm/Environment/UCs/SetTexturalEnvironmentUC.test.js.map +1 -1
- package/dist/esm/Hideable/UCs/HideUC.test.js +10 -8
- package/dist/esm/Hideable/UCs/HideUC.test.js.map +1 -1
- package/dist/esm/Hideable/UCs/TryHideWithPickUC.test.js +7 -6
- package/dist/esm/Hideable/UCs/TryHideWithPickUC.test.js.map +1 -1
- package/dist/esm/HoverLabel/UseCases/TryShowHoverLabel.test.js +12 -11
- package/dist/esm/HoverLabel/UseCases/TryShowHoverLabel.test.js.map +1 -1
- package/dist/esm/Label/UC/ClearCustomLabelUC.test.js +9 -4
- package/dist/esm/Label/UC/ClearCustomLabelUC.test.js.map +1 -1
- package/dist/esm/Label/UC/ClearCustomLabelUndoRedo.test.js +10 -6
- package/dist/esm/Label/UC/ClearCustomLabelUndoRedo.test.js.map +1 -1
- package/dist/esm/Label/UC/SetCustomLabelUC.test.js +9 -4
- package/dist/esm/Label/UC/SetCustomLabelUC.test.js.map +1 -1
- package/dist/esm/Label/UC/SetCustomLabelUndoRedo.test.js +10 -6
- package/dist/esm/Label/UC/SetCustomLabelUndoRedo.test.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/DeleteAllLabelDropUC.test.js +9 -7
- package/dist/esm/LabelDrop/UseCases/DeleteAllLabelDropUC.test.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/DeleteLabelDropUC.test.js +9 -7
- package/dist/esm/LabelDrop/UseCases/DeleteLabelDropUC.test.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/DragLabelDropUC.test.js +8 -6
- package/dist/esm/LabelDrop/UseCases/DragLabelDropUC.test.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/DragLabelDropWorldUC.test.js +17 -17
- package/dist/esm/LabelDrop/UseCases/DragLabelDropWorldUC.test.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/EditLabelDropUC.test.js +20 -18
- package/dist/esm/LabelDrop/UseCases/EditLabelDropUC.test.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js +4 -2
- package/dist/esm/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/AddLandmarkUndoRedo.test.js +10 -5
- package/dist/esm/Landmarks/UseCases/AddLandmarkUndoRedo.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/DeleteAllLandmarksUC.test.js +5 -3
- package/dist/esm/Landmarks/UseCases/DeleteAllLandmarksUC.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/DeleteAllLandmarksUndoRedo.test.js +11 -6
- package/dist/esm/Landmarks/UseCases/DeleteAllLandmarksUndoRedo.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/DeleteLandmarkUC.test.js +10 -5
- package/dist/esm/Landmarks/UseCases/DeleteLandmarkUC.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/DeleteLandmarkUndoRedo.test.js +10 -5
- package/dist/esm/Landmarks/UseCases/DeleteLandmarkUndoRedo.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/SetLandmarkSizeUC.test.js +7 -5
- package/dist/esm/Landmarks/UseCases/SetLandmarkSizeUC.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/SetLandmarkSizeUndoRedo.test.js +10 -6
- package/dist/esm/Landmarks/UseCases/SetLandmarkSizeUndoRedo.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/TryAddNewLandmarkUC.test.js +29 -15
- package/dist/esm/Landmarks/UseCases/TryAddNewLandmarkUC.test.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/TryPreviewLandmarkUC.test.js +4 -3
- package/dist/esm/Landmarks/UseCases/TryPreviewLandmarkUC.test.js.map +1 -1
- package/dist/esm/ObjectPick/UseCases/AddCorrectObjectIdUC.test.js +10 -8
- package/dist/esm/ObjectPick/UseCases/AddCorrectObjectIdUC.test.js.map +1 -1
- package/dist/esm/ObjectPick/UseCases/ClearCorrectObjectIdsUC.test.js +10 -8
- package/dist/esm/ObjectPick/UseCases/ClearCorrectObjectIdsUC.test.js.map +1 -1
- package/dist/esm/ObjectPick/UseCases/RemoveCorrectObjectIdUC.test.js +10 -8
- package/dist/esm/ObjectPick/UseCases/RemoveCorrectObjectIdUC.test.js.map +1 -1
- package/dist/esm/ObjectPick/UseCases/TrySelectObjectPickUC.test.js +18 -15
- package/dist/esm/ObjectPick/UseCases/TrySelectObjectPickUC.test.js.map +1 -1
- package/dist/esm/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js +3 -1
- package/dist/esm/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js.map +1 -1
- package/dist/esm/OverlayColor/UC/SetOverlayColorUC.test.js +9 -4
- package/dist/esm/OverlayColor/UC/SetOverlayColorUC.test.js.map +1 -1
- package/dist/esm/OverlayColor/UC/SetOverlayColorUndoRedo.test.js +10 -6
- package/dist/esm/OverlayColor/UC/SetOverlayColorUndoRedo.test.js.map +1 -1
- package/dist/esm/Question/UC/AddAnswerUndoRedo.test.js +16 -6
- package/dist/esm/Question/UC/AddAnswerUndoRedo.test.js.map +1 -1
- package/dist/esm/Question/UC/AddQuestionAnswerUC.test.js +14 -5
- package/dist/esm/Question/UC/AddQuestionAnswerUC.test.js.map +1 -1
- package/dist/esm/Question/UC/DeleteAnswerUndoRedo.test.js +17 -6
- package/dist/esm/Question/UC/DeleteAnswerUndoRedo.test.js.map +1 -1
- package/dist/esm/Question/UC/DeleteQuestionAnswerUC.test.js +9 -6
- package/dist/esm/Question/UC/DeleteQuestionAnswerUC.test.js.map +1 -1
- package/dist/esm/Question/UC/SetAnswerFeedbackUC.test.js +9 -6
- package/dist/esm/Question/UC/SetAnswerFeedbackUC.test.js.map +1 -1
- package/dist/esm/Question/UC/SetAnswerFeedbackUndoRedo.test.js +10 -6
- package/dist/esm/Question/UC/SetAnswerFeedbackUndoRedo.test.js.map +1 -1
- package/dist/esm/Question/UC/SetAnswerTextUC.test.js +9 -6
- package/dist/esm/Question/UC/SetAnswerTextUC.test.js.map +1 -1
- package/dist/esm/Question/UC/SetAnswerTextUndoRedo.test.js +10 -6
- package/dist/esm/Question/UC/SetAnswerTextUndoRedo.test.js.map +1 -1
- package/dist/esm/Question/UC/ToggleIsCorrectUndoRedo.test.js +10 -6
- package/dist/esm/Question/UC/ToggleIsCorrectUndoRedo.test.js.map +1 -1
- package/dist/esm/Question/UC/ToggleQuestionAnswerIsCorrect.test.js +7 -4
- package/dist/esm/Question/UC/ToggleQuestionAnswerIsCorrect.test.js.map +1 -1
- package/dist/esm/RequestHandler/UC/SetAppStateUC.test.js +2 -0
- package/dist/esm/RequestHandler/UC/SetAppStateUC.test.js.map +1 -1
- package/dist/esm/SceneRoot/UC/BumpSceneRootScaleAboutPixelPoint.test.js +7 -4
- package/dist/esm/SceneRoot/UC/BumpSceneRootScaleAboutPixelPoint.test.js.map +1 -1
- package/dist/esm/SceneRoot/UC/DragScaleSceneRoot.test.js +9 -6
- package/dist/esm/SceneRoot/UC/DragScaleSceneRoot.test.js.map +1 -1
- package/dist/esm/SceneRoot/UC/OrbitSceneRoot.test.js +16 -7
- package/dist/esm/SceneRoot/UC/OrbitSceneRoot.test.js.map +1 -1
- package/dist/esm/SceneRoot/UC/PanSceneRoot.test.js +9 -6
- package/dist/esm/SceneRoot/UC/PanSceneRoot.test.js.map +1 -1
- package/dist/esm/SceneRoot/UC/PinchSceneRoot.test.js +9 -6
- package/dist/esm/SceneRoot/UC/PinchSceneRoot.test.js.map +1 -1
- package/dist/esm/Selection/UC/HoverAppObjectUC.test.js +3 -3
- package/dist/esm/Selection/UC/HoverAppObjectUC.test.js.map +1 -1
- package/dist/esm/Selection/UC/PressAppObjectUC.test.js +3 -3
- package/dist/esm/Selection/UC/PressAppObjectUC.test.js.map +1 -1
- package/dist/esm/Selection/UC/SelectAppObjectUC.test.js +3 -3
- package/dist/esm/Selection/UC/SelectAppObjectUC.test.js.map +1 -1
- package/dist/esm/Stick/UCs/MoveTransformWithStickUC.test.js +9 -7
- package/dist/esm/Stick/UCs/MoveTransformWithStickUC.test.js.map +1 -1
- package/dist/esm/Stick/UCs/PanTransformWithStickUC.test.js +13 -11
- package/dist/esm/Stick/UCs/PanTransformWithStickUC.test.js.map +1 -1
- package/dist/esm/Stick/UCs/StickUC.test.js +9 -7
- package/dist/esm/Stick/UCs/StickUC.test.js.map +1 -1
- package/dist/esm/Stick/UCs/TryStickAppObjectUC.test.js +7 -6
- package/dist/esm/Stick/UCs/TryStickAppObjectUC.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js +5 -3
- package/dist/esm/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/MoveTransformUC.test.js +21 -11
- package/dist/esm/Transform3D/UC/MoveTransformUC.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/MoveTransformUndoRedo.test.js +10 -6
- package/dist/esm/Transform3D/UC/MoveTransformUndoRedo.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/PanTransformUC.test.js +13 -11
- package/dist/esm/Transform3D/UC/PanTransformUC.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/PinchTransform.test.js +7 -5
- package/dist/esm/Transform3D/UC/PinchTransform.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/RayPanScaleTransform.test.js +9 -7
- package/dist/esm/Transform3D/UC/RayPanScaleTransform.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/ScaleTransform.test.js +22 -18
- package/dist/esm/Transform3D/UC/ScaleTransform.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/StylusMoveTransformUC.test.js +11 -6
- package/dist/esm/Transform3D/UC/StylusMoveTransformUC.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/TryMoveTransformUC.test.js +3 -1
- package/dist/esm/Transform3D/UC/TryMoveTransformUC.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/TryPanTransformUC.test.js +4 -3
- package/dist/esm/Transform3D/UC/TryPanTransformUC.test.js.map +1 -1
- package/dist/esm/Transparency/UCs/MakeTransparentUC.test.js +10 -8
- package/dist/esm/Transparency/UCs/MakeTransparentUC.test.js.map +1 -1
- package/dist/esm/UndoRedo/Mocks/MockUndoRedo.js +4 -4
- package/dist/esm/UndoRedo/Mocks/MockUndoRedo.js.map +1 -1
- package/dist/types/Babylon/Mocks/MockSceneRayPickUC.d.ts +1 -1
- package/dist/types/Babylon/Mocks/MockSceneRayPickUC.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockDispatchStateChange.d.ts +3 -3
- package/dist/types/Dispatcher/Mocks/MockDispatchStateChange.d.ts.map +1 -1
- package/dist/types/UndoRedo/Mocks/MockUndoRedo.d.ts +4 -4
- package/dist/types/UndoRedo/Mocks/MockUndoRedo.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteLabelDropUC.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/UseCases/DeleteLabelDropUC.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,4FAA6F;AAC7F,2EAA4E;AAC5E,6DAA8D;AAC9D,2DAA+E;AAE/E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,IAAA,mCAAkB,EAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,uBAAuB,GAAG,IAAA,qDAA2B,EAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DeleteLabelDropUC.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/UseCases/DeleteLabelDropUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeUndoRedoEntity } from \"../../UndoRedo/Entities/UndoRedoEntity\";\r\nimport { makeLabelDropRepo } from \"../Entities/LabelDropRepo\";\r\nimport { DeleteLabelDropUC, makeDeleteLabelDropUC } from \"./DeleteLabelDropUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\r\n const mockDispatchStateChange = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatchStateChange.doDispatch = doDispatchMock;\r\n\r\n const labelDropAO = appObjects.getOrCreate(\"repo\");\r\n const repo = makeLabelDropRepo(labelDropAO);\r\n const dropItem = repo.makeLabelDropItem(\"id1\");\r\n dropItem.label = \"Label\";\r\n dropItem.targetIds = [\"obj1\"];\r\n\r\n const deleteLabelDropUC = makeDeleteLabelDropUC(labelDropAO);\r\n\r\n return {\r\n appObjects,\r\n repo,\r\n deleteLabelDropUC,\r\n registerSpy,\r\n doDispatchMock,\r\n undo,\r\n dropItem,\r\n };\r\n}\r\n\r\ndescribe(\"Delete Label drop UC\", () => {\r\n it(\"Get it UC\", () => {\r\n const { appObjects, deleteLabelDropUC } = makeTestRig();\r\n\r\n expect(DeleteLabelDropUC.get(appObjects)).toEqual(deleteLabelDropUC);\r\n });\r\n\r\n it(\"Registers as the singleton\", () => {\r\n const { deleteLabelDropUC, registerSpy } = makeTestRig();\r\n\r\n expect(registerSpy).toHaveBeenCalledWith(deleteLabelDropUC);\r\n });\r\n\r\n it(\"Deletes a label drop\", () => {\r\n const { repo, deleteLabelDropUC } = makeTestRig();\r\n\r\n const spy = jest.spyOn(repo, \"deleteItem\");\r\n\r\n deleteLabelDropUC.deleteLabelDrop(\"id1\");\r\n expect(spy).toHaveBeenCalledWith(\"id1\");\r\n });\r\n\r\n it(\"Dispatches a state change\", () => {\r\n const { deleteLabelDropUC, doDispatchMock } = makeTestRig();\r\n\r\n deleteLabelDropUC.deleteLabelDrop(\"id1\");\r\n\r\n expect(doDispatchMock).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Clears the editing id\", () => {\r\n const { deleteLabelDropUC, repo } = makeTestRig();\r\n\r\n repo.editingID = \"id1\";\r\n deleteLabelDropUC.deleteLabelDrop(\"id1\");\r\n\r\n expect(repo.editingID).toBeUndefined();\r\n });\r\n\r\n it(\"Can undo and redo the delete\", () => {\r\n const { deleteLabelDropUC, undo, doDispatchMock, repo } = makeTestRig();\r\n\r\n deleteLabelDropUC.deleteLabelDrop(\"id1\");\r\n expect(repo.hasForAppObject(\"id1\")).toEqual(false);\r\n\r\n doDispatchMock.mockClear();\r\n\r\n undo.doUndo();\r\n\r\n expect(repo.hasForAppObject(\"id1\")).toEqual(true);\r\n expect(repo.getForAppObject(\"id1\")?.label).toEqual(\"Label\");\r\n expect(repo.getForAppObject(\"id1\")?.targetIds).toEqual([\"obj1\"]);\r\n expect(doDispatchMock).toHaveBeenCalledTimes(1);\r\n\r\n undo.doRedo();\r\n\r\n expect(repo.hasForAppObject(\"id1\")).toEqual(false);\r\n expect(doDispatchMock).toHaveBeenCalledTimes(2);\r\n });\r\n});\r\n"]}
|
|
@@ -15,7 +15,9 @@ function makeTestRig() {
|
|
|
15
15
|
const labelDrop = (0, LabelDropRepo_1.makeLabelDropRepo)(labelDropAO);
|
|
16
16
|
const changeObserver = jest.fn();
|
|
17
17
|
labelDrop.addChangeObserver(changeObserver);
|
|
18
|
-
const
|
|
18
|
+
const mockRayPick = (0, MockSceneRayPickUC_1.makeMockSceneRayPickUC)(appObjects);
|
|
19
|
+
const mockPick = jest.fn().mockReturnValue({ appObjectID: "obj" });
|
|
20
|
+
mockRayPick.sceneRayPick = mockPick;
|
|
19
21
|
const dragLabelDropUC = (0, DragLabelDropUC_1.makeDragLabelDropUC)(labelDropAO);
|
|
20
22
|
challenge.selectedChallenge = "LABEL_DROP";
|
|
21
23
|
baseApp.isAuthoring = false;
|
|
@@ -65,7 +67,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
65
67
|
});
|
|
66
68
|
it("Submits the object hit when released", () => {
|
|
67
69
|
const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();
|
|
68
|
-
mockPick.
|
|
70
|
+
mockPick.mockReturnValue({
|
|
69
71
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
70
72
|
hit: true,
|
|
71
73
|
normal: new core_2.Vector3(4, 5, 6),
|
|
@@ -81,7 +83,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
81
83
|
it("submits a label drop answer if an app object is hit", async () => {
|
|
82
84
|
jest.useFakeTimers();
|
|
83
85
|
const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();
|
|
84
|
-
mockPick.
|
|
86
|
+
mockPick.mockReturnValue({
|
|
85
87
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
86
88
|
hit: true,
|
|
87
89
|
normal: new core_2.Vector3(4, 5, 6),
|
|
@@ -96,7 +98,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
96
98
|
});
|
|
97
99
|
it("Does not submit a label drop answer if an app object is not hit", async () => {
|
|
98
100
|
const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();
|
|
99
|
-
mockPick.
|
|
101
|
+
mockPick.mockReturnValue({
|
|
100
102
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
101
103
|
hit: false,
|
|
102
104
|
normal: new core_2.Vector3(4, 5, 6),
|
|
@@ -108,7 +110,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
108
110
|
});
|
|
109
111
|
it("Does not submit if no object hit on release", () => {
|
|
110
112
|
const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();
|
|
111
|
-
mockPick.
|
|
113
|
+
mockPick.mockReturnValue({
|
|
112
114
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
113
115
|
hit: false,
|
|
114
116
|
normal: new core_2.Vector3(4, 5, 6),
|
|
@@ -122,7 +124,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
122
124
|
it("Does not wait to animate if no object is hit", async () => {
|
|
123
125
|
jest.useFakeTimers();
|
|
124
126
|
const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();
|
|
125
|
-
mockPick.
|
|
127
|
+
mockPick.mockReturnValue({
|
|
126
128
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
127
129
|
hit: false,
|
|
128
130
|
normal: new core_2.Vector3(4, 5, 6),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragLabelDropUC.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/UseCases/DragLabelDropUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\r\nimport { makeMockSceneRayPickUC } from \"../../Babylon/Mocks/MockSceneRayPickUC\";\r\nimport { makeBaseAppState } from \"../../BaseApp\";\r\nimport { makeChallengeEntityMock } from \"../../Challenge/Mocks/ChallengeEntityMock\";\r\nimport {\r\n LabelDropDragMode,\r\n makeLabelDropRepo,\r\n} from \"../Entities/LabelDropRepo\";\r\nimport { makeDragLabelDropUC } from \"./DragLabelDropUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n\r\n const challenge = makeChallengeEntityMock(appObjects);\r\n const baseApp = makeBaseAppState(appObjects.getOrCreate(\"BaseApp\"));\r\n\r\n const labelDropAO = appObjects.getOrCreate(\"labelDrop\");\r\n\r\n const labelDrop = makeLabelDropRepo(labelDropAO);\r\n const changeObserver = jest.fn();\r\n labelDrop.addChangeObserver(changeObserver);\r\n\r\n const mockPick = makeMockSceneRayPickUC(appObjects);\r\n\r\n const dragLabelDropUC = makeDragLabelDropUC(labelDropAO);\r\n\r\n challenge.selectedChallenge = \"LABEL_DROP\";\r\n baseApp.isAuthoring = false;\r\n\r\n return {\r\n appObjects,\r\n labelDrop,\r\n dragLabelDropUC,\r\n changeObserver,\r\n baseApp,\r\n challenge,\r\n mockPick,\r\n };\r\n}\r\n\r\ndescribe(\"Drag Label Drop UC\", () => {\r\n it(\"initializes id, screenMode, position, and alpha\", () => {\r\n const { dragLabelDropUC, labelDrop } = makeTestRig();\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n\r\n dragLabelDropUC.initialize(\"id1\", new Vector2(1, 2));\r\n expect(labelDrop.draggingID).toEqual(\"id1\");\r\n expect(labelDrop.dragMode).toEqual(LabelDropDragMode.SCREEN);\r\n expect(labelDrop.dragAlpha).toEqual(1);\r\n expect(labelDrop.screenPosition).toEqual(new Vector2(1, 2));\r\n });\r\n\r\n it(\"Does not initialize if challenge is not label drop\", () => {\r\n const { dragLabelDropUC, labelDrop, challenge } = makeTestRig();\r\n challenge.selectedChallenge = \"NONE\";\r\n\r\n dragLabelDropUC.initialize(\"id1\", Vector2.Zero());\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Does not initialize if authoring\", () => {\r\n const { dragLabelDropUC, labelDrop, baseApp } = makeTestRig();\r\n baseApp.isAuthoring = true;\r\n\r\n dragLabelDropUC.initialize(\"id1\", Vector2.Zero());\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Can set the 2D position\", () => {\r\n const { dragLabelDropUC, labelDrop } = makeTestRig();\r\n\r\n dragLabelDropUC.initialize(\"id\", Vector2.Zero());\r\n dragLabelDropUC.setPosition2D(new Vector2(1, 2));\r\n expect(labelDrop.screenPosition).toEqual(new Vector2(1, 2));\r\n });\r\n\r\n it(\"Does not set the 2D position if it did not initialize\", () => {\r\n const { dragLabelDropUC, labelDrop } = makeTestRig();\r\n labelDrop.screenPosition = Vector2.Zero();\r\n\r\n dragLabelDropUC.setPosition2D(new Vector2(1, 2));\r\n expect(labelDrop.screenPosition).not.toEqual(new Vector2(1, 2));\r\n });\r\n\r\n it(\"Submits the object hit when released\", () => {\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.sceneRayPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: true,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {\r\n appObjectID: \"appObj1\",\r\n },\r\n });\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n labelDrop.submitLabelDrop = jest.fn();\r\n dragLabelDropUC.release(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).toHaveBeenCalledWith(\r\n \"labelDrop1\",\r\n \"appObj1\"\r\n );\r\n });\r\n\r\n it(\"submits a label drop answer if an app object is hit\", async () => {\r\n jest.useFakeTimers();\r\n\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.sceneRayPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: true,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {\r\n appObjectID: \"appObj1\",\r\n },\r\n });\r\n\r\n labelDrop.submitLabelDrop = jest.fn();\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n\r\n dragLabelDropUC.release(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit a label drop answer if an app object is not hit\", async () => {\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.sceneRayPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: false,\r\n normal: new Vector3(4, 5, 6),\r\n });\r\n\r\n labelDrop.submitLabelDrop = jest.fn();\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n\r\n dragLabelDropUC.release(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit if no object hit on release\", () => {\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.sceneRayPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: false,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {},\r\n });\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n labelDrop.submitLabelDrop = jest.fn();\r\n dragLabelDropUC.release(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not wait to animate if no object is hit\", async () => {\r\n jest.useFakeTimers();\r\n\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.sceneRayPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: false,\r\n normal: new Vector3(4, 5, 6),\r\n });\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n\r\n dragLabelDropUC.onFinishRelease();\r\n\r\n jest.advanceTimersByTime(1000);\r\n\r\n expect(labelDrop.dragAlpha).toEqual(0);\r\n });\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"file":"DragLabelDropUC.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/UseCases/DragLabelDropUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\r\nimport { makeMockSceneRayPickUC } from \"../../Babylon/Mocks/MockSceneRayPickUC\";\r\nimport { makeBaseAppState } from \"../../BaseApp\";\r\nimport { makeChallengeEntityMock } from \"../../Challenge/Mocks/ChallengeEntityMock\";\r\nimport {\r\n LabelDropDragMode,\r\n makeLabelDropRepo,\r\n} from \"../Entities/LabelDropRepo\";\r\nimport { makeDragLabelDropUC } from \"./DragLabelDropUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n\r\n const challenge = makeChallengeEntityMock(appObjects);\r\n const baseApp = makeBaseAppState(appObjects.getOrCreate(\"BaseApp\"));\r\n\r\n const labelDropAO = appObjects.getOrCreate(\"labelDrop\");\r\n\r\n const labelDrop = makeLabelDropRepo(labelDropAO);\r\n const changeObserver = jest.fn();\r\n labelDrop.addChangeObserver(changeObserver);\r\n\r\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\r\n const mockPick = jest.fn().mockReturnValue({ appObjectID: \"obj\" });\r\n mockRayPick.sceneRayPick = mockPick;\r\n\r\n const dragLabelDropUC = makeDragLabelDropUC(labelDropAO);\r\n\r\n challenge.selectedChallenge = \"LABEL_DROP\";\r\n baseApp.isAuthoring = false;\r\n\r\n return {\r\n appObjects,\r\n labelDrop,\r\n dragLabelDropUC,\r\n changeObserver,\r\n baseApp,\r\n challenge,\r\n mockPick,\r\n };\r\n}\r\n\r\ndescribe(\"Drag Label Drop UC\", () => {\r\n it(\"initializes id, screenMode, position, and alpha\", () => {\r\n const { dragLabelDropUC, labelDrop } = makeTestRig();\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n\r\n dragLabelDropUC.initialize(\"id1\", new Vector2(1, 2));\r\n expect(labelDrop.draggingID).toEqual(\"id1\");\r\n expect(labelDrop.dragMode).toEqual(LabelDropDragMode.SCREEN);\r\n expect(labelDrop.dragAlpha).toEqual(1);\r\n expect(labelDrop.screenPosition).toEqual(new Vector2(1, 2));\r\n });\r\n\r\n it(\"Does not initialize if challenge is not label drop\", () => {\r\n const { dragLabelDropUC, labelDrop, challenge } = makeTestRig();\r\n challenge.selectedChallenge = \"NONE\";\r\n\r\n dragLabelDropUC.initialize(\"id1\", Vector2.Zero());\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Does not initialize if authoring\", () => {\r\n const { dragLabelDropUC, labelDrop, baseApp } = makeTestRig();\r\n baseApp.isAuthoring = true;\r\n\r\n dragLabelDropUC.initialize(\"id1\", Vector2.Zero());\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Can set the 2D position\", () => {\r\n const { dragLabelDropUC, labelDrop } = makeTestRig();\r\n\r\n dragLabelDropUC.initialize(\"id\", Vector2.Zero());\r\n dragLabelDropUC.setPosition2D(new Vector2(1, 2));\r\n expect(labelDrop.screenPosition).toEqual(new Vector2(1, 2));\r\n });\r\n\r\n it(\"Does not set the 2D position if it did not initialize\", () => {\r\n const { dragLabelDropUC, labelDrop } = makeTestRig();\r\n labelDrop.screenPosition = Vector2.Zero();\r\n\r\n dragLabelDropUC.setPosition2D(new Vector2(1, 2));\r\n expect(labelDrop.screenPosition).not.toEqual(new Vector2(1, 2));\r\n });\r\n\r\n it(\"Submits the object hit when released\", () => {\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: true,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {\r\n appObjectID: \"appObj1\",\r\n },\r\n });\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n labelDrop.submitLabelDrop = jest.fn();\r\n dragLabelDropUC.release(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).toHaveBeenCalledWith(\r\n \"labelDrop1\",\r\n \"appObj1\"\r\n );\r\n });\r\n\r\n it(\"submits a label drop answer if an app object is hit\", async () => {\r\n jest.useFakeTimers();\r\n\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: true,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {\r\n appObjectID: \"appObj1\",\r\n },\r\n });\r\n\r\n labelDrop.submitLabelDrop = jest.fn();\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n\r\n dragLabelDropUC.release(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit a label drop answer if an app object is not hit\", async () => {\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: false,\r\n normal: new Vector3(4, 5, 6),\r\n });\r\n\r\n labelDrop.submitLabelDrop = jest.fn();\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n\r\n dragLabelDropUC.release(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit if no object hit on release\", () => {\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: false,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {},\r\n });\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n labelDrop.submitLabelDrop = jest.fn();\r\n dragLabelDropUC.release(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not wait to animate if no object is hit\", async () => {\r\n jest.useFakeTimers();\r\n\r\n const { dragLabelDropUC, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: false,\r\n normal: new Vector3(4, 5, 6),\r\n });\r\n\r\n dragLabelDropUC.initialize(\"labelDrop1\", Vector2.Zero());\r\n\r\n dragLabelDropUC.onFinishRelease();\r\n\r\n jest.advanceTimersByTime(1000);\r\n\r\n expect(labelDrop.dragAlpha).toEqual(0);\r\n });\r\n});\r\n"]}
|
|
@@ -26,12 +26,12 @@ function makeTestRig() {
|
|
|
26
26
|
const labelDrop = (0, LabelDropRepo_1.makeLabelDropRepo)(labelDropAO);
|
|
27
27
|
const changeObserver = jest.fn();
|
|
28
28
|
labelDrop.addChangeObserver(changeObserver);
|
|
29
|
-
const
|
|
30
|
-
const
|
|
29
|
+
const mockRayPick = (0, MockSceneRayPickUC_1.makeMockSceneRayPickUC)(appObjects);
|
|
30
|
+
const mockPick = jest.fn().mockReturnValue({
|
|
31
31
|
hit: true,
|
|
32
32
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
33
|
-
};
|
|
34
|
-
|
|
33
|
+
});
|
|
34
|
+
mockRayPick.sceneRayPick = mockPick;
|
|
35
35
|
const mockStylusTransform = (0, Transform3D_1.makeTransform3D)(appObjects.getOrCreate("stylus"));
|
|
36
36
|
labelDrop.dragHelperTransform.parent = mockStylusTransform;
|
|
37
37
|
mockStylusTransform.worldPosition = new core_2.Vector3(1, 2, 0);
|
|
@@ -99,7 +99,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
99
99
|
hit: true,
|
|
100
100
|
worldPickPoint: new core_2.Vector3(10, 20, 0),
|
|
101
101
|
};
|
|
102
|
-
mockPick.
|
|
102
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
103
103
|
uc.updateDrag(core_2.ParametricLine.Forward());
|
|
104
104
|
const expectedDepth = 30 * (1 - uc.percentOfPickDepth);
|
|
105
105
|
const expectedPos = new core_2.Vector3(10, 20, expectedDepth);
|
|
@@ -111,7 +111,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
111
111
|
const mockPickResult = {
|
|
112
112
|
hit: false,
|
|
113
113
|
};
|
|
114
|
-
mockPick.
|
|
114
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
115
115
|
uc.updateDrag(core_2.ParametricLine.Forward());
|
|
116
116
|
const expectedPos = new core_2.Vector3(1, 2, 0);
|
|
117
117
|
expect(core_2.Vector3.Close(labelDrop.dragLabelTransform.worldPosition, expectedPos)).toEqual(true);
|
|
@@ -128,7 +128,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
128
128
|
it("Does not set the 3D position if it did not initialize", () => {
|
|
129
129
|
const { uc, labelDrop, mockPick } = makeTestRig();
|
|
130
130
|
labelDrop.dragLabelTransform.worldPosition = core_2.Vector3.Zero();
|
|
131
|
-
mockPick.
|
|
131
|
+
mockPick.mockReturnValue({
|
|
132
132
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
133
133
|
hit: true,
|
|
134
134
|
normal: new core_2.Vector3(4, 5, 6),
|
|
@@ -146,7 +146,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
146
146
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
147
147
|
appObjectID: "appObj1",
|
|
148
148
|
};
|
|
149
|
-
mockPick.
|
|
149
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
150
150
|
uc.initializeDrag("labelDrop1", core_2.ParametricLine.Forward());
|
|
151
151
|
labelDrop.submitLabelDrop = jest.fn();
|
|
152
152
|
uc.releaseDrag(core_2.ParametricLine.Forward());
|
|
@@ -159,7 +159,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
159
159
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
160
160
|
appObjectID: "appObj1",
|
|
161
161
|
};
|
|
162
|
-
mockPick.
|
|
162
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
163
163
|
labelDrop.submitLabelDrop = jest.fn();
|
|
164
164
|
uc.initializeDrag("labelDrop1", core_2.ParametricLine.Forward());
|
|
165
165
|
uc.releaseDrag(core_2.ParametricLine.Forward());
|
|
@@ -172,7 +172,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
172
172
|
const mockPickResult = {
|
|
173
173
|
hit: false,
|
|
174
174
|
};
|
|
175
|
-
mockPick.
|
|
175
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
176
176
|
uc.releaseDrag(core_2.ParametricLine.Forward());
|
|
177
177
|
expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();
|
|
178
178
|
});
|
|
@@ -182,7 +182,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
182
182
|
const mockPickResult = {
|
|
183
183
|
hit: false,
|
|
184
184
|
};
|
|
185
|
-
mockPick.
|
|
185
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
186
186
|
uc.releaseDrag(core_2.ParametricLine.Forward());
|
|
187
187
|
expect(mockDropAnimation.start).toHaveBeenCalled();
|
|
188
188
|
});
|
|
@@ -193,7 +193,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
193
193
|
const mockPickResult = {
|
|
194
194
|
hit: false,
|
|
195
195
|
};
|
|
196
|
-
mockPick.
|
|
196
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
197
197
|
uc.releaseDrag(core_2.ParametricLine.Forward());
|
|
198
198
|
expect(mockDropAnimation.desiredFinalPosition).toEqual(new core_2.Vector3(1, 2, 3));
|
|
199
199
|
});
|
|
@@ -205,7 +205,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
205
205
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
206
206
|
appObjectID: "appObj",
|
|
207
207
|
};
|
|
208
|
-
mockPick.
|
|
208
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
209
209
|
labelDrop.submitLabelDrop = jest.fn().mockReturnValue(false);
|
|
210
210
|
uc.releaseDrag(core_2.ParametricLine.Forward());
|
|
211
211
|
expect(mockIncorrectAnimation.start).toHaveBeenCalled();
|
|
@@ -219,7 +219,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
219
219
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
220
220
|
appObjectID: "appObj",
|
|
221
221
|
};
|
|
222
|
-
mockPick.
|
|
222
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
223
223
|
labelDrop.submitLabelDrop = jest.fn().mockReturnValue(false);
|
|
224
224
|
uc.releaseDrag(core_2.ParametricLine.Forward());
|
|
225
225
|
expect(mockIncorrectAnimation.desiredFinalPosition).toEqual(new core_2.Vector3(1, 2, 3));
|
|
@@ -232,14 +232,14 @@ describe("Drag Label Drop UC", () => {
|
|
|
232
232
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
233
233
|
appObjectID: "appObj",
|
|
234
234
|
};
|
|
235
|
-
mockPick.
|
|
235
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
236
236
|
labelDrop.submitLabelDrop = jest.fn().mockReturnValue(true);
|
|
237
237
|
uc.releaseDrag(core_2.ParametricLine.Forward());
|
|
238
238
|
expect(mockCorrectAnimation.start).toHaveBeenCalled();
|
|
239
239
|
});
|
|
240
240
|
it("Does not submit if no object hit on release", () => {
|
|
241
241
|
const { uc, labelDrop, mockPick } = makeTestRig();
|
|
242
|
-
mockPick.
|
|
242
|
+
mockPick.mockReturnValue({
|
|
243
243
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
244
244
|
hit: false,
|
|
245
245
|
normal: new core_2.Vector3(4, 5, 6),
|
|
@@ -273,7 +273,7 @@ describe("Drag Label Drop UC", () => {
|
|
|
273
273
|
worldPickPoint: new core_2.Vector3(1, 2, 3),
|
|
274
274
|
appObjectID: "appObj",
|
|
275
275
|
};
|
|
276
|
-
mockPick.
|
|
276
|
+
mockPick.mockReturnValue(mockPickResult);
|
|
277
277
|
labelDrop.getRemainingLabelDrops = jest.fn().mockReturnValue([]);
|
|
278
278
|
labelDrop.submitLabelDrop = jest.fn().mockReturnValue(true);
|
|
279
279
|
uc.initializeDrag("labelDrop1", core_2.ParametricLine.Forward());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragLabelDropWorldUC.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/UseCases/DragLabelDropWorldUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { Angle, ParametricLine, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { makeMockSceneRayPickUC } from \"../../Babylon/Mocks/MockSceneRayPickUC\";\r\nimport { SceneRayPick } from \"../../Babylon/UC/SceneRayPickUC\";\r\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\r\nimport { makeChallengeEntityMock } from \"../../Challenge/Mocks/ChallengeEntityMock\";\r\nimport { makeTransform3D } from \"../../Transform3D/Entities/Transform3D\";\r\nimport {\r\n LabelDropDragMode,\r\n makeLabelDropRepo,\r\n} from \"../Entities/LabelDropRepo\";\r\nimport { makeMockLabelDropCorrectAnimationUC } from \"../Mocks/MockCorrectAnimation\";\r\nimport { makeMockDropAnimation } from \"../Mocks/MockDropAnimation\";\r\nimport { makeMockLabelDropIncorrectAnimationUC } from \"../Mocks/MockIncorrectAnimation\";\r\nimport { makeDragLabelDropWorldUC } from \"./DragLabelDropWorldUC\";\r\n\r\n// Default setup\r\n// Hit is 1,2,3 (world)\r\n// Stylus is 1,2,0 (world)\r\n// Local hit is 0,0,3 (stylus)\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n\r\n const challenge = makeChallengeEntityMock(appObjects);\r\n const baseApp = makeBaseAppState(appObjects.getOrCreate(\"BaseApp\"));\r\n\r\n const labelDropAO = appObjects.getOrCreate(\"labelDrop\");\r\n\r\n const mockDropAnimation = makeMockDropAnimation(appObjects);\r\n const mockCorrectAnimation = makeMockLabelDropCorrectAnimationUC(appObjects);\r\n const mockIncorrectAnimation =\r\n makeMockLabelDropIncorrectAnimationUC(appObjects);\r\n\r\n const labelDrop = makeLabelDropRepo(labelDropAO);\r\n const changeObserver = jest.fn();\r\n labelDrop.addChangeObserver(changeObserver);\r\n\r\n const mockPick = makeMockSceneRayPickUC(appObjects);\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n const mockStylusTransform = makeTransform3D(appObjects.getOrCreate(\"stylus\"));\r\n labelDrop.dragHelperTransform.parent = mockStylusTransform;\r\n mockStylusTransform.worldPosition = new Vector3(1, 2, 0);\r\n\r\n const uc = makeDragLabelDropWorldUC(labelDropAO);\r\n\r\n challenge.selectedChallenge = \"LABEL_DROP\";\r\n baseApp.isAuthoring = false;\r\n\r\n return {\r\n appObjects,\r\n labelDrop,\r\n uc,\r\n changeObserver,\r\n baseApp,\r\n challenge,\r\n mockPick,\r\n mockStylusTransform,\r\n mockDropAnimation,\r\n mockCorrectAnimation,\r\n mockIncorrectAnimation,\r\n };\r\n}\r\n\r\ndescribe(\"Drag Label Drop UC\", () => {\r\n it(\"initializes id on press, mode and alpha\", () => {\r\n const { uc, labelDrop } = makeTestRig();\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n expect(labelDrop.draggingID).toEqual(\"id1\");\r\n expect(labelDrop.dragMode).toEqual(LabelDropDragMode.WORLD);\r\n expect(labelDrop.dragAlpha).toEqual(1);\r\n });\r\n\r\n it(\"Sets the world position of the label\", () => {\r\n const { uc, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n\r\n const expectPos = new Vector3(1, 2, 3 * uc.percentOfPickDepth);\r\n\r\n expect(labelDrop.dragLabelTransform.worldPosition).toEqual(expectPos);\r\n });\r\n\r\n it(\"Sets the world rotation of the label\", () => {\r\n const { uc, labelDrop, mockStylusTransform } = makeTestRig();\r\n\r\n const rot = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n mockStylusTransform.worldRotation = rot;\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n\r\n expect(\r\n Quaternion.Close(labelDrop.dragLabelTransform.worldRotation, rot)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Does not initialize if challenge is not label drop\", () => {\r\n const { uc, labelDrop, challenge } = makeTestRig();\r\n challenge.selectedChallenge = \"NONE\";\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Does not initialize if authoring\", () => {\r\n const { uc, labelDrop, baseApp } = makeTestRig();\r\n baseApp.isAuthoring = true;\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Updates the position on drag\", () => {\r\n const { uc, labelDrop, mockPick, mockStylusTransform } = makeTestRig();\r\n\r\n uc.initializeDrag(\"id\", ParametricLine.Forward());\r\n\r\n // Move stylus to 10,20,30 (world)\r\n // Set pick to 10,20,0 (world)\r\n // Local pick is 0,0, 30 (local stylus)\r\n // Reduced is 0,0, 28.5 (assume 95%)\r\n // Reduced is 10,20,1.5 (world)\r\n\r\n mockStylusTransform.worldPosition = new Vector3(10, 20, 30);\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(10, 20, 0),\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n uc.updateDrag(ParametricLine.Forward());\r\n\r\n const expectedDepth = 30 * (1 - uc.percentOfPickDepth);\r\n const expectedPos = new Vector3(10, 20, expectedDepth);\r\n\r\n expect(\r\n Vector3.Close(labelDrop.dragLabelTransform.worldPosition, expectedPos)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Sets the position at zero parallax if there is no intersection\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n uc.initializeDrag(\"id\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: false,\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n uc.updateDrag(ParametricLine.Forward());\r\n\r\n const expectedPos = new Vector3(1, 2, 0);\r\n\r\n expect(\r\n Vector3.Close(labelDrop.dragLabelTransform.worldPosition, expectedPos)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Updates the rotation on drag\", () => {\r\n const { uc, labelDrop, mockStylusTransform } = makeTestRig();\r\n\r\n uc.initializeDrag(\"id\", ParametricLine.Forward());\r\n\r\n expect(\r\n Quaternion.Close(\r\n labelDrop.dragLabelTransform.worldRotation,\r\n Quaternion.Identity()\r\n )\r\n ).toEqual(true);\r\n\r\n const rot = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n mockStylusTransform.worldRotation = rot;\r\n\r\n uc.updateDrag(ParametricLine.Forward());\r\n\r\n expect(\r\n Quaternion.Close(labelDrop.dragLabelTransform.worldRotation, rot)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Does not set the 3D position if it did not initialize\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n labelDrop.dragLabelTransform.worldPosition = Vector3.Zero();\r\n\r\n mockPick.sceneRayPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: true,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {\r\n appObjectID: \"appObj1\",\r\n },\r\n });\r\n\r\n uc.updateDrag(ParametricLine.Forward());\r\n expect(labelDrop.dragLabelTransform.worldPosition).toEqual(Vector3.Zero());\r\n });\r\n\r\n it(\"Submits the object hit when released\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj1\",\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n labelDrop.submitLabelDrop = jest.fn();\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).toHaveBeenCalledWith(\r\n \"labelDrop1\",\r\n \"appObj1\"\r\n );\r\n });\r\n\r\n it(\"submits a label drop answer if an app object is hit\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj1\",\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.submitLabelDrop = jest.fn();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit a label drop answer if an app object is not hit\", async () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n labelDrop.submitLabelDrop = jest.fn();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: false,\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Kicks off the drop animation\", () => {\r\n const { uc, mockPick, mockDropAnimation } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: false,\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockDropAnimation.start).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets the desired position for the drop animation\", () => {\r\n const { uc, mockPick, mockDropAnimation } = makeTestRig();\r\n\r\n expect(mockDropAnimation.desiredFinalPosition).toEqual(Vector3.Zero());\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: false,\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockDropAnimation.desiredFinalPosition).toEqual(\r\n new Vector3(1, 2, 3)\r\n );\r\n });\r\n\r\n it(\"Kicks off the incorrect animation\", () => {\r\n const { uc, mockPick, mockIncorrectAnimation, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj\",\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(false);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockIncorrectAnimation.start).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets the desired position for the incorrect animation\", () => {\r\n const { uc, mockPick, mockIncorrectAnimation, labelDrop } = makeTestRig();\r\n\r\n expect(mockIncorrectAnimation.desiredFinalPosition).toEqual(Vector3.Zero());\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj\",\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(false);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockIncorrectAnimation.desiredFinalPosition).toEqual(\r\n new Vector3(1, 2, 3)\r\n );\r\n });\r\n\r\n it(\"Kicks off the correct animation\", () => {\r\n const { uc, mockPick, mockCorrectAnimation, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj\",\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(true);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockCorrectAnimation.start).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit if no object hit on release\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.sceneRayPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: false,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {},\r\n });\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n labelDrop.submitLabelDrop = jest.fn();\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Resets dragging ID after the animation ends\", async () => {\r\n const { uc, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n expect(labelDrop.draggingID).toEqual(\"labelDrop1\");\r\n\r\n await uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Resets the result after the animation ends\", async () => {\r\n const { uc, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n expect(labelDrop.draggingID).toEqual(\"labelDrop1\");\r\n\r\n const spy = jest.spyOn(labelDrop, \"resultIsCorrect\", \"set\");\r\n await uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(spy).toHaveBeenCalledWith(undefined);\r\n });\r\n\r\n it(\"Sets mode to review if correct if there are no more labels after the animation has completed\", async () => {\r\n const { uc, labelDrop, baseApp, mockPick } = makeTestRig();\r\n\r\n expect(baseApp.isReviewing).toEqual(false);\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj\",\r\n };\r\n mockPick.sceneRayPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.getRemainingLabelDrops = jest.fn().mockReturnValue([]);\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(true);\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n await uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(baseApp.isReviewing).toEqual(true);\r\n });\r\n\r\n it(\"Does not set the mode to review if there are more labels\", () => {\r\n const { uc, labelDrop, baseApp } = makeTestRig();\r\n\r\n expect(baseApp.isReviewing).toEqual(false);\r\n\r\n labelDrop.getRemainingLabelDrops = jest\r\n .fn()\r\n .mockReturnValue([\"anbotherLabel\"]);\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(true);\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(baseApp.isReviewing).toEqual(false);\r\n });\r\n\r\n it(\"Cancels any running animations on initialization\", () => {\r\n const { uc, labelDrop, mockDropAnimation } = makeTestRig();\r\n\r\n labelDrop.getRemainingLabelDrops = jest.fn().mockReturnValue([]);\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n uc.releaseDrag(ParametricLine.Forward());\r\n expect(mockDropAnimation.start).toHaveBeenCalled();\r\n\r\n uc.initializeDrag(\"labelDrop2\", ParametricLine.Forward());\r\n\r\n expect(mockDropAnimation.cancel).toHaveBeenCalled();\r\n });\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"file":"DragLabelDropWorldUC.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/UseCases/DragLabelDropWorldUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { Angle, ParametricLine, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { makeMockSceneRayPickUC } from \"../../Babylon/Mocks/MockSceneRayPickUC\";\r\nimport { SceneRayPick } from \"../../Babylon/UC/SceneRayPickUC\";\r\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\r\nimport { makeChallengeEntityMock } from \"../../Challenge/Mocks/ChallengeEntityMock\";\r\nimport { makeTransform3D } from \"../../Transform3D/Entities/Transform3D\";\r\nimport {\r\n LabelDropDragMode,\r\n makeLabelDropRepo,\r\n} from \"../Entities/LabelDropRepo\";\r\nimport { makeMockLabelDropCorrectAnimationUC } from \"../Mocks/MockCorrectAnimation\";\r\nimport { makeMockDropAnimation } from \"../Mocks/MockDropAnimation\";\r\nimport { makeMockLabelDropIncorrectAnimationUC } from \"../Mocks/MockIncorrectAnimation\";\r\nimport { makeDragLabelDropWorldUC } from \"./DragLabelDropWorldUC\";\r\n\r\n// Default setup\r\n// Hit is 1,2,3 (world)\r\n// Stylus is 1,2,0 (world)\r\n// Local hit is 0,0,3 (stylus)\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n\r\n const challenge = makeChallengeEntityMock(appObjects);\r\n const baseApp = makeBaseAppState(appObjects.getOrCreate(\"BaseApp\"));\r\n\r\n const labelDropAO = appObjects.getOrCreate(\"labelDrop\");\r\n\r\n const mockDropAnimation = makeMockDropAnimation(appObjects);\r\n const mockCorrectAnimation = makeMockLabelDropCorrectAnimationUC(appObjects);\r\n const mockIncorrectAnimation =\r\n makeMockLabelDropIncorrectAnimationUC(appObjects);\r\n\r\n const labelDrop = makeLabelDropRepo(labelDropAO);\r\n const changeObserver = jest.fn();\r\n labelDrop.addChangeObserver(changeObserver);\r\n\r\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\r\n const mockPick = jest.fn().mockReturnValue({\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n });\r\n mockRayPick.sceneRayPick = mockPick;\r\n\r\n const mockStylusTransform = makeTransform3D(appObjects.getOrCreate(\"stylus\"));\r\n labelDrop.dragHelperTransform.parent = mockStylusTransform;\r\n mockStylusTransform.worldPosition = new Vector3(1, 2, 0);\r\n\r\n const uc = makeDragLabelDropWorldUC(labelDropAO);\r\n\r\n challenge.selectedChallenge = \"LABEL_DROP\";\r\n baseApp.isAuthoring = false;\r\n\r\n return {\r\n appObjects,\r\n labelDrop,\r\n uc,\r\n changeObserver,\r\n baseApp,\r\n challenge,\r\n mockPick,\r\n mockStylusTransform,\r\n mockDropAnimation,\r\n mockCorrectAnimation,\r\n mockIncorrectAnimation,\r\n };\r\n}\r\n\r\ndescribe(\"Drag Label Drop UC\", () => {\r\n it(\"initializes id on press, mode and alpha\", () => {\r\n const { uc, labelDrop } = makeTestRig();\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n expect(labelDrop.draggingID).toEqual(\"id1\");\r\n expect(labelDrop.dragMode).toEqual(LabelDropDragMode.WORLD);\r\n expect(labelDrop.dragAlpha).toEqual(1);\r\n });\r\n\r\n it(\"Sets the world position of the label\", () => {\r\n const { uc, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n\r\n const expectPos = new Vector3(1, 2, 3 * uc.percentOfPickDepth);\r\n\r\n expect(labelDrop.dragLabelTransform.worldPosition).toEqual(expectPos);\r\n });\r\n\r\n it(\"Sets the world rotation of the label\", () => {\r\n const { uc, labelDrop, mockStylusTransform } = makeTestRig();\r\n\r\n const rot = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n mockStylusTransform.worldRotation = rot;\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n\r\n expect(\r\n Quaternion.Close(labelDrop.dragLabelTransform.worldRotation, rot)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Does not initialize if challenge is not label drop\", () => {\r\n const { uc, labelDrop, challenge } = makeTestRig();\r\n challenge.selectedChallenge = \"NONE\";\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Does not initialize if authoring\", () => {\r\n const { uc, labelDrop, baseApp } = makeTestRig();\r\n baseApp.isAuthoring = true;\r\n\r\n uc.initializeDrag(\"id1\", ParametricLine.Forward());\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Updates the position on drag\", () => {\r\n const { uc, labelDrop, mockPick, mockStylusTransform } = makeTestRig();\r\n\r\n uc.initializeDrag(\"id\", ParametricLine.Forward());\r\n\r\n // Move stylus to 10,20,30 (world)\r\n // Set pick to 10,20,0 (world)\r\n // Local pick is 0,0, 30 (local stylus)\r\n // Reduced is 0,0, 28.5 (assume 95%)\r\n // Reduced is 10,20,1.5 (world)\r\n\r\n mockStylusTransform.worldPosition = new Vector3(10, 20, 30);\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(10, 20, 0),\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n uc.updateDrag(ParametricLine.Forward());\r\n\r\n const expectedDepth = 30 * (1 - uc.percentOfPickDepth);\r\n const expectedPos = new Vector3(10, 20, expectedDepth);\r\n\r\n expect(\r\n Vector3.Close(labelDrop.dragLabelTransform.worldPosition, expectedPos)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Sets the position at zero parallax if there is no intersection\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n uc.initializeDrag(\"id\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: false,\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n uc.updateDrag(ParametricLine.Forward());\r\n\r\n const expectedPos = new Vector3(1, 2, 0);\r\n\r\n expect(\r\n Vector3.Close(labelDrop.dragLabelTransform.worldPosition, expectedPos)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Updates the rotation on drag\", () => {\r\n const { uc, labelDrop, mockStylusTransform } = makeTestRig();\r\n\r\n uc.initializeDrag(\"id\", ParametricLine.Forward());\r\n\r\n expect(\r\n Quaternion.Close(\r\n labelDrop.dragLabelTransform.worldRotation,\r\n Quaternion.Identity()\r\n )\r\n ).toEqual(true);\r\n\r\n const rot = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n mockStylusTransform.worldRotation = rot;\r\n\r\n uc.updateDrag(ParametricLine.Forward());\r\n\r\n expect(\r\n Quaternion.Close(labelDrop.dragLabelTransform.worldRotation, rot)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Does not set the 3D position if it did not initialize\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n labelDrop.dragLabelTransform.worldPosition = Vector3.Zero();\r\n\r\n mockPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: true,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {\r\n appObjectID: \"appObj1\",\r\n },\r\n });\r\n\r\n uc.updateDrag(ParametricLine.Forward());\r\n expect(labelDrop.dragLabelTransform.worldPosition).toEqual(Vector3.Zero());\r\n });\r\n\r\n it(\"Submits the object hit when released\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj1\",\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n labelDrop.submitLabelDrop = jest.fn();\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).toHaveBeenCalledWith(\r\n \"labelDrop1\",\r\n \"appObj1\"\r\n );\r\n });\r\n\r\n it(\"submits a label drop answer if an app object is hit\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj1\",\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.submitLabelDrop = jest.fn();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit a label drop answer if an app object is not hit\", async () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n labelDrop.submitLabelDrop = jest.fn();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: false,\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Kicks off the drop animation\", () => {\r\n const { uc, mockPick, mockDropAnimation } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: false,\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockDropAnimation.start).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets the desired position for the drop animation\", () => {\r\n const { uc, mockPick, mockDropAnimation } = makeTestRig();\r\n\r\n expect(mockDropAnimation.desiredFinalPosition).toEqual(Vector3.Zero());\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: false,\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockDropAnimation.desiredFinalPosition).toEqual(\r\n new Vector3(1, 2, 3)\r\n );\r\n });\r\n\r\n it(\"Kicks off the incorrect animation\", () => {\r\n const { uc, mockPick, mockIncorrectAnimation, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj\",\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(false);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockIncorrectAnimation.start).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets the desired position for the incorrect animation\", () => {\r\n const { uc, mockPick, mockIncorrectAnimation, labelDrop } = makeTestRig();\r\n\r\n expect(mockIncorrectAnimation.desiredFinalPosition).toEqual(Vector3.Zero());\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj\",\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(false);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockIncorrectAnimation.desiredFinalPosition).toEqual(\r\n new Vector3(1, 2, 3)\r\n );\r\n });\r\n\r\n it(\"Kicks off the correct animation\", () => {\r\n const { uc, mockPick, mockCorrectAnimation, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj\",\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(true);\r\n\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(mockCorrectAnimation.start).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit if no object hit on release\", () => {\r\n const { uc, labelDrop, mockPick } = makeTestRig();\r\n\r\n mockPick.mockReturnValue({\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n hit: false,\r\n normal: new Vector3(4, 5, 6),\r\n objectPickMeta: {},\r\n });\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n labelDrop.submitLabelDrop = jest.fn();\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.submitLabelDrop).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Resets dragging ID after the animation ends\", async () => {\r\n const { uc, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n expect(labelDrop.draggingID).toEqual(\"labelDrop1\");\r\n\r\n await uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(labelDrop.draggingID).toBeUndefined();\r\n });\r\n\r\n it(\"Resets the result after the animation ends\", async () => {\r\n const { uc, labelDrop } = makeTestRig();\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n\r\n expect(labelDrop.draggingID).toEqual(\"labelDrop1\");\r\n\r\n const spy = jest.spyOn(labelDrop, \"resultIsCorrect\", \"set\");\r\n await uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(spy).toHaveBeenCalledWith(undefined);\r\n });\r\n\r\n it(\"Sets mode to review if correct if there are no more labels after the animation has completed\", async () => {\r\n const { uc, labelDrop, baseApp, mockPick } = makeTestRig();\r\n\r\n expect(baseApp.isReviewing).toEqual(false);\r\n\r\n const mockPickResult: SceneRayPick = {\r\n hit: true,\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n appObjectID: \"appObj\",\r\n };\r\n mockPick.mockReturnValue(mockPickResult);\r\n\r\n labelDrop.getRemainingLabelDrops = jest.fn().mockReturnValue([]);\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(true);\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n await uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(baseApp.isReviewing).toEqual(true);\r\n });\r\n\r\n it(\"Does not set the mode to review if there are more labels\", () => {\r\n const { uc, labelDrop, baseApp } = makeTestRig();\r\n\r\n expect(baseApp.isReviewing).toEqual(false);\r\n\r\n labelDrop.getRemainingLabelDrops = jest\r\n .fn()\r\n .mockReturnValue([\"anbotherLabel\"]);\r\n labelDrop.submitLabelDrop = jest.fn().mockReturnValue(true);\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n uc.releaseDrag(ParametricLine.Forward());\r\n\r\n expect(baseApp.isReviewing).toEqual(false);\r\n });\r\n\r\n it(\"Cancels any running animations on initialization\", () => {\r\n const { uc, labelDrop, mockDropAnimation } = makeTestRig();\r\n\r\n labelDrop.getRemainingLabelDrops = jest.fn().mockReturnValue([]);\r\n\r\n uc.initializeDrag(\"labelDrop1\", ParametricLine.Forward());\r\n uc.releaseDrag(ParametricLine.Forward());\r\n expect(mockDropAnimation.start).toHaveBeenCalled();\r\n\r\n uc.initializeDrag(\"labelDrop2\", ParametricLine.Forward());\r\n\r\n expect(mockDropAnimation.cancel).toHaveBeenCalled();\r\n });\r\n});\r\n"]}
|
|
@@ -11,6 +11,8 @@ function makeTestRig() {
|
|
|
11
11
|
const registerSpy = jest.spyOn(appObjects, "registerSingleton");
|
|
12
12
|
const undo = (0, UndoRedoEntity_1.makeUndoRedoEntity)(appObjects.getOrCreate("Undo"));
|
|
13
13
|
const mockDispatchStateChange = (0, MockDispatchStateChange_1.makeMockDispatchStateChange)(appObjects);
|
|
14
|
+
const doDispatchMock = jest.fn();
|
|
15
|
+
mockDispatchStateChange.doDispatch = doDispatchMock;
|
|
14
16
|
const labelDropAO = appObjects.getOrCreate("repo");
|
|
15
17
|
const repo = (0, LabelDropRepo_1.makeLabelDropRepo)(labelDropAO);
|
|
16
18
|
const mockConfirm = (0, MockShowConfirm_1.makeMockShowConfirmUC)(appObjects);
|
|
@@ -27,7 +29,7 @@ function makeTestRig() {
|
|
|
27
29
|
editLabelDropUC,
|
|
28
30
|
dropItem,
|
|
29
31
|
mockConfirm,
|
|
30
|
-
|
|
32
|
+
doDispatchMock,
|
|
31
33
|
registerSpy,
|
|
32
34
|
undo,
|
|
33
35
|
};
|
|
@@ -122,26 +124,26 @@ describe("Edit Label Drop UC", () => {
|
|
|
122
124
|
expect(repo.isEditingNewAnswer).toEqual(false);
|
|
123
125
|
});
|
|
124
126
|
it("Dispatches a state change when finishEditing is called and there is a change", () => {
|
|
125
|
-
const { editLabelDropUC, dropItem,
|
|
127
|
+
const { editLabelDropUC, dropItem, doDispatchMock } = makeTestRig();
|
|
126
128
|
editLabelDropUC.start(dropItem.id);
|
|
127
129
|
dropItem.label = "new label";
|
|
128
|
-
|
|
130
|
+
doDispatchMock.mockClear();
|
|
129
131
|
editLabelDropUC.finish();
|
|
130
|
-
expect(
|
|
132
|
+
expect(doDispatchMock).toHaveBeenCalled();
|
|
131
133
|
});
|
|
132
134
|
it("Does not dispatch a state change when finishEditing is called and there is no change", () => {
|
|
133
|
-
const { editLabelDropUC, dropItem,
|
|
135
|
+
const { editLabelDropUC, dropItem, doDispatchMock } = makeTestRig();
|
|
134
136
|
editLabelDropUC.start(dropItem.id);
|
|
135
|
-
|
|
137
|
+
doDispatchMock.mockClear();
|
|
136
138
|
editLabelDropUC.finish();
|
|
137
|
-
expect(
|
|
139
|
+
expect(doDispatchMock).not.toHaveBeenCalled();
|
|
138
140
|
});
|
|
139
141
|
it("Dispatches a state change when finis is called on a newly created label drop answer", () => {
|
|
140
|
-
const { editLabelDropUC,
|
|
142
|
+
const { editLabelDropUC, doDispatchMock } = makeTestRig();
|
|
141
143
|
editLabelDropUC.start();
|
|
142
|
-
|
|
144
|
+
doDispatchMock.mockClear();
|
|
143
145
|
editLabelDropUC.finish();
|
|
144
|
-
expect(
|
|
146
|
+
expect(doDispatchMock).toHaveBeenCalled();
|
|
145
147
|
});
|
|
146
148
|
it("Should not show confirmation dialog if there is no change", () => {
|
|
147
149
|
const { editLabelDropUC, dropItem, mockConfirm } = makeTestRig();
|
|
@@ -174,25 +176,25 @@ describe("Edit Label Drop UC", () => {
|
|
|
174
176
|
expect(mockConfirm.showConfirm).toHaveBeenCalled();
|
|
175
177
|
});
|
|
176
178
|
it("Can undo and redo changes to existing", () => {
|
|
177
|
-
const { undo, editLabelDropUC, dropItem,
|
|
179
|
+
const { undo, editLabelDropUC, dropItem, doDispatchMock } = makeTestRig();
|
|
178
180
|
editLabelDropUC.start(dropItem.id);
|
|
179
181
|
dropItem.label = "new label";
|
|
180
182
|
dropItem.addTargetID("obj2");
|
|
181
183
|
editLabelDropUC.finish();
|
|
182
184
|
expect(dropItem.label).toEqual("new label");
|
|
183
185
|
expect(dropItem.targetIds).toEqual(["obj1", "obj2"]);
|
|
184
|
-
|
|
186
|
+
doDispatchMock.mockClear();
|
|
185
187
|
undo.doUndo();
|
|
186
188
|
expect(dropItem.label).toEqual("Test Label");
|
|
187
189
|
expect(dropItem.targetIds).toEqual(["obj1"]);
|
|
188
|
-
expect(
|
|
190
|
+
expect(doDispatchMock).toHaveBeenCalledTimes(1);
|
|
189
191
|
undo.doRedo();
|
|
190
192
|
expect(dropItem.label).toEqual("new label");
|
|
191
193
|
expect(dropItem.targetIds).toEqual(["obj1", "obj2"]);
|
|
192
|
-
expect(
|
|
194
|
+
expect(doDispatchMock).toHaveBeenCalledTimes(2);
|
|
193
195
|
});
|
|
194
196
|
it("Can undo and redo changes to new item", () => {
|
|
195
|
-
const { undo, editLabelDropUC,
|
|
197
|
+
const { undo, editLabelDropUC, doDispatchMock, repo } = makeTestRig();
|
|
196
198
|
editLabelDropUC.start();
|
|
197
199
|
const newItem = repo.getForAppObject(repo.editingID);
|
|
198
200
|
const newItemId = newItem.id;
|
|
@@ -202,15 +204,15 @@ describe("Edit Label Drop UC", () => {
|
|
|
202
204
|
expect(newItem.label).toEqual("A Label");
|
|
203
205
|
expect(newItem.targetIds).toEqual(["obj1"]);
|
|
204
206
|
expect(repo.hasForAppObject(newItemId)).toEqual(true);
|
|
205
|
-
|
|
207
|
+
doDispatchMock.mockClear();
|
|
206
208
|
undo.doUndo();
|
|
207
209
|
expect(repo.hasForAppObject(newItemId)).toEqual(false);
|
|
208
|
-
expect(
|
|
210
|
+
expect(doDispatchMock).toHaveBeenCalledTimes(1);
|
|
209
211
|
undo.doRedo();
|
|
210
212
|
expect(repo.hasForAppObject(newItemId)).toEqual(true);
|
|
211
213
|
expect(repo.getForAppObject(newItemId)?.label).toEqual("A Label");
|
|
212
214
|
expect(repo.getForAppObject(newItemId)?.targetIds).toEqual(["obj1"]);
|
|
213
|
-
expect(
|
|
215
|
+
expect(doDispatchMock).toHaveBeenCalledTimes(2);
|
|
214
216
|
});
|
|
215
217
|
});
|
|
216
218
|
//# sourceMappingURL=EditLabelDropUC.test.js.map
|