@vived/app 5.0.5 → 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.
Files changed (368) hide show
  1. package/dist/cjs/Babylon/Mocks/MockSceneRayPickUC.js +3 -1
  2. package/dist/cjs/Babylon/Mocks/MockSceneRayPickUC.js.map +1 -1
  3. package/dist/cjs/Babylon/UC/SceneRayPickUC.test.js +1 -0
  4. package/dist/cjs/Babylon/UC/SceneRayPickUC.test.js.map +1 -1
  5. package/dist/cjs/BaseApp/UC/EditSlideTextUC.test.js +8 -6
  6. package/dist/cjs/BaseApp/UC/EditSlideTextUC.test.js.map +1 -1
  7. package/dist/cjs/BaseApp/UC/UndoRedoEditSlideText.test.js +10 -6
  8. package/dist/cjs/BaseApp/UC/UndoRedoEditSlideText.test.js.map +1 -1
  9. package/dist/cjs/BaseApp/UC/UpdateContentSizeUC.test.js +8 -6
  10. package/dist/cjs/BaseApp/UC/UpdateContentSizeUC.test.js.map +1 -1
  11. package/dist/cjs/Callouts/Entities/CalloutEntity.js +1 -0
  12. package/dist/cjs/Callouts/Entities/CalloutEntity.js.map +1 -1
  13. package/dist/cjs/Callouts/Entities/CalloutEntity.test.js +1 -1
  14. package/dist/cjs/Callouts/Entities/CalloutEntity.test.js.map +1 -1
  15. package/dist/cjs/Callouts/UC/CreateCalloutUndoRedo.test.js +7 -4
  16. package/dist/cjs/Callouts/UC/CreateCalloutUndoRedo.test.js.map +1 -1
  17. package/dist/cjs/Callouts/UC/DeleteAllCalloutsUC.test.js +7 -4
  18. package/dist/cjs/Callouts/UC/DeleteAllCalloutsUC.test.js.map +1 -1
  19. package/dist/cjs/Callouts/UC/DeleteAllCalloutsUndoRedo.test.js +13 -7
  20. package/dist/cjs/Callouts/UC/DeleteAllCalloutsUndoRedo.test.js.map +1 -1
  21. package/dist/cjs/Callouts/UC/DeleteCallout.test.js +5 -2
  22. package/dist/cjs/Callouts/UC/DeleteCallout.test.js.map +1 -1
  23. package/dist/cjs/Callouts/UC/DeleteCalloutUndoRedo.test.js +9 -7
  24. package/dist/cjs/Callouts/UC/DeleteCalloutUndoRedo.test.js.map +1 -1
  25. package/dist/cjs/Callouts/UC/SetCalloutSizeUC.test.js +7 -5
  26. package/dist/cjs/Callouts/UC/SetCalloutSizeUC.test.js.map +1 -1
  27. package/dist/cjs/Callouts/UC/SetCalloutSizeUndoRedo.test.js +10 -6
  28. package/dist/cjs/Callouts/UC/SetCalloutSizeUndoRedo.test.js.map +1 -1
  29. package/dist/cjs/Callouts/UC/TryAddCallout.test.js +5 -4
  30. package/dist/cjs/Callouts/UC/TryAddCallout.test.js.map +1 -1
  31. package/dist/cjs/Callouts/UC/TryPanLabelUC.test.js +3 -2
  32. package/dist/cjs/Callouts/UC/TryPanLabelUC.test.js.map +1 -1
  33. package/dist/cjs/Challenge/UCs/SetChallengeUC.test.js +11 -9
  34. package/dist/cjs/Challenge/UCs/SetChallengeUC.test.js.map +1 -1
  35. package/dist/cjs/ChannelModel/UC/ClearAllColorOverlayUndoRedo.test.js +13 -7
  36. package/dist/cjs/ChannelModel/UC/ClearAllColorOverlayUndoRedo.test.js.map +1 -1
  37. package/dist/cjs/ChannelModel/UC/ClearModelObjectOverlaysUC.test.js +7 -4
  38. package/dist/cjs/ChannelModel/UC/ClearModelObjectOverlaysUC.test.js.map +1 -1
  39. package/dist/cjs/ChannelModel/UC/SelectChannelModelUC.test.js +5 -2
  40. package/dist/cjs/ChannelModel/UC/SelectChannelModelUC.test.js.map +1 -1
  41. package/dist/cjs/ChannelModel/UC/StickAllChannelModelObjectsUC.test.js +10 -8
  42. package/dist/cjs/ChannelModel/UC/StickAllChannelModelObjectsUC.test.js.map +1 -1
  43. package/dist/cjs/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.test.js +9 -7
  44. package/dist/cjs/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.test.js.map +1 -1
  45. package/dist/cjs/ChannelModel/UC/UnhideAllChannelModelObjectsUC.test.js +7 -5
  46. package/dist/cjs/ChannelModel/UC/UnhideAllChannelModelObjectsUC.test.js.map +1 -1
  47. package/dist/cjs/Dispatcher/Mocks/MockDispatchStateChange.js +3 -3
  48. package/dist/cjs/Dispatcher/Mocks/MockDispatchStateChange.js.map +1 -1
  49. package/dist/cjs/Environment/UCs/SetEnvironmentIntensityUC.test.js +11 -9
  50. package/dist/cjs/Environment/UCs/SetEnvironmentIntensityUC.test.js.map +1 -1
  51. package/dist/cjs/Environment/UCs/SetTexturalEnvironmentUC.test.js +9 -7
  52. package/dist/cjs/Environment/UCs/SetTexturalEnvironmentUC.test.js.map +1 -1
  53. package/dist/cjs/Hideable/UCs/HideUC.test.js +10 -8
  54. package/dist/cjs/Hideable/UCs/HideUC.test.js.map +1 -1
  55. package/dist/cjs/Hideable/UCs/TryHideWithPickUC.test.js +7 -6
  56. package/dist/cjs/Hideable/UCs/TryHideWithPickUC.test.js.map +1 -1
  57. package/dist/cjs/HoverLabel/UseCases/TryShowHoverLabel.test.js +12 -11
  58. package/dist/cjs/HoverLabel/UseCases/TryShowHoverLabel.test.js.map +1 -1
  59. package/dist/cjs/Label/UC/ClearCustomLabelUC.test.js +9 -4
  60. package/dist/cjs/Label/UC/ClearCustomLabelUC.test.js.map +1 -1
  61. package/dist/cjs/Label/UC/ClearCustomLabelUndoRedo.test.js +10 -6
  62. package/dist/cjs/Label/UC/ClearCustomLabelUndoRedo.test.js.map +1 -1
  63. package/dist/cjs/Label/UC/SetCustomLabelUC.test.js +9 -4
  64. package/dist/cjs/Label/UC/SetCustomLabelUC.test.js.map +1 -1
  65. package/dist/cjs/Label/UC/SetCustomLabelUndoRedo.test.js +10 -6
  66. package/dist/cjs/Label/UC/SetCustomLabelUndoRedo.test.js.map +1 -1
  67. package/dist/cjs/LabelDrop/UseCases/DeleteAllLabelDropUC.test.js +9 -7
  68. package/dist/cjs/LabelDrop/UseCases/DeleteAllLabelDropUC.test.js.map +1 -1
  69. package/dist/cjs/LabelDrop/UseCases/DeleteLabelDropUC.test.js +9 -7
  70. package/dist/cjs/LabelDrop/UseCases/DeleteLabelDropUC.test.js.map +1 -1
  71. package/dist/cjs/LabelDrop/UseCases/DragLabelDropUC.test.js +8 -6
  72. package/dist/cjs/LabelDrop/UseCases/DragLabelDropUC.test.js.map +1 -1
  73. package/dist/cjs/LabelDrop/UseCases/DragLabelDropWorldUC.test.js +17 -17
  74. package/dist/cjs/LabelDrop/UseCases/DragLabelDropWorldUC.test.js.map +1 -1
  75. package/dist/cjs/LabelDrop/UseCases/EditLabelDropUC.test.js +20 -18
  76. package/dist/cjs/LabelDrop/UseCases/EditLabelDropUC.test.js.map +1 -1
  77. package/dist/cjs/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js +4 -2
  78. package/dist/cjs/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js.map +1 -1
  79. package/dist/cjs/Landmarks/UseCases/AddLandmarkUndoRedo.test.js +10 -5
  80. package/dist/cjs/Landmarks/UseCases/AddLandmarkUndoRedo.test.js.map +1 -1
  81. package/dist/cjs/Landmarks/UseCases/DeleteAllLandmarksUC.test.js +5 -3
  82. package/dist/cjs/Landmarks/UseCases/DeleteAllLandmarksUC.test.js.map +1 -1
  83. package/dist/cjs/Landmarks/UseCases/DeleteAllLandmarksUndoRedo.test.js +11 -6
  84. package/dist/cjs/Landmarks/UseCases/DeleteAllLandmarksUndoRedo.test.js.map +1 -1
  85. package/dist/cjs/Landmarks/UseCases/DeleteLandmarkUC.test.js +10 -5
  86. package/dist/cjs/Landmarks/UseCases/DeleteLandmarkUC.test.js.map +1 -1
  87. package/dist/cjs/Landmarks/UseCases/DeleteLandmarkUndoRedo.test.js +10 -5
  88. package/dist/cjs/Landmarks/UseCases/DeleteLandmarkUndoRedo.test.js.map +1 -1
  89. package/dist/cjs/Landmarks/UseCases/SetLandmarkSizeUC.test.js +7 -5
  90. package/dist/cjs/Landmarks/UseCases/SetLandmarkSizeUC.test.js.map +1 -1
  91. package/dist/cjs/Landmarks/UseCases/SetLandmarkSizeUndoRedo.test.js +10 -6
  92. package/dist/cjs/Landmarks/UseCases/SetLandmarkSizeUndoRedo.test.js.map +1 -1
  93. package/dist/cjs/Landmarks/UseCases/TryAddNewLandmarkUC.test.js +29 -15
  94. package/dist/cjs/Landmarks/UseCases/TryAddNewLandmarkUC.test.js.map +1 -1
  95. package/dist/cjs/Landmarks/UseCases/TryPreviewLandmarkUC.test.js +4 -3
  96. package/dist/cjs/Landmarks/UseCases/TryPreviewLandmarkUC.test.js.map +1 -1
  97. package/dist/cjs/ObjectPick/UseCases/AddCorrectObjectIdUC.test.js +10 -8
  98. package/dist/cjs/ObjectPick/UseCases/AddCorrectObjectIdUC.test.js.map +1 -1
  99. package/dist/cjs/ObjectPick/UseCases/ClearCorrectObjectIdsUC.test.js +10 -8
  100. package/dist/cjs/ObjectPick/UseCases/ClearCorrectObjectIdsUC.test.js.map +1 -1
  101. package/dist/cjs/ObjectPick/UseCases/RemoveCorrectObjectIdUC.test.js +10 -8
  102. package/dist/cjs/ObjectPick/UseCases/RemoveCorrectObjectIdUC.test.js.map +1 -1
  103. package/dist/cjs/ObjectPick/UseCases/TrySelectObjectPickUC.test.js +18 -15
  104. package/dist/cjs/ObjectPick/UseCases/TrySelectObjectPickUC.test.js.map +1 -1
  105. package/dist/cjs/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js +3 -1
  106. package/dist/cjs/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js.map +1 -1
  107. package/dist/cjs/OverlayColor/UC/SetOverlayColorUC.test.js +9 -4
  108. package/dist/cjs/OverlayColor/UC/SetOverlayColorUC.test.js.map +1 -1
  109. package/dist/cjs/OverlayColor/UC/SetOverlayColorUndoRedo.test.js +10 -6
  110. package/dist/cjs/OverlayColor/UC/SetOverlayColorUndoRedo.test.js.map +1 -1
  111. package/dist/cjs/Question/UC/AddAnswerUndoRedo.test.js +16 -6
  112. package/dist/cjs/Question/UC/AddAnswerUndoRedo.test.js.map +1 -1
  113. package/dist/cjs/Question/UC/AddQuestionAnswerUC.test.js +14 -5
  114. package/dist/cjs/Question/UC/AddQuestionAnswerUC.test.js.map +1 -1
  115. package/dist/cjs/Question/UC/DeleteAnswerUndoRedo.test.js +17 -6
  116. package/dist/cjs/Question/UC/DeleteAnswerUndoRedo.test.js.map +1 -1
  117. package/dist/cjs/Question/UC/DeleteQuestionAnswerUC.test.js +9 -6
  118. package/dist/cjs/Question/UC/DeleteQuestionAnswerUC.test.js.map +1 -1
  119. package/dist/cjs/Question/UC/SetAnswerFeedbackUC.test.js +9 -6
  120. package/dist/cjs/Question/UC/SetAnswerFeedbackUC.test.js.map +1 -1
  121. package/dist/cjs/Question/UC/SetAnswerFeedbackUndoRedo.test.js +10 -6
  122. package/dist/cjs/Question/UC/SetAnswerFeedbackUndoRedo.test.js.map +1 -1
  123. package/dist/cjs/Question/UC/SetAnswerTextUC.test.js +9 -6
  124. package/dist/cjs/Question/UC/SetAnswerTextUC.test.js.map +1 -1
  125. package/dist/cjs/Question/UC/SetAnswerTextUndoRedo.test.js +10 -6
  126. package/dist/cjs/Question/UC/SetAnswerTextUndoRedo.test.js.map +1 -1
  127. package/dist/cjs/Question/UC/ToggleIsCorrectUndoRedo.test.js +10 -6
  128. package/dist/cjs/Question/UC/ToggleIsCorrectUndoRedo.test.js.map +1 -1
  129. package/dist/cjs/Question/UC/ToggleQuestionAnswerIsCorrect.test.js +7 -4
  130. package/dist/cjs/Question/UC/ToggleQuestionAnswerIsCorrect.test.js.map +1 -1
  131. package/dist/cjs/RequestHandler/UC/SetAppStateUC.test.js +2 -0
  132. package/dist/cjs/RequestHandler/UC/SetAppStateUC.test.js.map +1 -1
  133. package/dist/cjs/SceneRoot/UC/BumpSceneRootScaleAboutPixelPoint.test.js +7 -4
  134. package/dist/cjs/SceneRoot/UC/BumpSceneRootScaleAboutPixelPoint.test.js.map +1 -1
  135. package/dist/cjs/SceneRoot/UC/DragScaleSceneRoot.test.js +9 -6
  136. package/dist/cjs/SceneRoot/UC/DragScaleSceneRoot.test.js.map +1 -1
  137. package/dist/cjs/SceneRoot/UC/OrbitSceneRoot.test.js +16 -7
  138. package/dist/cjs/SceneRoot/UC/OrbitSceneRoot.test.js.map +1 -1
  139. package/dist/cjs/SceneRoot/UC/PanSceneRoot.test.js +9 -6
  140. package/dist/cjs/SceneRoot/UC/PanSceneRoot.test.js.map +1 -1
  141. package/dist/cjs/SceneRoot/UC/PinchSceneRoot.test.js +9 -6
  142. package/dist/cjs/SceneRoot/UC/PinchSceneRoot.test.js.map +1 -1
  143. package/dist/cjs/Selection/UC/HoverAppObjectUC.test.js +3 -3
  144. package/dist/cjs/Selection/UC/HoverAppObjectUC.test.js.map +1 -1
  145. package/dist/cjs/Selection/UC/PressAppObjectUC.test.js +3 -3
  146. package/dist/cjs/Selection/UC/PressAppObjectUC.test.js.map +1 -1
  147. package/dist/cjs/Selection/UC/SelectAppObjectUC.test.js +3 -3
  148. package/dist/cjs/Selection/UC/SelectAppObjectUC.test.js.map +1 -1
  149. package/dist/cjs/Stick/UCs/MoveTransformWithStickUC.test.js +9 -7
  150. package/dist/cjs/Stick/UCs/MoveTransformWithStickUC.test.js.map +1 -1
  151. package/dist/cjs/Stick/UCs/PanTransformWithStickUC.test.js +13 -11
  152. package/dist/cjs/Stick/UCs/PanTransformWithStickUC.test.js.map +1 -1
  153. package/dist/cjs/Stick/UCs/StickUC.test.js +9 -7
  154. package/dist/cjs/Stick/UCs/StickUC.test.js.map +1 -1
  155. package/dist/cjs/Stick/UCs/TryStickAppObjectUC.test.js +7 -6
  156. package/dist/cjs/Stick/UCs/TryStickAppObjectUC.test.js.map +1 -1
  157. package/dist/cjs/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js +5 -3
  158. package/dist/cjs/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js.map +1 -1
  159. package/dist/cjs/Transform3D/UC/MoveTransformUC.test.js +21 -11
  160. package/dist/cjs/Transform3D/UC/MoveTransformUC.test.js.map +1 -1
  161. package/dist/cjs/Transform3D/UC/MoveTransformUndoRedo.test.js +10 -6
  162. package/dist/cjs/Transform3D/UC/MoveTransformUndoRedo.test.js.map +1 -1
  163. package/dist/cjs/Transform3D/UC/PanTransformUC.test.js +13 -11
  164. package/dist/cjs/Transform3D/UC/PanTransformUC.test.js.map +1 -1
  165. package/dist/cjs/Transform3D/UC/PinchTransform.test.js +7 -5
  166. package/dist/cjs/Transform3D/UC/PinchTransform.test.js.map +1 -1
  167. package/dist/cjs/Transform3D/UC/RayPanScaleTransform.test.js +9 -7
  168. package/dist/cjs/Transform3D/UC/RayPanScaleTransform.test.js.map +1 -1
  169. package/dist/cjs/Transform3D/UC/ScaleTransform.test.js +22 -18
  170. package/dist/cjs/Transform3D/UC/ScaleTransform.test.js.map +1 -1
  171. package/dist/cjs/Transform3D/UC/StylusMoveTransformUC.test.js +11 -6
  172. package/dist/cjs/Transform3D/UC/StylusMoveTransformUC.test.js.map +1 -1
  173. package/dist/cjs/Transform3D/UC/TryMoveTransformUC.test.js +3 -1
  174. package/dist/cjs/Transform3D/UC/TryMoveTransformUC.test.js.map +1 -1
  175. package/dist/cjs/Transform3D/UC/TryPanTransformUC.test.js +25 -24
  176. package/dist/cjs/Transform3D/UC/TryPanTransformUC.test.js.map +1 -1
  177. package/dist/cjs/Transparency/UCs/MakeTransparentUC.test.js +10 -8
  178. package/dist/cjs/Transparency/UCs/MakeTransparentUC.test.js.map +1 -1
  179. package/dist/cjs/UndoRedo/Mocks/MockUndoRedo.js +4 -4
  180. package/dist/cjs/UndoRedo/Mocks/MockUndoRedo.js.map +1 -1
  181. package/dist/esm/Babylon/Mocks/MockSceneRayPickUC.js +3 -1
  182. package/dist/esm/Babylon/Mocks/MockSceneRayPickUC.js.map +1 -1
  183. package/dist/esm/Babylon/UC/SceneRayPickUC.test.js +1 -0
  184. package/dist/esm/Babylon/UC/SceneRayPickUC.test.js.map +1 -1
  185. package/dist/esm/BaseApp/UC/EditSlideTextUC.test.js +9 -7
  186. package/dist/esm/BaseApp/UC/EditSlideTextUC.test.js.map +1 -1
  187. package/dist/esm/BaseApp/UC/UndoRedoEditSlideText.test.js +10 -6
  188. package/dist/esm/BaseApp/UC/UndoRedoEditSlideText.test.js.map +1 -1
  189. package/dist/esm/BaseApp/UC/UpdateContentSizeUC.test.js +8 -6
  190. package/dist/esm/BaseApp/UC/UpdateContentSizeUC.test.js.map +1 -1
  191. package/dist/esm/Callouts/Entities/CalloutEntity.js +5 -4
  192. package/dist/esm/Callouts/Entities/CalloutEntity.js.map +1 -1
  193. package/dist/esm/Callouts/Entities/CalloutEntity.test.js +1 -1
  194. package/dist/esm/Callouts/Entities/CalloutEntity.test.js.map +1 -1
  195. package/dist/esm/Callouts/UC/CreateCalloutUndoRedo.test.js +7 -4
  196. package/dist/esm/Callouts/UC/CreateCalloutUndoRedo.test.js.map +1 -1
  197. package/dist/esm/Callouts/UC/DeleteAllCalloutsUC.test.js +7 -4
  198. package/dist/esm/Callouts/UC/DeleteAllCalloutsUC.test.js.map +1 -1
  199. package/dist/esm/Callouts/UC/DeleteAllCalloutsUndoRedo.test.js +13 -7
  200. package/dist/esm/Callouts/UC/DeleteAllCalloutsUndoRedo.test.js.map +1 -1
  201. package/dist/esm/Callouts/UC/DeleteCallout.test.js +5 -2
  202. package/dist/esm/Callouts/UC/DeleteCallout.test.js.map +1 -1
  203. package/dist/esm/Callouts/UC/DeleteCalloutUndoRedo.test.js +9 -7
  204. package/dist/esm/Callouts/UC/DeleteCalloutUndoRedo.test.js.map +1 -1
  205. package/dist/esm/Callouts/UC/SetCalloutSizeUC.test.js +7 -5
  206. package/dist/esm/Callouts/UC/SetCalloutSizeUC.test.js.map +1 -1
  207. package/dist/esm/Callouts/UC/SetCalloutSizeUndoRedo.test.js +10 -6
  208. package/dist/esm/Callouts/UC/SetCalloutSizeUndoRedo.test.js.map +1 -1
  209. package/dist/esm/Callouts/UC/TryAddCallout.test.js +5 -4
  210. package/dist/esm/Callouts/UC/TryAddCallout.test.js.map +1 -1
  211. package/dist/esm/Callouts/UC/TryPanLabelUC.test.js +3 -2
  212. package/dist/esm/Callouts/UC/TryPanLabelUC.test.js.map +1 -1
  213. package/dist/esm/Challenge/UCs/SetChallengeUC.test.js +11 -9
  214. package/dist/esm/Challenge/UCs/SetChallengeUC.test.js.map +1 -1
  215. package/dist/esm/ChannelModel/UC/ClearAllColorOverlayUndoRedo.test.js +13 -7
  216. package/dist/esm/ChannelModel/UC/ClearAllColorOverlayUndoRedo.test.js.map +1 -1
  217. package/dist/esm/ChannelModel/UC/ClearModelObjectOverlaysUC.test.js +7 -4
  218. package/dist/esm/ChannelModel/UC/ClearModelObjectOverlaysUC.test.js.map +1 -1
  219. package/dist/esm/ChannelModel/UC/SelectChannelModelUC.test.js +5 -2
  220. package/dist/esm/ChannelModel/UC/SelectChannelModelUC.test.js.map +1 -1
  221. package/dist/esm/ChannelModel/UC/StickAllChannelModelObjectsUC.test.js +10 -8
  222. package/dist/esm/ChannelModel/UC/StickAllChannelModelObjectsUC.test.js.map +1 -1
  223. package/dist/esm/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.test.js +9 -7
  224. package/dist/esm/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.test.js.map +1 -1
  225. package/dist/esm/ChannelModel/UC/UnhideAllChannelModelObjectsUC.test.js +7 -5
  226. package/dist/esm/ChannelModel/UC/UnhideAllChannelModelObjectsUC.test.js.map +1 -1
  227. package/dist/esm/Dispatcher/Mocks/MockDispatchStateChange.js +3 -3
  228. package/dist/esm/Dispatcher/Mocks/MockDispatchStateChange.js.map +1 -1
  229. package/dist/esm/Environment/UCs/SetEnvironmentIntensityUC.test.js +11 -9
  230. package/dist/esm/Environment/UCs/SetEnvironmentIntensityUC.test.js.map +1 -1
  231. package/dist/esm/Environment/UCs/SetTexturalEnvironmentUC.test.js +9 -7
  232. package/dist/esm/Environment/UCs/SetTexturalEnvironmentUC.test.js.map +1 -1
  233. package/dist/esm/Hideable/UCs/HideUC.test.js +10 -8
  234. package/dist/esm/Hideable/UCs/HideUC.test.js.map +1 -1
  235. package/dist/esm/Hideable/UCs/TryHideWithPickUC.test.js +7 -6
  236. package/dist/esm/Hideable/UCs/TryHideWithPickUC.test.js.map +1 -1
  237. package/dist/esm/HoverLabel/UseCases/TryShowHoverLabel.test.js +12 -11
  238. package/dist/esm/HoverLabel/UseCases/TryShowHoverLabel.test.js.map +1 -1
  239. package/dist/esm/Label/UC/ClearCustomLabelUC.test.js +9 -4
  240. package/dist/esm/Label/UC/ClearCustomLabelUC.test.js.map +1 -1
  241. package/dist/esm/Label/UC/ClearCustomLabelUndoRedo.test.js +10 -6
  242. package/dist/esm/Label/UC/ClearCustomLabelUndoRedo.test.js.map +1 -1
  243. package/dist/esm/Label/UC/SetCustomLabelUC.test.js +9 -4
  244. package/dist/esm/Label/UC/SetCustomLabelUC.test.js.map +1 -1
  245. package/dist/esm/Label/UC/SetCustomLabelUndoRedo.test.js +10 -6
  246. package/dist/esm/Label/UC/SetCustomLabelUndoRedo.test.js.map +1 -1
  247. package/dist/esm/LabelDrop/UseCases/DeleteAllLabelDropUC.test.js +9 -7
  248. package/dist/esm/LabelDrop/UseCases/DeleteAllLabelDropUC.test.js.map +1 -1
  249. package/dist/esm/LabelDrop/UseCases/DeleteLabelDropUC.test.js +9 -7
  250. package/dist/esm/LabelDrop/UseCases/DeleteLabelDropUC.test.js.map +1 -1
  251. package/dist/esm/LabelDrop/UseCases/DragLabelDropUC.test.js +8 -6
  252. package/dist/esm/LabelDrop/UseCases/DragLabelDropUC.test.js.map +1 -1
  253. package/dist/esm/LabelDrop/UseCases/DragLabelDropWorldUC.test.js +17 -17
  254. package/dist/esm/LabelDrop/UseCases/DragLabelDropWorldUC.test.js.map +1 -1
  255. package/dist/esm/LabelDrop/UseCases/EditLabelDropUC.test.js +20 -18
  256. package/dist/esm/LabelDrop/UseCases/EditLabelDropUC.test.js.map +1 -1
  257. package/dist/esm/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js +4 -2
  258. package/dist/esm/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js.map +1 -1
  259. package/dist/esm/Landmarks/UseCases/AddLandmarkUndoRedo.test.js +10 -5
  260. package/dist/esm/Landmarks/UseCases/AddLandmarkUndoRedo.test.js.map +1 -1
  261. package/dist/esm/Landmarks/UseCases/DeleteAllLandmarksUC.test.js +5 -3
  262. package/dist/esm/Landmarks/UseCases/DeleteAllLandmarksUC.test.js.map +1 -1
  263. package/dist/esm/Landmarks/UseCases/DeleteAllLandmarksUndoRedo.test.js +11 -6
  264. package/dist/esm/Landmarks/UseCases/DeleteAllLandmarksUndoRedo.test.js.map +1 -1
  265. package/dist/esm/Landmarks/UseCases/DeleteLandmarkUC.test.js +10 -5
  266. package/dist/esm/Landmarks/UseCases/DeleteLandmarkUC.test.js.map +1 -1
  267. package/dist/esm/Landmarks/UseCases/DeleteLandmarkUndoRedo.test.js +10 -5
  268. package/dist/esm/Landmarks/UseCases/DeleteLandmarkUndoRedo.test.js.map +1 -1
  269. package/dist/esm/Landmarks/UseCases/SetLandmarkSizeUC.test.js +7 -5
  270. package/dist/esm/Landmarks/UseCases/SetLandmarkSizeUC.test.js.map +1 -1
  271. package/dist/esm/Landmarks/UseCases/SetLandmarkSizeUndoRedo.test.js +10 -6
  272. package/dist/esm/Landmarks/UseCases/SetLandmarkSizeUndoRedo.test.js.map +1 -1
  273. package/dist/esm/Landmarks/UseCases/TryAddNewLandmarkUC.test.js +29 -15
  274. package/dist/esm/Landmarks/UseCases/TryAddNewLandmarkUC.test.js.map +1 -1
  275. package/dist/esm/Landmarks/UseCases/TryPreviewLandmarkUC.test.js +4 -3
  276. package/dist/esm/Landmarks/UseCases/TryPreviewLandmarkUC.test.js.map +1 -1
  277. package/dist/esm/ObjectPick/UseCases/AddCorrectObjectIdUC.test.js +10 -8
  278. package/dist/esm/ObjectPick/UseCases/AddCorrectObjectIdUC.test.js.map +1 -1
  279. package/dist/esm/ObjectPick/UseCases/ClearCorrectObjectIdsUC.test.js +10 -8
  280. package/dist/esm/ObjectPick/UseCases/ClearCorrectObjectIdsUC.test.js.map +1 -1
  281. package/dist/esm/ObjectPick/UseCases/RemoveCorrectObjectIdUC.test.js +10 -8
  282. package/dist/esm/ObjectPick/UseCases/RemoveCorrectObjectIdUC.test.js.map +1 -1
  283. package/dist/esm/ObjectPick/UseCases/TrySelectObjectPickUC.test.js +18 -15
  284. package/dist/esm/ObjectPick/UseCases/TrySelectObjectPickUC.test.js.map +1 -1
  285. package/dist/esm/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js +3 -1
  286. package/dist/esm/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js.map +1 -1
  287. package/dist/esm/OverlayColor/UC/SetOverlayColorUC.test.js +9 -4
  288. package/dist/esm/OverlayColor/UC/SetOverlayColorUC.test.js.map +1 -1
  289. package/dist/esm/OverlayColor/UC/SetOverlayColorUndoRedo.test.js +10 -6
  290. package/dist/esm/OverlayColor/UC/SetOverlayColorUndoRedo.test.js.map +1 -1
  291. package/dist/esm/Question/UC/AddAnswerUndoRedo.test.js +16 -6
  292. package/dist/esm/Question/UC/AddAnswerUndoRedo.test.js.map +1 -1
  293. package/dist/esm/Question/UC/AddQuestionAnswerUC.test.js +14 -5
  294. package/dist/esm/Question/UC/AddQuestionAnswerUC.test.js.map +1 -1
  295. package/dist/esm/Question/UC/DeleteAnswerUndoRedo.test.js +17 -6
  296. package/dist/esm/Question/UC/DeleteAnswerUndoRedo.test.js.map +1 -1
  297. package/dist/esm/Question/UC/DeleteQuestionAnswerUC.test.js +9 -6
  298. package/dist/esm/Question/UC/DeleteQuestionAnswerUC.test.js.map +1 -1
  299. package/dist/esm/Question/UC/SetAnswerFeedbackUC.test.js +9 -6
  300. package/dist/esm/Question/UC/SetAnswerFeedbackUC.test.js.map +1 -1
  301. package/dist/esm/Question/UC/SetAnswerFeedbackUndoRedo.test.js +10 -6
  302. package/dist/esm/Question/UC/SetAnswerFeedbackUndoRedo.test.js.map +1 -1
  303. package/dist/esm/Question/UC/SetAnswerTextUC.test.js +9 -6
  304. package/dist/esm/Question/UC/SetAnswerTextUC.test.js.map +1 -1
  305. package/dist/esm/Question/UC/SetAnswerTextUndoRedo.test.js +10 -6
  306. package/dist/esm/Question/UC/SetAnswerTextUndoRedo.test.js.map +1 -1
  307. package/dist/esm/Question/UC/ToggleIsCorrectUndoRedo.test.js +10 -6
  308. package/dist/esm/Question/UC/ToggleIsCorrectUndoRedo.test.js.map +1 -1
  309. package/dist/esm/Question/UC/ToggleQuestionAnswerIsCorrect.test.js +7 -4
  310. package/dist/esm/Question/UC/ToggleQuestionAnswerIsCorrect.test.js.map +1 -1
  311. package/dist/esm/RequestHandler/UC/SetAppStateUC.test.js +2 -0
  312. package/dist/esm/RequestHandler/UC/SetAppStateUC.test.js.map +1 -1
  313. package/dist/esm/SceneRoot/UC/BumpSceneRootScaleAboutPixelPoint.test.js +7 -4
  314. package/dist/esm/SceneRoot/UC/BumpSceneRootScaleAboutPixelPoint.test.js.map +1 -1
  315. package/dist/esm/SceneRoot/UC/DragScaleSceneRoot.test.js +9 -6
  316. package/dist/esm/SceneRoot/UC/DragScaleSceneRoot.test.js.map +1 -1
  317. package/dist/esm/SceneRoot/UC/OrbitSceneRoot.test.js +16 -7
  318. package/dist/esm/SceneRoot/UC/OrbitSceneRoot.test.js.map +1 -1
  319. package/dist/esm/SceneRoot/UC/PanSceneRoot.test.js +9 -6
  320. package/dist/esm/SceneRoot/UC/PanSceneRoot.test.js.map +1 -1
  321. package/dist/esm/SceneRoot/UC/PinchSceneRoot.test.js +9 -6
  322. package/dist/esm/SceneRoot/UC/PinchSceneRoot.test.js.map +1 -1
  323. package/dist/esm/Selection/UC/HoverAppObjectUC.test.js +3 -3
  324. package/dist/esm/Selection/UC/HoverAppObjectUC.test.js.map +1 -1
  325. package/dist/esm/Selection/UC/PressAppObjectUC.test.js +3 -3
  326. package/dist/esm/Selection/UC/PressAppObjectUC.test.js.map +1 -1
  327. package/dist/esm/Selection/UC/SelectAppObjectUC.test.js +3 -3
  328. package/dist/esm/Selection/UC/SelectAppObjectUC.test.js.map +1 -1
  329. package/dist/esm/Stick/UCs/MoveTransformWithStickUC.test.js +9 -7
  330. package/dist/esm/Stick/UCs/MoveTransformWithStickUC.test.js.map +1 -1
  331. package/dist/esm/Stick/UCs/PanTransformWithStickUC.test.js +13 -11
  332. package/dist/esm/Stick/UCs/PanTransformWithStickUC.test.js.map +1 -1
  333. package/dist/esm/Stick/UCs/StickUC.test.js +9 -7
  334. package/dist/esm/Stick/UCs/StickUC.test.js.map +1 -1
  335. package/dist/esm/Stick/UCs/TryStickAppObjectUC.test.js +7 -6
  336. package/dist/esm/Stick/UCs/TryStickAppObjectUC.test.js.map +1 -1
  337. package/dist/esm/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js +5 -3
  338. package/dist/esm/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js.map +1 -1
  339. package/dist/esm/Transform3D/UC/MoveTransformUC.test.js +21 -11
  340. package/dist/esm/Transform3D/UC/MoveTransformUC.test.js.map +1 -1
  341. package/dist/esm/Transform3D/UC/MoveTransformUndoRedo.test.js +10 -6
  342. package/dist/esm/Transform3D/UC/MoveTransformUndoRedo.test.js.map +1 -1
  343. package/dist/esm/Transform3D/UC/PanTransformUC.test.js +13 -11
  344. package/dist/esm/Transform3D/UC/PanTransformUC.test.js.map +1 -1
  345. package/dist/esm/Transform3D/UC/PinchTransform.test.js +7 -5
  346. package/dist/esm/Transform3D/UC/PinchTransform.test.js.map +1 -1
  347. package/dist/esm/Transform3D/UC/RayPanScaleTransform.test.js +9 -7
  348. package/dist/esm/Transform3D/UC/RayPanScaleTransform.test.js.map +1 -1
  349. package/dist/esm/Transform3D/UC/ScaleTransform.test.js +22 -18
  350. package/dist/esm/Transform3D/UC/ScaleTransform.test.js.map +1 -1
  351. package/dist/esm/Transform3D/UC/StylusMoveTransformUC.test.js +11 -6
  352. package/dist/esm/Transform3D/UC/StylusMoveTransformUC.test.js.map +1 -1
  353. package/dist/esm/Transform3D/UC/TryMoveTransformUC.test.js +3 -1
  354. package/dist/esm/Transform3D/UC/TryMoveTransformUC.test.js.map +1 -1
  355. package/dist/esm/Transform3D/UC/TryPanTransformUC.test.js +4 -3
  356. package/dist/esm/Transform3D/UC/TryPanTransformUC.test.js.map +1 -1
  357. package/dist/esm/Transparency/UCs/MakeTransparentUC.test.js +10 -8
  358. package/dist/esm/Transparency/UCs/MakeTransparentUC.test.js.map +1 -1
  359. package/dist/esm/UndoRedo/Mocks/MockUndoRedo.js +4 -4
  360. package/dist/esm/UndoRedo/Mocks/MockUndoRedo.js.map +1 -1
  361. package/dist/types/Babylon/Mocks/MockSceneRayPickUC.d.ts +1 -1
  362. package/dist/types/Babylon/Mocks/MockSceneRayPickUC.d.ts.map +1 -1
  363. package/dist/types/Callouts/Entities/CalloutEntity.d.ts.map +1 -1
  364. package/dist/types/Dispatcher/Mocks/MockDispatchStateChange.d.ts +3 -3
  365. package/dist/types/Dispatcher/Mocks/MockDispatchStateChange.d.ts.map +1 -1
  366. package/dist/types/UndoRedo/Mocks/MockUndoRedo.d.ts +4 -4
  367. package/dist/types/UndoRedo/Mocks/MockUndoRedo.d.ts.map +1 -1
  368. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PanTransformWithStickUC.test.js","sourceRoot":"","sources":["../../../../src/Stick/UCs/PanTransformWithStickUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\r\nimport {\r\n makeMockPixelToSceneRayUC,\r\n makeMockSceneRayPickUC,\r\n} from \"../../Babylon/Mocks\";\r\nimport { PixelToSceneRayUC } from \"../../Babylon/UC/PixelToSceneRayUC\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeTransform3D } from \"../../Transform3D/Entities/Transform3D\";\r\nimport { makeUndoRedoEntity } from \"../../UndoRedo/Entities/UndoRedoEntity\";\r\nimport { makeStickableEntity } from \"../Entities/Stickable\";\r\nimport { makePanTransformWithStickUC } from \"./PanTransformWithStickUC\";\r\nimport { makeTryPickStickTargetUC } from \"./TryPickStickTarget\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ao = appObjects.getOrCreate(\"transform\");\r\n const transform = makeTransform3D(ao);\r\n\r\n const panUC = makePanTransformWithStickUC(ao);\r\n const stickable = makeStickableEntity(ao);\r\n const tryPickTarget = makeTryPickStickTargetUC(ao);\r\n tryPickTarget.tryPick = () => {\r\n return true;\r\n };\r\n\r\n const mockPick = makeMockSceneRayPickUC(appObjects);\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const mockPixelRay = makeMockPixelToSceneRayUC(\r\n appObjects\r\n ) as PixelToSceneRayUC;\r\n\r\n mockPixelRay.pixelToSceneRay = mockPicker;\r\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\r\n\r\n return {\r\n panUC,\r\n transform,\r\n mockPick,\r\n mockDispatch,\r\n appObjects,\r\n mockPixelRay,\r\n undo,\r\n stickable,\r\n tryPickTarget,\r\n };\r\n}\r\n\r\nfunction mockPicker(pixel: Vector2): ParametricLine {\r\n return ParametricLine.FromPointDirection(\r\n new Vector3(pixel.x, pixel.y, 3),\r\n Vector3.Forward()\r\n );\r\n}\r\n\r\ndescribe(\"Pan Transform With Stick UC\", () => {\r\n it(\"Moves the transform\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(1, 2, 0));\r\n });\r\n\r\n it(\"Moves the transform relative to the initial position\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(10, 10, 10);\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(11, 12, 10));\r\n });\r\n\r\n it(\"Dispatches a state change if the position has changed since init\", () => {\r\n const { transform, panUC, mockDispatch } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n transform.worldPosition = new Vector3(4, 5, 6);\r\n panUC.finish();\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch a state change if the position has not changed\", () => {\r\n const { transform, panUC, mockDispatch } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.finish();\r\n\r\n expect(mockDispatch.doDispatch).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch state change if dispatchStateChangeOnComplete is false\", () => {\r\n const { transform, panUC, mockDispatch } = makeTestRig();\r\n\r\n panUC.dispatchStateChangeOnComplete = false;\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n transform.worldPosition = new Vector3(4, 5, 6);\r\n panUC.finish();\r\n\r\n expect(mockDispatch.doDispatch).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Doesn't not move the transform after cancel\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.cancelPan();\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(Vector3.Zero());\r\n });\r\n\r\n it(\"Limits the minimum X\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.minX = 0;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(-1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(0, 2, 0));\r\n });\r\n\r\n it(\"Limits the maximum X\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.maxX = 0;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(0, 2, 0));\r\n });\r\n\r\n it(\"Limits the minimum Y\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.minY = 0;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(-1, -2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(-1, 0, 0));\r\n });\r\n\r\n it(\"Limits the maximum Y\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.maxY = 0;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(1, 0, 0));\r\n });\r\n\r\n it(\"Does not update if disabled\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n transform.worldPosition = Vector3.Zero();\r\n\r\n panUC.enabled = false;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n\r\n expect(transform.worldPosition).toEqual(Vector3.Zero());\r\n });\r\n\r\n it(\"Submits an undo on stop\", () => {\r\n const { panUC, undo } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n panUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(true);\r\n });\r\n\r\n it(\"Does not submit an undo on stop if flag is set to false\", () => {\r\n const { panUC, undo } = makeTestRig();\r\n panUC.submitUndoOnComplete = false;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n panUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Does not submit an undo on stop if there was no movement\", () => {\r\n const { panUC, undo } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Wires up the dispatch for undo and redo\", () => {\r\n const { panUC, undo, mockDispatch } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n panUC.finish();\r\n\r\n mockDispatch.doDispatch.mockClear();\r\n\r\n undo.doUndo();\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(1);\r\n\r\n undo.doRedo();\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(2);\r\n });\r\n\r\n it(\"Undoes and redoes the move\", () => {\r\n const { panUC, undo, transform } = makeTestRig();\r\n\r\n const initialPos = transform.localPosition;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n panUC.finish();\r\n\r\n const fianlPos = transform.localPosition;\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localPosition).toEqual(initialPos);\r\n\r\n undo.doRedo();\r\n\r\n expect(transform.localPosition).toEqual(fianlPos);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"PanTransformWithStickUC.test.js","sourceRoot":"","sources":["../../../../src/Stick/UCs/PanTransformWithStickUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\r\nimport {\r\n makeMockPixelToSceneRayUC,\r\n makeMockSceneRayPickUC,\r\n} from \"../../Babylon/Mocks\";\r\nimport { PixelToSceneRayUC } from \"../../Babylon/UC/PixelToSceneRayUC\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeTransform3D } from \"../../Transform3D/Entities/Transform3D\";\r\nimport { makeUndoRedoEntity } from \"../../UndoRedo/Entities/UndoRedoEntity\";\r\nimport { makeStickableEntity } from \"../Entities/Stickable\";\r\nimport { makePanTransformWithStickUC } from \"./PanTransformWithStickUC\";\r\nimport { makeTryPickStickTargetUC } from \"./TryPickStickTarget\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ao = appObjects.getOrCreate(\"transform\");\r\n const transform = makeTransform3D(ao);\r\n\r\n const panUC = makePanTransformWithStickUC(ao);\r\n const stickable = makeStickableEntity(ao);\r\n const tryPickTarget = makeTryPickStickTargetUC(ao);\r\n tryPickTarget.tryPick = () => {\r\n return true;\r\n };\r\n\r\n const mockPick = makeMockSceneRayPickUC(appObjects);\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatch.doDispatch = doDispatchMock;\r\n\r\n const mockPixelRay = makeMockPixelToSceneRayUC(\r\n appObjects\r\n ) as PixelToSceneRayUC;\r\n\r\n mockPixelRay.pixelToSceneRay = mockPicker;\r\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\r\n\r\n return {\r\n panUC,\r\n transform,\r\n mockPick,\r\n doDispatchMock,\r\n appObjects,\r\n mockPixelRay,\r\n undo,\r\n stickable,\r\n tryPickTarget,\r\n };\r\n}\r\n\r\nfunction mockPicker(pixel: Vector2): ParametricLine {\r\n return ParametricLine.FromPointDirection(\r\n new Vector3(pixel.x, pixel.y, 3),\r\n Vector3.Forward()\r\n );\r\n}\r\n\r\ndescribe(\"Pan Transform With Stick UC\", () => {\r\n it(\"Moves the transform\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(1, 2, 0));\r\n });\r\n\r\n it(\"Moves the transform relative to the initial position\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(10, 10, 10);\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(11, 12, 10));\r\n });\r\n\r\n it(\"Dispatches a state change if the position has changed since init\", () => {\r\n const { transform, panUC, doDispatchMock } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n transform.worldPosition = new Vector3(4, 5, 6);\r\n panUC.finish();\r\n\r\n expect(doDispatchMock).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch a state change if the position has not changed\", () => {\r\n const { transform, panUC, doDispatchMock } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.finish();\r\n\r\n expect(doDispatchMock).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch state change if dispatchStateChangeOnComplete is false\", () => {\r\n const { transform, panUC, doDispatchMock } = makeTestRig();\r\n\r\n panUC.dispatchStateChangeOnComplete = false;\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n transform.worldPosition = new Vector3(4, 5, 6);\r\n panUC.finish();\r\n\r\n expect(doDispatchMock).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Doesn't not move the transform after cancel\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.cancelPan();\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(Vector3.Zero());\r\n });\r\n\r\n it(\"Limits the minimum X\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.minX = 0;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(-1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(0, 2, 0));\r\n });\r\n\r\n it(\"Limits the maximum X\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.maxX = 0;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(0, 2, 0));\r\n });\r\n\r\n it(\"Limits the minimum Y\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.minY = 0;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(-1, -2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(-1, 0, 0));\r\n });\r\n\r\n it(\"Limits the maximum Y\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n panUC.maxY = 0;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n\r\n panUC.updatePixel(new Vector2(1, 2));\r\n\r\n expect(transform.worldPosition).toEqual(new Vector3(1, 0, 0));\r\n });\r\n\r\n it(\"Does not update if disabled\", () => {\r\n const { transform, panUC } = makeTestRig();\r\n\r\n transform.worldPosition = Vector3.Zero();\r\n\r\n panUC.enabled = false;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n\r\n expect(transform.worldPosition).toEqual(Vector3.Zero());\r\n });\r\n\r\n it(\"Submits an undo on stop\", () => {\r\n const { panUC, undo } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n panUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(true);\r\n });\r\n\r\n it(\"Does not submit an undo on stop if flag is set to false\", () => {\r\n const { panUC, undo } = makeTestRig();\r\n panUC.submitUndoOnComplete = false;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n panUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Does not submit an undo on stop if there was no movement\", () => {\r\n const { panUC, undo } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Wires up the dispatch for undo and redo\", () => {\r\n const { panUC, undo, doDispatchMock } = makeTestRig();\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n panUC.finish();\r\n\r\n doDispatchMock.mockClear();\r\n\r\n undo.doUndo();\r\n\r\n expect(doDispatchMock).toHaveBeenCalledTimes(1);\r\n\r\n undo.doRedo();\r\n\r\n expect(doDispatchMock).toHaveBeenCalledTimes(2);\r\n });\r\n\r\n it(\"Undoes and redoes the move\", () => {\r\n const { panUC, undo, transform } = makeTestRig();\r\n\r\n const initialPos = transform.localPosition;\r\n\r\n panUC.initializePixel(Vector2.Zero());\r\n panUC.updatePixel(new Vector2(10, 20));\r\n panUC.finish();\r\n\r\n const fianlPos = transform.localPosition;\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localPosition).toEqual(initialPos);\r\n\r\n undo.doRedo();\r\n\r\n expect(transform.localPosition).toEqual(fianlPos);\r\n });\r\n});\r\n"]}
@@ -15,13 +15,15 @@ function makeTestRig() {
15
15
  const uc = (0, StickUC_1.makeStickUC)(ao);
16
16
  const stickSpy = jest.spyOn(stickEntity, "doStick");
17
17
  const mockDispatch = (0, MockDispatchStateChange_1.makeMockDispatchStateChange)(appObjects);
18
+ const doDispatchMock = jest.fn();
19
+ mockDispatch.doDispatch = doDispatchMock;
18
20
  const undo = (0, UndoRedoEntity_1.makeUndoRedoEntity)(appObjects.getOrCreate("Undo"));
19
21
  return {
20
22
  stickEntity,
21
23
  uc,
22
24
  appObjects,
23
25
  transform,
24
- mockDispatch,
26
+ doDispatchMock,
25
27
  stickSpy,
26
28
  undo,
27
29
  };
@@ -32,10 +34,10 @@ describe("Stick UC", () => {
32
34
  expect(StickUC_1.StickUC.get("AO", appObjects)).toEqual(uc);
33
35
  });
34
36
  it("Triggers do stick if the transform is out of place", () => {
35
- const { stickSpy, uc, transform, mockDispatch } = makeTestRig();
37
+ const { stickSpy, uc, transform, doDispatchMock } = makeTestRig();
36
38
  transform.localPosition = new core_2.Vector3(1, 2, 3);
37
39
  uc.doStick();
38
- expect(stickSpy).toHaveBeenCalledWith(mockDispatch.doDispatch);
40
+ expect(stickSpy).toHaveBeenCalledWith(doDispatchMock);
39
41
  });
40
42
  it("Does not trigger the lerp if it is not stickable", () => {
41
43
  const { stickSpy, uc, stickEntity } = makeTestRig();
@@ -56,14 +58,14 @@ describe("Stick UC", () => {
56
58
  expect(undo.hasUndo).toEqual(true);
57
59
  });
58
60
  it("Dispatches on undo and redo", () => {
59
- const { uc, transform, undo, mockDispatch } = makeTestRig();
61
+ const { uc, transform, undo, doDispatchMock } = makeTestRig();
60
62
  transform.localPosition = new core_2.Vector3(1, 2, 3);
61
63
  uc.doStick();
62
- mockDispatch.doDispatch.mockClear();
64
+ doDispatchMock.mockClear();
63
65
  undo.doUndo();
64
- expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(1);
66
+ expect(doDispatchMock).toHaveBeenCalledTimes(1);
65
67
  undo.doRedo();
66
- expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(2);
68
+ expect(doDispatchMock).toHaveBeenCalledTimes(2);
67
69
  });
68
70
  it("Undo redo move", () => {
69
71
  const { uc, transform, undo, stickEntity } = makeTestRig();
@@ -1 +1 @@
1
- {"version":3,"file":"StickUC.test.js","sourceRoot":"","sources":["../../../../src/Stick/UCs/StickUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeTransform3D } from \"../../Transform3D/Entities/Transform3D\";\r\nimport { makeUndoRedoEntity } from \"../../UndoRedo/Entities/UndoRedoEntity\";\r\nimport { makeStickableEntity } from \"../Entities/Stickable\";\r\nimport { makeStickUC, StickUC } from \"./StickUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ao = appObjects.getOrCreate(\"AO\");\r\n const transform = makeTransform3D(ao);\r\n const stickEntity = makeStickableEntity(ao);\r\n const uc = makeStickUC(ao);\r\n\r\n const stickSpy = jest.spyOn(stickEntity, \"doStick\");\r\n\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\r\n\r\n return {\r\n stickEntity,\r\n uc,\r\n appObjects,\r\n transform,\r\n mockDispatch,\r\n stickSpy,\r\n undo,\r\n };\r\n}\r\n\r\ndescribe(\"Stick UC\", () => {\r\n it(\"Gets the UC\", () => {\r\n const { appObjects, uc } = makeTestRig();\r\n\r\n expect(StickUC.get(\"AO\", appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Triggers do stick if the transform is out of place\", () => {\r\n const { stickSpy, uc, transform, mockDispatch } = makeTestRig();\r\n\r\n transform.localPosition = new Vector3(1, 2, 3);\r\n\r\n uc.doStick();\r\n\r\n expect(stickSpy).toHaveBeenCalledWith(mockDispatch.doDispatch);\r\n });\r\n\r\n it(\"Does not trigger the lerp if it is not stickable\", () => {\r\n const { stickSpy, uc, stickEntity } = makeTestRig();\r\n\r\n expect(stickEntity.canBeStuck).toEqual(false);\r\n\r\n uc.doStick();\r\n\r\n expect(stickSpy).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit an undo if it is not stickable\", () => {\r\n const { uc, stickEntity, undo } = makeTestRig();\r\n\r\n expect(stickEntity.canBeStuck).toEqual(false);\r\n\r\n uc.doStick();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Submit an undo\", () => {\r\n const { uc, transform, undo } = makeTestRig();\r\n\r\n transform.localPosition = new Vector3(1, 2, 3);\r\n\r\n uc.doStick();\r\n\r\n expect(undo.hasUndo).toEqual(true);\r\n });\r\n\r\n it(\"Dispatches on undo and redo\", () => {\r\n const { uc, transform, undo, mockDispatch } = makeTestRig();\r\n\r\n transform.localPosition = new Vector3(1, 2, 3);\r\n\r\n uc.doStick();\r\n\r\n mockDispatch.doDispatch.mockClear();\r\n undo.doUndo();\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(1);\r\n\r\n undo.doRedo();\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(2);\r\n });\r\n\r\n it(\"Undo redo move\", () => {\r\n const { uc, transform, undo, stickEntity } = makeTestRig();\r\n\r\n transform.localPosition = new Vector3(1, 2, 3);\r\n stickEntity.stickPosition = new Vector3(4, 5, 6);\r\n\r\n uc.doStick();\r\n\r\n transform.localPosition = new Vector3(4, 5, 6); // Fake the stick since we hijacked the lerp\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n\r\n undo.doRedo();\r\n\r\n expect(transform.localPosition).toEqual(new Vector3(4, 5, 6));\r\n });\r\n\r\n it(\"Undo redo scale\", () => {\r\n const { uc, transform, undo, stickEntity } = makeTestRig();\r\n\r\n transform.localScale = new Vector3(5, 5, 5);\r\n stickEntity.stickScale = 3;\r\n\r\n uc.doStick();\r\n\r\n transform.localScale = new Vector3(3, 3, 3); // Fake the stick since we hijacked the lerp\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localScale).toEqual(new Vector3(5, 5, 5));\r\n\r\n undo.doRedo();\r\n\r\n expect(transform.localScale).toEqual(new Vector3(3, 3, 3));\r\n });\r\n\r\n it(\"Undo redo rotation\", () => {\r\n const { uc, transform, undo, stickEntity } = makeTestRig();\r\n\r\n transform.localRotation = Quaternion.Identity();\r\n\r\n const stickQuat = Quaternion.FromAngleAxis(\r\n new Vector3(3, 4, 5),\r\n Angle.FromDegrees(6)\r\n );\r\n stickEntity.stickRotation = stickQuat;\r\n\r\n uc.doStick();\r\n\r\n transform.localRotation = stickQuat; // Fake the stick since we hijacked the lerp\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localRotation).toEqual(Quaternion.Identity());\r\n\r\n undo.doRedo();\r\n\r\n expect(Quaternion.Close(transform.localRotation, stickQuat)).toEqual(true);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"StickUC.test.js","sourceRoot":"","sources":["../../../../src/Stick/UCs/StickUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeTransform3D } from \"../../Transform3D/Entities/Transform3D\";\r\nimport { makeUndoRedoEntity } from \"../../UndoRedo/Entities/UndoRedoEntity\";\r\nimport { makeStickableEntity } from \"../Entities/Stickable\";\r\nimport { makeStickUC, StickUC } from \"./StickUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ao = appObjects.getOrCreate(\"AO\");\r\n const transform = makeTransform3D(ao);\r\n const stickEntity = makeStickableEntity(ao);\r\n const uc = makeStickUC(ao);\r\n\r\n const stickSpy = jest.spyOn(stickEntity, \"doStick\");\r\n\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatch.doDispatch = doDispatchMock;\r\n\r\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\r\n\r\n return {\r\n stickEntity,\r\n uc,\r\n appObjects,\r\n transform,\r\n doDispatchMock,\r\n stickSpy,\r\n undo,\r\n };\r\n}\r\n\r\ndescribe(\"Stick UC\", () => {\r\n it(\"Gets the UC\", () => {\r\n const { appObjects, uc } = makeTestRig();\r\n\r\n expect(StickUC.get(\"AO\", appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Triggers do stick if the transform is out of place\", () => {\r\n const { stickSpy, uc, transform, doDispatchMock } = makeTestRig();\r\n\r\n transform.localPosition = new Vector3(1, 2, 3);\r\n\r\n uc.doStick();\r\n\r\n expect(stickSpy).toHaveBeenCalledWith(doDispatchMock);\r\n });\r\n\r\n it(\"Does not trigger the lerp if it is not stickable\", () => {\r\n const { stickSpy, uc, stickEntity } = makeTestRig();\r\n\r\n expect(stickEntity.canBeStuck).toEqual(false);\r\n\r\n uc.doStick();\r\n\r\n expect(stickSpy).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not submit an undo if it is not stickable\", () => {\r\n const { uc, stickEntity, undo } = makeTestRig();\r\n\r\n expect(stickEntity.canBeStuck).toEqual(false);\r\n\r\n uc.doStick();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Submit an undo\", () => {\r\n const { uc, transform, undo } = makeTestRig();\r\n\r\n transform.localPosition = new Vector3(1, 2, 3);\r\n\r\n uc.doStick();\r\n\r\n expect(undo.hasUndo).toEqual(true);\r\n });\r\n\r\n it(\"Dispatches on undo and redo\", () => {\r\n const { uc, transform, undo, doDispatchMock } = makeTestRig();\r\n\r\n transform.localPosition = new Vector3(1, 2, 3);\r\n\r\n uc.doStick();\r\n\r\n doDispatchMock.mockClear();\r\n undo.doUndo();\r\n\r\n expect(doDispatchMock).toHaveBeenCalledTimes(1);\r\n\r\n undo.doRedo();\r\n\r\n expect(doDispatchMock).toHaveBeenCalledTimes(2);\r\n });\r\n\r\n it(\"Undo redo move\", () => {\r\n const { uc, transform, undo, stickEntity } = makeTestRig();\r\n\r\n transform.localPosition = new Vector3(1, 2, 3);\r\n stickEntity.stickPosition = new Vector3(4, 5, 6);\r\n\r\n uc.doStick();\r\n\r\n transform.localPosition = new Vector3(4, 5, 6); // Fake the stick since we hijacked the lerp\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n\r\n undo.doRedo();\r\n\r\n expect(transform.localPosition).toEqual(new Vector3(4, 5, 6));\r\n });\r\n\r\n it(\"Undo redo scale\", () => {\r\n const { uc, transform, undo, stickEntity } = makeTestRig();\r\n\r\n transform.localScale = new Vector3(5, 5, 5);\r\n stickEntity.stickScale = 3;\r\n\r\n uc.doStick();\r\n\r\n transform.localScale = new Vector3(3, 3, 3); // Fake the stick since we hijacked the lerp\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localScale).toEqual(new Vector3(5, 5, 5));\r\n\r\n undo.doRedo();\r\n\r\n expect(transform.localScale).toEqual(new Vector3(3, 3, 3));\r\n });\r\n\r\n it(\"Undo redo rotation\", () => {\r\n const { uc, transform, undo, stickEntity } = makeTestRig();\r\n\r\n transform.localRotation = Quaternion.Identity();\r\n\r\n const stickQuat = Quaternion.FromAngleAxis(\r\n new Vector3(3, 4, 5),\r\n Angle.FromDegrees(6)\r\n );\r\n stickEntity.stickRotation = stickQuat;\r\n\r\n uc.doStick();\r\n\r\n transform.localRotation = stickQuat; // Fake the stick since we hijacked the lerp\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localRotation).toEqual(Quaternion.Identity());\r\n\r\n undo.doRedo();\r\n\r\n expect(Quaternion.Close(transform.localRotation, stickQuat)).toEqual(true);\r\n });\r\n});\r\n"]}
@@ -14,7 +14,8 @@ function makeTestRig() {
14
14
  const stickableObj = appObjects.getOrCreate("stickableObj");
15
15
  const mockHideUC = new StickUCMock_1.StickUCMock(stickableObj);
16
16
  const mockRayPick = (0, Babylon_1.makeMockSceneRayPickUC)(appObjects);
17
- mockRayPick.sceneRayPick.mockReturnValue({ appObjectID: "stickableObj" });
17
+ const mockPick = jest.fn().mockReturnValue({ appObjectID: "stickableObj" });
18
+ mockRayPick.sceneRayPick = mockPick;
18
19
  const mockPixelPick = (0, Babylon_1.makeMockScenePixelPickUC)(appObjects);
19
20
  mockPixelPick.scenePixelPick.mockReturnValue({ appObjectID: "stickableObj" });
20
21
  const toolRepo = (0, Tools_1.makeToolRepo)(appObjects.getOrCreate("Tool"));
@@ -26,7 +27,7 @@ function makeTestRig() {
26
27
  mockHideUC,
27
28
  uc,
28
29
  registerSingleton,
29
- mockRayPick,
30
+ mockPick,
30
31
  mockPixelPick,
31
32
  peelTool,
32
33
  };
@@ -41,10 +42,10 @@ describe("Try Stick UC", () => {
41
42
  expect(registerSingleton).toHaveBeenCalledWith(uc);
42
43
  });
43
44
  it("Picks with the ray", () => {
44
- const { uc, mockRayPick } = makeTestRig();
45
+ const { uc, mockPick } = makeTestRig();
45
46
  const pickRay = core_2.ParametricLine.FromPointDirection(new core_2.Vector3(1, 2, 3), new core_2.Vector3(4, 5, 6));
46
47
  uc.tryWithRay(pickRay);
47
- expect(mockRayPick.sceneRayPick).toHaveBeenCalledWith(pickRay);
48
+ expect(mockPick).toHaveBeenCalledWith(pickRay);
48
49
  });
49
50
  it("Calls the UC", () => {
50
51
  const { uc, mockHideUC } = makeTestRig();
@@ -60,10 +61,10 @@ describe("Try Stick UC", () => {
60
61
  expect(mockHideUC.doStick).not.toHaveBeenCalled();
61
62
  });
62
63
  it("Doesn't warn if the picked object does not have the UC", () => {
63
- const { uc, mockRayPick, appObjects } = makeTestRig();
64
+ const { uc, mockPick, appObjects } = makeTestRig();
64
65
  appObjects.submitWarning = jest.fn();
65
66
  appObjects.getOrCreate("SomeOtherObject");
66
- mockRayPick.sceneRayPick.mockReturnValue({
67
+ mockPick.mockReturnValue({
67
68
  appObjectID: "SomeOtherObject",
68
69
  });
69
70
  uc.tryWithRay(core_2.ParametricLine.Forward());
@@ -1 +1 @@
1
- {"version":3,"file":"TryStickAppObjectUC.test.js","sourceRoot":"","sources":["../../../../src/Stick/UCs/TryStickAppObjectUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\r\nimport {\r\n makeMockScenePixelPickUC,\r\n makeMockSceneRayPickUC,\r\n} from \"../../Babylon\";\r\nimport { makeToolRepo, ToolState } from \"../../Tools\";\r\nimport { StickUCMock } from \"../Mocks/StickUCMock\";\r\nimport {\r\n makeTryStickAppObjectUC,\r\n TryStickAppObjectUC,\r\n} from \"./TryStickAppObjectUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingleton = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const ao = appObjects.getOrCreate(\"AO\");\r\n const uc = makeTryStickAppObjectUC(ao);\r\n\r\n const stickableObj = appObjects.getOrCreate(\"stickableObj\");\r\n const mockHideUC = new StickUCMock(stickableObj);\r\n\r\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\r\n mockRayPick.sceneRayPick.mockReturnValue({ appObjectID: \"stickableObj\" });\r\n\r\n const mockPixelPick = makeMockScenePixelPickUC(appObjects);\r\n mockPixelPick.scenePixelPick.mockReturnValue({ appObjectID: \"stickableObj\" });\r\n\r\n const toolRepo = makeToolRepo(appObjects.getOrCreate(\"Tool\"));\r\n const peelTool = toolRepo.makeTool(\"PEEL\");\r\n peelTool.state = ToolState.ACTIVE;\r\n\r\n return {\r\n appObjects,\r\n ao,\r\n mockHideUC,\r\n uc,\r\n registerSingleton,\r\n mockRayPick,\r\n mockPixelPick,\r\n peelTool,\r\n };\r\n}\r\n\r\ndescribe(\"Try Stick UC\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { appObjects, uc } = makeTestRig();\r\n\r\n expect(TryStickAppObjectUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Registers as the singleton\", () => {\r\n const { registerSingleton, uc } = makeTestRig();\r\n\r\n expect(registerSingleton).toHaveBeenCalledWith(uc);\r\n });\r\n\r\n it(\"Picks with the ray\", () => {\r\n const { uc, mockRayPick } = makeTestRig();\r\n\r\n const pickRay = ParametricLine.FromPointDirection(\r\n new Vector3(1, 2, 3),\r\n new Vector3(4, 5, 6)\r\n );\r\n\r\n uc.tryWithRay(pickRay);\r\n\r\n expect(mockRayPick.sceneRayPick).toHaveBeenCalledWith(pickRay);\r\n });\r\n\r\n it(\"Calls the UC\", () => {\r\n const { uc, mockHideUC } = makeTestRig();\r\n\r\n uc.tryWithRay(ParametricLine.Forward());\r\n\r\n expect(mockHideUC.doStick).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not call on ray pick if not allowed\", () => {\r\n const { uc, mockHideUC } = makeTestRig();\r\n\r\n uc.allow = () => {\r\n return false;\r\n };\r\n\r\n uc.tryWithRay(ParametricLine.Forward());\r\n\r\n expect(mockHideUC.doStick).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Doesn't warn if the picked object does not have the UC\", () => {\r\n const { uc, mockRayPick, appObjects } = makeTestRig();\r\n\r\n appObjects.submitWarning = jest.fn();\r\n appObjects.getOrCreate(\"SomeOtherObject\");\r\n mockRayPick.sceneRayPick.mockReturnValue({\r\n appObjectID: \"SomeOtherObject\",\r\n });\r\n\r\n uc.tryWithRay(ParametricLine.Forward());\r\n\r\n expect(appObjects.submitWarning).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Picks with a pixel\", () => {\r\n const { uc, mockPixelPick } = makeTestRig();\r\n\r\n const pickPixel = new Vector2(1, 2);\r\n\r\n uc.tryWithPixel(pickPixel);\r\n\r\n expect(mockPixelPick.scenePixelPick).toHaveBeenCalledWith(pickPixel);\r\n });\r\n\r\n it(\"Calls the UC with a pixel pick\", () => {\r\n const { uc, mockHideUC } = makeTestRig();\r\n\r\n uc.tryWithPixel(Vector2.One());\r\n\r\n expect(mockHideUC.doStick).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not call on pixel pick if not allowed\", () => {\r\n const { uc, mockHideUC } = makeTestRig();\r\n\r\n uc.allow = () => {\r\n return false;\r\n };\r\n\r\n uc.tryWithPixel(Vector2.One());\r\n\r\n expect(mockHideUC.doStick).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Allows if the peel tool is active\", () => {\r\n const { uc, peelTool } = makeTestRig();\r\n\r\n peelTool.state = ToolState.ACTIVE;\r\n\r\n expect(uc.allow()).toEqual(true);\r\n\r\n peelTool.state = ToolState.ENABLED;\r\n\r\n expect(uc.allow()).toEqual(false);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"TryStickAppObjectUC.test.js","sourceRoot":"","sources":["../../../../src/Stick/UCs/TryStickAppObjectUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\r\nimport {\r\n makeMockScenePixelPickUC,\r\n makeMockSceneRayPickUC,\r\n} from \"../../Babylon\";\r\nimport { makeToolRepo, ToolState } from \"../../Tools\";\r\nimport { StickUCMock } from \"../Mocks/StickUCMock\";\r\nimport {\r\n makeTryStickAppObjectUC,\r\n TryStickAppObjectUC,\r\n} from \"./TryStickAppObjectUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingleton = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const ao = appObjects.getOrCreate(\"AO\");\r\n const uc = makeTryStickAppObjectUC(ao);\r\n\r\n const stickableObj = appObjects.getOrCreate(\"stickableObj\");\r\n const mockHideUC = new StickUCMock(stickableObj);\r\n\r\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\r\n const mockPick = jest.fn().mockReturnValue({ appObjectID: \"stickableObj\" });\r\n mockRayPick.sceneRayPick = mockPick;\r\n\r\n const mockPixelPick = makeMockScenePixelPickUC(appObjects);\r\n mockPixelPick.scenePixelPick.mockReturnValue({ appObjectID: \"stickableObj\" });\r\n\r\n const toolRepo = makeToolRepo(appObjects.getOrCreate(\"Tool\"));\r\n const peelTool = toolRepo.makeTool(\"PEEL\");\r\n peelTool.state = ToolState.ACTIVE;\r\n\r\n return {\r\n appObjects,\r\n ao,\r\n mockHideUC,\r\n uc,\r\n registerSingleton,\r\n mockPick,\r\n mockPixelPick,\r\n peelTool,\r\n };\r\n}\r\n\r\ndescribe(\"Try Stick UC\", () => {\r\n it(\"Gets the singleton\", () => {\r\n const { appObjects, uc } = makeTestRig();\r\n\r\n expect(TryStickAppObjectUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Registers as the singleton\", () => {\r\n const { registerSingleton, uc } = makeTestRig();\r\n\r\n expect(registerSingleton).toHaveBeenCalledWith(uc);\r\n });\r\n\r\n it(\"Picks with the ray\", () => {\r\n const { uc, mockPick } = makeTestRig();\r\n\r\n const pickRay = ParametricLine.FromPointDirection(\r\n new Vector3(1, 2, 3),\r\n new Vector3(4, 5, 6)\r\n );\r\n\r\n uc.tryWithRay(pickRay);\r\n\r\n expect(mockPick).toHaveBeenCalledWith(pickRay);\r\n });\r\n\r\n it(\"Calls the UC\", () => {\r\n const { uc, mockHideUC } = makeTestRig();\r\n\r\n uc.tryWithRay(ParametricLine.Forward());\r\n\r\n expect(mockHideUC.doStick).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not call on ray pick if not allowed\", () => {\r\n const { uc, mockHideUC } = makeTestRig();\r\n\r\n uc.allow = () => {\r\n return false;\r\n };\r\n\r\n uc.tryWithRay(ParametricLine.Forward());\r\n\r\n expect(mockHideUC.doStick).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Doesn't warn if the picked object does not have the UC\", () => {\r\n const { uc, mockPick, appObjects } = makeTestRig();\r\n\r\n appObjects.submitWarning = jest.fn();\r\n appObjects.getOrCreate(\"SomeOtherObject\");\r\n mockPick.mockReturnValue({\r\n appObjectID: \"SomeOtherObject\",\r\n });\r\n\r\n uc.tryWithRay(ParametricLine.Forward());\r\n\r\n expect(appObjects.submitWarning).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Picks with a pixel\", () => {\r\n const { uc, mockPixelPick } = makeTestRig();\r\n\r\n const pickPixel = new Vector2(1, 2);\r\n\r\n uc.tryWithPixel(pickPixel);\r\n\r\n expect(mockPixelPick.scenePixelPick).toHaveBeenCalledWith(pickPixel);\r\n });\r\n\r\n it(\"Calls the UC with a pixel pick\", () => {\r\n const { uc, mockHideUC } = makeTestRig();\r\n\r\n uc.tryWithPixel(Vector2.One());\r\n\r\n expect(mockHideUC.doStick).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not call on pixel pick if not allowed\", () => {\r\n const { uc, mockHideUC } = makeTestRig();\r\n\r\n uc.allow = () => {\r\n return false;\r\n };\r\n\r\n uc.tryWithPixel(Vector2.One());\r\n\r\n expect(mockHideUC.doStick).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Allows if the peel tool is active\", () => {\r\n const { uc, peelTool } = makeTestRig();\r\n\r\n peelTool.state = ToolState.ACTIVE;\r\n\r\n expect(uc.allow()).toEqual(true);\r\n\r\n peelTool.state = ToolState.ENABLED;\r\n\r\n expect(uc.allow()).toEqual(false);\r\n });\r\n});\r\n"]}
@@ -12,6 +12,8 @@ function makeTestRig() {
12
12
  const transform = (0, Entities_1.makeTransform3D)(ao);
13
13
  const bumpUC = (0, BumpTransformScaleAboutPixelPoint_1.makeBumpTransformScaleAboutPixelPointUC)(ao);
14
14
  const mockDispatch = (0, MockDispatchStateChange_1.makeMockDispatchStateChange)(appObjects);
15
+ const doDispatchMock = jest.fn();
16
+ mockDispatch.doDispatch = doDispatchMock;
15
17
  const mockPick = (0, Babylon_1.makeMockScenePixelPickUC)(appObjects);
16
18
  const mockPixelRay = (0, Babylon_1.makeMockPixelToSceneRayUC)(appObjects);
17
19
  mockPixelRay.pixelToSceneRay = (pos) => {
@@ -20,7 +22,7 @@ function makeTestRig() {
20
22
  return {
21
23
  bumpUC,
22
24
  transform,
23
- mockDispatch,
25
+ doDispatchMock,
24
26
  mockPick,
25
27
  appObjects,
26
28
  };
@@ -59,9 +61,9 @@ describe("Bumping the transform scale use case", () => {
59
61
  expect(transform.worldPosition.z).toBeCloseTo(-0.3);
60
62
  });
61
63
  it("Dispatches state change", () => {
62
- const { bumpUC, mockDispatch } = makeTestRig();
64
+ const { bumpUC, doDispatchMock } = makeTestRig();
63
65
  bumpUC.bump("IN", core_2.Vector2.Zero());
64
- expect(mockDispatch.doDispatch).toHaveBeenCalled();
66
+ expect(doDispatchMock).toHaveBeenCalled();
65
67
  });
66
68
  it("Limits the minimum", () => {
67
69
  const { bumpUC, transform } = makeTestRig();
@@ -1 +1 @@
1
- {"version":3,"file":"BumpTransformScaleAboutPixelPoint.test.js","sourceRoot":"","sources":["../../../../src/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport {\r\n makeMockPixelToSceneRayUC,\r\n makeMockScenePixelPickUC,\r\n PixelToSceneRayUC,\r\n ScenePixelPick,\r\n} from \"../../Babylon\";\r\nimport { makeTransform3D } from \"../Entities\";\r\nimport { makeBumpTransformScaleAboutPixelPointUC } from \"./BumpTransformScaleAboutPixelPoint\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { ParametricLine, ParametricPlane, Vector2, Vector3 } from \"@vived/core\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ao = appObjects.getOrCreate(\"AO\");\r\n const transform = makeTransform3D(ao);\r\n const bumpUC = makeBumpTransformScaleAboutPixelPointUC(ao);\r\n\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const mockPick = makeMockScenePixelPickUC(appObjects);\r\n const mockPixelRay = makeMockPixelToSceneRayUC(\r\n appObjects\r\n ) as PixelToSceneRayUC;\r\n mockPixelRay.pixelToSceneRay = (pos: Vector2) => {\r\n return ParametricLine.FromPointDirection(\r\n new Vector3(pos.x, pos.y, -2),\r\n Vector3.Forward()\r\n );\r\n };\r\n\r\n return {\r\n bumpUC,\r\n transform,\r\n mockDispatch,\r\n mockPick,\r\n appObjects,\r\n };\r\n}\r\n\r\ndescribe(\"Bumping the transform scale use case\", () => {\r\n it(\"Bumps the scale smaller with an out\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n transform.worldScale = Vector3.One();\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n\r\n expect(transform.worldScale.x).toBeLessThan(1);\r\n });\r\n\r\n it(\"Bumps the scale larger with an in\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n transform.worldScale = Vector3.One();\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldScale.x).toBeGreaterThan(1);\r\n });\r\n\r\n it(\"Scales around the origin if there is no pick\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n transform.worldPosition = Vector3.Zero();\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldPosition).toEqual(Vector3.Zero());\r\n });\r\n\r\n it(\"Scales around the pick point\", () => {\r\n const { bumpUC, mockPick, transform } = makeTestRig();\r\n\r\n transform.worldPosition = Vector3.Zero();\r\n\r\n const pick: ScenePixelPick = {\r\n hit: true,\r\n sceneRay: ParametricLine.Forward(),\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n };\r\n\r\n mockPick.scenePixelPick.mockReturnValue(pick);\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldPosition.x).toBeCloseTo(-0.1);\r\n expect(transform.worldPosition.y).toBeCloseTo(-0.2);\r\n expect(transform.worldPosition.z).toBeCloseTo(-0.3);\r\n });\r\n\r\n it(\"Dispatches state change\", () => {\r\n const { bumpUC, mockDispatch } = makeTestRig();\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Limits the minimum\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n bumpUC.minScale = 0.9;\r\n\r\n transform.worldScale = Vector3.One();\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n\r\n expect(transform.worldScale.x).toEqual(0.9);\r\n });\r\n\r\n it(\"Limits the maximum\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n bumpUC.maxScale = 1.1;\r\n\r\n transform.worldScale = Vector3.One();\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldScale.x).toEqual(1.1);\r\n });\r\n\r\n it(\"Does not update if disabled\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n transform.worldScale = Vector3.One();\r\n bumpUC.enabled = false;\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldScale).toEqual(Vector3.One());\r\n });\r\n\r\n it(\"Scales around the pick point on the plane if the plane is supplied\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n transform.worldPosition = Vector3.Zero();\r\n\r\n const pickPlane = ParametricPlane.FromPointNormal(\r\n new Vector3(0, 0, -1),\r\n Vector3.Forward()\r\n );\r\n bumpUC.pickPlane = pickPlane;\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldPosition.x).toBeCloseTo(0);\r\n expect(transform.worldPosition.y).toBeCloseTo(0);\r\n expect(transform.worldPosition.z).toBeCloseTo(0.1);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"BumpTransformScaleAboutPixelPoint.test.js","sourceRoot":"","sources":["../../../../src/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport {\r\n makeMockPixelToSceneRayUC,\r\n makeMockScenePixelPickUC,\r\n PixelToSceneRayUC,\r\n ScenePixelPick,\r\n} from \"../../Babylon\";\r\nimport { makeTransform3D } from \"../Entities\";\r\nimport { makeBumpTransformScaleAboutPixelPointUC } from \"./BumpTransformScaleAboutPixelPoint\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { ParametricLine, ParametricPlane, Vector2, Vector3 } from \"@vived/core\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ao = appObjects.getOrCreate(\"AO\");\r\n const transform = makeTransform3D(ao);\r\n const bumpUC = makeBumpTransformScaleAboutPixelPointUC(ao);\r\n\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatch.doDispatch = doDispatchMock;\r\n\r\n const mockPick = makeMockScenePixelPickUC(appObjects);\r\n const mockPixelRay = makeMockPixelToSceneRayUC(\r\n appObjects\r\n ) as PixelToSceneRayUC;\r\n mockPixelRay.pixelToSceneRay = (pos: Vector2) => {\r\n return ParametricLine.FromPointDirection(\r\n new Vector3(pos.x, pos.y, -2),\r\n Vector3.Forward()\r\n );\r\n };\r\n\r\n return {\r\n bumpUC,\r\n transform,\r\n doDispatchMock,\r\n mockPick,\r\n appObjects,\r\n };\r\n}\r\n\r\ndescribe(\"Bumping the transform scale use case\", () => {\r\n it(\"Bumps the scale smaller with an out\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n transform.worldScale = Vector3.One();\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n\r\n expect(transform.worldScale.x).toBeLessThan(1);\r\n });\r\n\r\n it(\"Bumps the scale larger with an in\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n transform.worldScale = Vector3.One();\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldScale.x).toBeGreaterThan(1);\r\n });\r\n\r\n it(\"Scales around the origin if there is no pick\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n transform.worldPosition = Vector3.Zero();\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldPosition).toEqual(Vector3.Zero());\r\n });\r\n\r\n it(\"Scales around the pick point\", () => {\r\n const { bumpUC, mockPick, transform } = makeTestRig();\r\n\r\n transform.worldPosition = Vector3.Zero();\r\n\r\n const pick: ScenePixelPick = {\r\n hit: true,\r\n sceneRay: ParametricLine.Forward(),\r\n worldPickPoint: new Vector3(1, 2, 3),\r\n };\r\n\r\n mockPick.scenePixelPick.mockReturnValue(pick);\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldPosition.x).toBeCloseTo(-0.1);\r\n expect(transform.worldPosition.y).toBeCloseTo(-0.2);\r\n expect(transform.worldPosition.z).toBeCloseTo(-0.3);\r\n });\r\n\r\n it(\"Dispatches state change\", () => {\r\n const { bumpUC, doDispatchMock } = makeTestRig();\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n expect(doDispatchMock).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Limits the minimum\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n bumpUC.minScale = 0.9;\r\n\r\n transform.worldScale = Vector3.One();\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n bumpUC.bump(\"OUT\", Vector2.Zero());\r\n\r\n expect(transform.worldScale.x).toEqual(0.9);\r\n });\r\n\r\n it(\"Limits the maximum\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n bumpUC.maxScale = 1.1;\r\n\r\n transform.worldScale = Vector3.One();\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldScale.x).toEqual(1.1);\r\n });\r\n\r\n it(\"Does not update if disabled\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n transform.worldScale = Vector3.One();\r\n bumpUC.enabled = false;\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldScale).toEqual(Vector3.One());\r\n });\r\n\r\n it(\"Scales around the pick point on the plane if the plane is supplied\", () => {\r\n const { bumpUC, transform } = makeTestRig();\r\n\r\n transform.worldPosition = Vector3.Zero();\r\n\r\n const pickPlane = ParametricPlane.FromPointNormal(\r\n new Vector3(0, 0, -1),\r\n Vector3.Forward()\r\n );\r\n bumpUC.pickPlane = pickPlane;\r\n\r\n bumpUC.bump(\"IN\", Vector2.Zero());\r\n\r\n expect(transform.worldPosition.x).toBeCloseTo(0);\r\n expect(transform.worldPosition.y).toBeCloseTo(0);\r\n expect(transform.worldPosition.z).toBeCloseTo(0.1);\r\n });\r\n});\r\n"]}
@@ -13,8 +13,18 @@ function makeTestRig() {
13
13
  const moveUC = (0, MoveTransformUC_1.makeMoveTransform)(appObj);
14
14
  const helper = (0, Entities_1.makeTransform3D)(appObjects.getOrCreate("Helper"));
15
15
  const mockDispatch = (0, MockDispatchStateChange_1.makeMockDispatchStateChange)(appObjects);
16
+ const doDispatchMock = jest.fn();
17
+ mockDispatch.doDispatch = doDispatchMock;
16
18
  const undo = (0, UndoRedo_1.makeUndoRedoEntity)(appObjects.getOrCreate("Undo"));
17
- return { moveUC, appObj, appObjects, mockDispatch, undo, helper, transform };
19
+ return {
20
+ moveUC,
21
+ appObj,
22
+ appObjects,
23
+ doDispatchMock,
24
+ undo,
25
+ helper,
26
+ transform,
27
+ };
18
28
  }
19
29
  describe("Move Transform UC", () => {
20
30
  it("Gets the UC by ID", () => {
@@ -53,7 +63,7 @@ describe("Move Transform UC", () => {
53
63
  expect(transform.worldRotation).not.toEqual(helper.worldRotation);
54
64
  });
55
65
  it("Dispatches a state change on stop if moved", () => {
56
- const { moveUC, transform, helper, mockDispatch } = makeTestRig();
66
+ const { moveUC, transform, helper, doDispatchMock } = makeTestRig();
57
67
  transform.worldPosition = new core_2.Vector3(1, 2, 3);
58
68
  transform.worldRotation = core_2.Quaternion.FromAngleAxis(new core_2.Vector3(4, 5, 6), core_2.Angle.FromDegrees(7));
59
69
  moveUC.initialize(helper);
@@ -61,18 +71,18 @@ describe("Move Transform UC", () => {
61
71
  helper.worldRotation = core_2.Quaternion.Identity();
62
72
  moveUC.update(helper, core_2.ParametricLine.Forward());
63
73
  moveUC.finish();
64
- expect(mockDispatch.doDispatch).toHaveBeenCalled();
74
+ expect(doDispatchMock).toHaveBeenCalled();
65
75
  });
66
76
  it("Does not dispatch a state change on stop if not moved", () => {
67
- const { moveUC, transform, helper, mockDispatch } = makeTestRig();
77
+ const { moveUC, transform, helper, doDispatchMock } = makeTestRig();
68
78
  transform.worldPosition = new core_2.Vector3(1, 2, 3);
69
79
  transform.worldRotation = core_2.Quaternion.FromAngleAxis(new core_2.Vector3(4, 5, 6), core_2.Angle.FromDegrees(7));
70
80
  moveUC.initialize(helper);
71
81
  moveUC.finish();
72
- expect(mockDispatch.doDispatch).not.toHaveBeenCalled();
82
+ expect(doDispatchMock).not.toHaveBeenCalled();
73
83
  });
74
84
  it("Does not dispatch a state change on stop if moved and told not to", () => {
75
- const { moveUC, transform, helper, mockDispatch } = makeTestRig();
85
+ const { moveUC, transform, helper, doDispatchMock } = makeTestRig();
76
86
  moveUC.dispatchStateChangeOnComplete = false;
77
87
  transform.worldPosition = new core_2.Vector3(1, 2, 3);
78
88
  transform.worldRotation = core_2.Quaternion.FromAngleAxis(new core_2.Vector3(4, 5, 6), core_2.Angle.FromDegrees(7));
@@ -81,7 +91,7 @@ describe("Move Transform UC", () => {
81
91
  helper.worldRotation = core_2.Quaternion.Identity();
82
92
  moveUC.update(helper, core_2.ParametricLine.Forward());
83
93
  moveUC.finish();
84
- expect(mockDispatch.doDispatch).not.toHaveBeenCalled();
94
+ expect(doDispatchMock).not.toHaveBeenCalled();
85
95
  });
86
96
  it("Submits an undo on stop", () => {
87
97
  const { moveUC, transform, helper, undo } = makeTestRig();
@@ -115,7 +125,7 @@ describe("Move Transform UC", () => {
115
125
  expect(undo.hasUndo).toEqual(false);
116
126
  });
117
127
  it("Wires up the dispatch for undo and redo", () => {
118
- const { transform, undo, mockDispatch, helper, moveUC } = makeTestRig();
128
+ const { transform, undo, doDispatchMock, helper, moveUC } = makeTestRig();
119
129
  transform.worldPosition = new core_2.Vector3(1, 2, 3);
120
130
  transform.worldRotation = core_2.Quaternion.FromAngleAxis(new core_2.Vector3(4, 5, 6), core_2.Angle.FromDegrees(7));
121
131
  moveUC.initialize(helper);
@@ -123,11 +133,11 @@ describe("Move Transform UC", () => {
123
133
  helper.worldRotation = core_2.Quaternion.Identity();
124
134
  moveUC.update(helper, core_2.ParametricLine.Forward());
125
135
  moveUC.finish();
126
- mockDispatch.doDispatch.mockClear();
136
+ doDispatchMock.mockClear();
127
137
  undo.doUndo();
128
- expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(1);
138
+ expect(doDispatchMock).toHaveBeenCalledTimes(1);
129
139
  undo.doRedo();
130
- expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(2);
140
+ expect(doDispatchMock).toHaveBeenCalledTimes(2);
131
141
  });
132
142
  it("Undoes and redoes the move", () => {
133
143
  const { transform, undo, helper, moveUC } = makeTestRig();
@@ -1 +1 @@
1
- {"version":3,"file":"MoveTransformUC.test.js","sourceRoot":"","sources":["../../../../src/Transform3D/UC/MoveTransformUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObject, makeAppObjectRepo } from \"@vived/core\";\r\nimport { Angle, ParametricLine, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeUndoRedoEntity } from \"../../UndoRedo\";\r\nimport { makeTransform3D } from \"../Entities\";\r\nimport { makeMoveTransform, MoveTransformUC } from \"./MoveTransformUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const appObj = makeAppObject(\"appObj\", appObjects);\r\n\r\n const transform = makeTransform3D(appObj);\r\n const moveUC = makeMoveTransform(appObj);\r\n\r\n const helper = makeTransform3D(appObjects.getOrCreate(\"Helper\"));\r\n\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\r\n\r\n return { moveUC, appObj, appObjects, mockDispatch, undo, helper, transform };\r\n}\r\n\r\ndescribe(\"Move Transform UC\", () => {\r\n it(\"Gets the UC by ID\", () => {\r\n const { moveUC, appObjects } = makeTestRig();\r\n\r\n expect(MoveTransformUC.get(\"appObj\", appObjects)).toEqual(moveUC);\r\n });\r\n\r\n it(\"Sets the helper to the world position and rotation of the local transform\", () => {\r\n const { moveUC, transform, helper } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.initialize(helper);\r\n\r\n expect(helper.worldPosition).toEqual(transform.worldPosition);\r\n expect(helper.worldRotation).toEqual(transform.worldRotation);\r\n });\r\n\r\n it(\"Moves the transform to where the helper is\", () => {\r\n const { moveUC, transform, helper } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n expect(transform.worldPosition).toEqual(helper.worldPosition);\r\n expect(transform.worldRotation).toEqual(helper.worldRotation);\r\n });\r\n\r\n it(\"Does not move the transform if it was not initialized\", () => {\r\n const { moveUC, transform, helper } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n expect(transform.worldPosition).not.toEqual(helper.worldPosition);\r\n expect(transform.worldRotation).not.toEqual(helper.worldRotation);\r\n });\r\n\r\n it(\"Dispatches a state change on stop if moved\", () => {\r\n const { moveUC, transform, helper, mockDispatch } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch a state change on stop if not moved\", () => {\r\n const { moveUC, transform, helper, mockDispatch } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n moveUC.finish();\r\n\r\n expect(mockDispatch.doDispatch).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch a state change on stop if moved and told not to\", () => {\r\n const { moveUC, transform, helper, mockDispatch } = makeTestRig();\r\n\r\n moveUC.dispatchStateChangeOnComplete = false;\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(mockDispatch.doDispatch).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Submits an undo on stop\", () => {\r\n const { moveUC, transform, helper, undo } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(true);\r\n });\r\n\r\n it(\"Does not submit an undo on stop if flag is set to false\", () => {\r\n const { moveUC, transform, helper, undo } = makeTestRig();\r\n\r\n moveUC.submitUndoOnComplete = false;\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Does not submit an undo on stop if there was no movement\", () => {\r\n const { moveUC, transform, helper, undo } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n moveUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Wires up the dispatch for undo and redo\", () => {\r\n const { transform, undo, mockDispatch, helper, moveUC } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n mockDispatch.doDispatch.mockClear();\r\n\r\n undo.doUndo();\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(1);\r\n\r\n undo.doRedo();\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalledTimes(2);\r\n });\r\n\r\n it(\"Undoes and redoes the move\", () => {\r\n const { transform, undo, helper, moveUC } = makeTestRig();\r\n\r\n const initialPos = new Vector3(1, 2, 3);\r\n const initialRot = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n transform.localPosition = initialPos;\r\n transform.localRotation = initialRot;\r\n\r\n moveUC.initialize(helper);\r\n\r\n const movedPos = Vector3.Zero();\r\n const movedRot = Quaternion.Identity();\r\n helper.localPosition = movedPos;\r\n helper.localRotation = movedRot;\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(transform.localPosition).toEqual(movedPos);\r\n expect(Quaternion.Close(transform.localRotation, movedRot)).toEqual(true);\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localPosition).toEqual(initialPos);\r\n expect(Quaternion.Close(transform.localRotation, initialRot)).toEqual(true);\r\n\r\n undo.doRedo();\r\n\r\n expect(transform.localPosition).toEqual(movedPos);\r\n expect(Quaternion.Close(transform.localRotation, movedRot)).toEqual(true);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"MoveTransformUC.test.js","sourceRoot":"","sources":["../../../../src/Transform3D/UC/MoveTransformUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObject, makeAppObjectRepo } from \"@vived/core\";\r\nimport { Angle, ParametricLine, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeUndoRedoEntity } from \"../../UndoRedo\";\r\nimport { makeTransform3D } from \"../Entities\";\r\nimport { makeMoveTransform, MoveTransformUC } from \"./MoveTransformUC\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const appObj = makeAppObject(\"appObj\", appObjects);\r\n\r\n const transform = makeTransform3D(appObj);\r\n const moveUC = makeMoveTransform(appObj);\r\n\r\n const helper = makeTransform3D(appObjects.getOrCreate(\"Helper\"));\r\n\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatch.doDispatch = doDispatchMock;\r\n\r\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\r\n\r\n return {\r\n moveUC,\r\n appObj,\r\n appObjects,\r\n doDispatchMock,\r\n undo,\r\n helper,\r\n transform,\r\n };\r\n}\r\n\r\ndescribe(\"Move Transform UC\", () => {\r\n it(\"Gets the UC by ID\", () => {\r\n const { moveUC, appObjects } = makeTestRig();\r\n\r\n expect(MoveTransformUC.get(\"appObj\", appObjects)).toEqual(moveUC);\r\n });\r\n\r\n it(\"Sets the helper to the world position and rotation of the local transform\", () => {\r\n const { moveUC, transform, helper } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.initialize(helper);\r\n\r\n expect(helper.worldPosition).toEqual(transform.worldPosition);\r\n expect(helper.worldRotation).toEqual(transform.worldRotation);\r\n });\r\n\r\n it(\"Moves the transform to where the helper is\", () => {\r\n const { moveUC, transform, helper } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n expect(transform.worldPosition).toEqual(helper.worldPosition);\r\n expect(transform.worldRotation).toEqual(helper.worldRotation);\r\n });\r\n\r\n it(\"Does not move the transform if it was not initialized\", () => {\r\n const { moveUC, transform, helper } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n expect(transform.worldPosition).not.toEqual(helper.worldPosition);\r\n expect(transform.worldRotation).not.toEqual(helper.worldRotation);\r\n });\r\n\r\n it(\"Dispatches a state change on stop if moved\", () => {\r\n const { moveUC, transform, helper, doDispatchMock } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(doDispatchMock).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch a state change on stop if not moved\", () => {\r\n const { moveUC, transform, helper, doDispatchMock } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n moveUC.finish();\r\n\r\n expect(doDispatchMock).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch a state change on stop if moved and told not to\", () => {\r\n const { moveUC, transform, helper, doDispatchMock } = makeTestRig();\r\n\r\n moveUC.dispatchStateChangeOnComplete = false;\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(doDispatchMock).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Submits an undo on stop\", () => {\r\n const { moveUC, transform, helper, undo } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(true);\r\n });\r\n\r\n it(\"Does not submit an undo on stop if flag is set to false\", () => {\r\n const { moveUC, transform, helper, undo } = makeTestRig();\r\n\r\n moveUC.submitUndoOnComplete = false;\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Does not submit an undo on stop if there was no movement\", () => {\r\n const { moveUC, transform, helper, undo } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n moveUC.finish();\r\n\r\n expect(undo.hasUndo).toEqual(false);\r\n });\r\n\r\n it(\"Wires up the dispatch for undo and redo\", () => {\r\n const { transform, undo, doDispatchMock, helper, moveUC } = makeTestRig();\r\n\r\n transform.worldPosition = new Vector3(1, 2, 3);\r\n transform.worldRotation = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n\r\n moveUC.initialize(helper);\r\n\r\n helper.worldPosition = Vector3.Zero();\r\n helper.worldRotation = Quaternion.Identity();\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n doDispatchMock.mockClear();\r\n\r\n undo.doUndo();\r\n\r\n expect(doDispatchMock).toHaveBeenCalledTimes(1);\r\n\r\n undo.doRedo();\r\n\r\n expect(doDispatchMock).toHaveBeenCalledTimes(2);\r\n });\r\n\r\n it(\"Undoes and redoes the move\", () => {\r\n const { transform, undo, helper, moveUC } = makeTestRig();\r\n\r\n const initialPos = new Vector3(1, 2, 3);\r\n const initialRot = Quaternion.FromAngleAxis(\r\n new Vector3(4, 5, 6),\r\n Angle.FromDegrees(7)\r\n );\r\n transform.localPosition = initialPos;\r\n transform.localRotation = initialRot;\r\n\r\n moveUC.initialize(helper);\r\n\r\n const movedPos = Vector3.Zero();\r\n const movedRot = Quaternion.Identity();\r\n helper.localPosition = movedPos;\r\n helper.localRotation = movedRot;\r\n\r\n moveUC.update(helper, ParametricLine.Forward());\r\n\r\n moveUC.finish();\r\n\r\n expect(transform.localPosition).toEqual(movedPos);\r\n expect(Quaternion.Close(transform.localRotation, movedRot)).toEqual(true);\r\n\r\n undo.doUndo();\r\n\r\n expect(transform.localPosition).toEqual(initialPos);\r\n expect(Quaternion.Close(transform.localRotation, initialRot)).toEqual(true);\r\n\r\n undo.doRedo();\r\n\r\n expect(transform.localPosition).toEqual(movedPos);\r\n expect(Quaternion.Close(transform.localRotation, movedRot)).toEqual(true);\r\n });\r\n});\r\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@vived/core");
4
4
  const core_2 = require("@vived/core");
5
- const MockDispatchStateChange_1 = require("../../Dispatcher/Mocks/MockDispatchStateChange");
5
+ const Dispatcher_1 = require("../../Dispatcher");
6
6
  const MockUndoRedo_1 = require("../../UndoRedo/Mocks/MockUndoRedo");
7
7
  const Entities_1 = require("../Entities");
8
8
  const MoveTransformUndoRedo_1 = require("./MoveTransformUndoRedo");
@@ -10,9 +10,13 @@ function makeTestRig() {
10
10
  const appObjects = (0, core_1.makeAppObjectRepo)();
11
11
  const ao = appObjects.getOrCreate("App");
12
12
  const mockUndo = new MockUndoRedo_1.MockUndoRedo(ao);
13
- const mockDispatcher = new MockDispatchStateChange_1.MockDispatchStateChange(ao);
13
+ // Override the submitAction with a jest.fn()
14
+ mockUndo.submitAction = jest.fn();
15
+ const mockDispatcher = (0, Dispatcher_1.makeMockDispatchStateChange)(appObjects);
16
+ const doDispatchMock = jest.fn();
17
+ mockDispatcher.doDispatch = doDispatchMock;
14
18
  const transform = (0, Entities_1.makeTransform3D)(ao);
15
- return { mockUndo, mockDispatcher, transform, appObjects };
19
+ return { mockUndo, mockDispatcher, doDispatchMock, transform, appObjects };
16
20
  }
17
21
  describe("Stylus Move Undo Redo action", () => {
18
22
  it("Submits itself to the entity", () => {
@@ -63,7 +67,7 @@ describe("Stylus Move Undo Redo action", () => {
63
67
  expect(core_2.Quaternion.Close(transform.localRotation, dto.endRotation)).toEqual(true);
64
68
  });
65
69
  it("Dispatches state changes for both the undo and redo action", () => {
66
- const { appObjects, transform, mockDispatcher } = makeTestRig();
70
+ const { appObjects, transform, doDispatchMock } = makeTestRig();
67
71
  const dto = {
68
72
  startPosition: new core_2.Vector3(-1, -2, -3),
69
73
  endPosition: new core_2.Vector3(1, 2, 3),
@@ -72,9 +76,9 @@ describe("Stylus Move Undo Redo action", () => {
72
76
  };
73
77
  const action = new MoveTransformUndoRedo_1.MoveTransformUndoRedo(dto, transform, appObjects);
74
78
  action.undoAction();
75
- expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(1);
79
+ expect(doDispatchMock).toHaveBeenCalledTimes(1);
76
80
  action.redoAction();
77
- expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(2);
81
+ expect(doDispatchMock).toHaveBeenCalledTimes(2);
78
82
  });
79
83
  });
80
84
  //# sourceMappingURL=MoveTransformUndoRedo.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoveTransformUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Transform3D/UC/MoveTransformUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport { makeTransform3D } from \"../Entities\";\r\nimport {\r\n MoveTransformUndoRedo,\r\n MoveTransformUndoRedoDTO,\r\n} from \"./MoveTransformUndoRedo\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ao = appObjects.getOrCreate(\"App\");\r\n const mockUndo = new MockUndoRedo(ao);\r\n const mockDispatcher = new MockDispatchStateChange(ao);\r\n const transform = makeTransform3D(ao);\r\n\r\n return { mockUndo, mockDispatcher, transform, appObjects };\r\n}\r\n\r\ndescribe(\"Stylus Move Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects, transform } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(1, 2, 3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ),\r\n };\r\n\r\n const action = new MoveTransformUndoRedo(dto, transform, appObjects);\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Does not submits itself to the entity if there is no change\", () => {\r\n const { mockUndo, appObjects, transform } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(-1, -2, -3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n };\r\n\r\n expect(mockUndo.submitAction).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Undo moves it to the start position and rotation\", () => {\r\n const { appObjects, transform } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(1, 2, 3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ),\r\n };\r\n\r\n const action = new MoveTransformUndoRedo(dto, transform, appObjects);\r\n\r\n action.undoAction();\r\n\r\n expect(transform.localPosition).toEqual(dto.startPosition);\r\n expect(\r\n Quaternion.Close(transform.localRotation, dto.startRotation)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Redo moves it to the end position and rotation\", () => {\r\n const { appObjects, transform } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(1, 2, 3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ),\r\n };\r\n\r\n const action = new MoveTransformUndoRedo(dto, transform, appObjects);\r\n\r\n action.redoAction();\r\n\r\n expect(transform.localPosition).toEqual(dto.endPosition);\r\n expect(Quaternion.Close(transform.localRotation, dto.endRotation)).toEqual(\r\n true\r\n );\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, transform, mockDispatcher } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(1, 2, 3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ),\r\n };\r\n\r\n const action = new MoveTransformUndoRedo(dto, transform, appObjects);\r\n\r\n action.undoAction();\r\n expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(1);\r\n\r\n action.redoAction();\r\n expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(2);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"MoveTransformUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Transform3D/UC/MoveTransformUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport { makeTransform3D } from \"../Entities\";\r\nimport {\r\n MoveTransformUndoRedo,\r\n MoveTransformUndoRedoDTO,\r\n} from \"./MoveTransformUndoRedo\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ao = appObjects.getOrCreate(\"App\");\r\n const mockUndo = new MockUndoRedo(ao);\r\n // Override the submitAction with a jest.fn()\r\n mockUndo.submitAction = jest.fn();\r\n const mockDispatcher = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatcher.doDispatch = doDispatchMock;\r\n const transform = makeTransform3D(ao);\r\n\r\n return { mockUndo, mockDispatcher, doDispatchMock, transform, appObjects };\r\n}\r\n\r\ndescribe(\"Stylus Move Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects, transform } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(1, 2, 3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ),\r\n };\r\n\r\n const action = new MoveTransformUndoRedo(dto, transform, appObjects);\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Does not submits itself to the entity if there is no change\", () => {\r\n const { mockUndo, appObjects, transform } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(-1, -2, -3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n };\r\n\r\n expect(mockUndo.submitAction).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Undo moves it to the start position and rotation\", () => {\r\n const { appObjects, transform } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(1, 2, 3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ),\r\n };\r\n\r\n const action = new MoveTransformUndoRedo(dto, transform, appObjects);\r\n\r\n action.undoAction();\r\n\r\n expect(transform.localPosition).toEqual(dto.startPosition);\r\n expect(\r\n Quaternion.Close(transform.localRotation, dto.startRotation)\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Redo moves it to the end position and rotation\", () => {\r\n const { appObjects, transform } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(1, 2, 3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ),\r\n };\r\n\r\n const action = new MoveTransformUndoRedo(dto, transform, appObjects);\r\n\r\n action.redoAction();\r\n\r\n expect(transform.localPosition).toEqual(dto.endPosition);\r\n expect(Quaternion.Close(transform.localRotation, dto.endRotation)).toEqual(\r\n true\r\n );\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, transform, doDispatchMock } = makeTestRig();\r\n\r\n const dto: MoveTransformUndoRedoDTO = {\r\n startPosition: new Vector3(-1, -2, -3),\r\n endPosition: new Vector3(1, 2, 3),\r\n startRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(-10),\r\n Angle.FromDegrees(-20),\r\n Angle.FromDegrees(-30)\r\n ),\r\n endRotation: Quaternion.FromEuler(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ),\r\n };\r\n\r\n const action = new MoveTransformUndoRedo(dto, transform, appObjects);\r\n\r\n action.undoAction();\r\n expect(doDispatchMock).toHaveBeenCalledTimes(1);\r\n\r\n action.redoAction();\r\n expect(doDispatchMock).toHaveBeenCalledTimes(2);\r\n });\r\n});\r\n"]}