@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":"AddAnswerUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/AddAnswerUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport {\r\n makeQuestionAnswerEntity,\r\n makeQuestionEntity,\r\n QuestionAnswerEntity,\r\n} from \"../Entities\";\r\nimport { AddAnswerUndoRedo } from \"./AddAnswerUndoRedo\";\r\n\r\nfunction setupQuestionAnswer(\r\n appObjects: AppObjectRepo,\r\n id?: string\r\n): QuestionAnswerEntity {\r\n const ao = appObjects.getOrCreate(id ?? \"answer\");\r\n return makeQuestionAnswerEntity(ao);\r\n}\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 questionEntity = makeQuestionEntity(ao);\r\n questionEntity.answerFactory = (id?: string) =>\r\n setupQuestionAnswer(appObjects, id);\r\n\r\n return { mockUndo, mockDispatcher, questionEntity, appObjects };\r\n}\r\n\r\ndescribe(\"Add Answer Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects } = makeTestRig();\r\n\r\n const action = new AddAnswerUndoRedo(\"questionID\", appObjects);\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Undo removes the added answer\", () => {\r\n const { appObjects, questionEntity } = makeTestRig();\r\n\r\n const ans = questionEntity.createNewAnswer();\r\n const action = new AddAnswerUndoRedo(ans.id, appObjects);\r\n\r\n action.undoAction();\r\n\r\n expect(questionEntity.hasAnswer(ans.id)).toEqual(false);\r\n });\r\n\r\n it(\"Redo adds the answer back in\", () => {\r\n const { appObjects, questionEntity } = makeTestRig();\r\n\r\n const ans = questionEntity.createNewAnswer();\r\n const action = new AddAnswerUndoRedo(ans.id, appObjects);\r\n\r\n action.undoAction();\r\n action.redoAction();\r\n\r\n expect(questionEntity.hasAnswer(ans.id)).toEqual(true);\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, questionEntity, mockDispatcher } = makeTestRig();\r\n\r\n const ans = questionEntity.createNewAnswer();\r\n const action = new AddAnswerUndoRedo(ans.id, 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":"AddAnswerUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/AddAnswerUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport {\r\n makeQuestionAnswerEntity,\r\n makeQuestionEntity,\r\n QuestionAnswerEntity,\r\n} from \"../Entities\";\r\nimport { AddAnswerUndoRedo } from \"./AddAnswerUndoRedo\";\r\n\r\nfunction setupQuestionAnswer(\r\n appObjects: AppObjectRepo,\r\n id?: string\r\n): QuestionAnswerEntity {\r\n const ao = appObjects.getOrCreate(id ?? \"answer\");\r\n return makeQuestionAnswerEntity(ao);\r\n}\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 questionEntity = makeQuestionEntity(ao);\r\n questionEntity.answerFactory = (id?: string) =>\r\n setupQuestionAnswer(appObjects, id);\r\n\r\n return {\r\n mockUndo,\r\n mockDispatcher,\r\n doDispatchMock,\r\n questionEntity,\r\n appObjects,\r\n };\r\n}\r\n\r\ndescribe(\"Add Answer Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects } = makeTestRig();\r\n\r\n const action = new AddAnswerUndoRedo(\"questionID\", appObjects);\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Undo removes the added answer\", () => {\r\n const { appObjects, questionEntity } = makeTestRig();\r\n\r\n const ans = questionEntity.createNewAnswer();\r\n const action = new AddAnswerUndoRedo(ans.id, appObjects);\r\n\r\n action.undoAction();\r\n\r\n expect(questionEntity.hasAnswer(ans.id)).toEqual(false);\r\n });\r\n\r\n it(\"Redo adds the answer back in\", () => {\r\n const { appObjects, questionEntity } = makeTestRig();\r\n\r\n const ans = questionEntity.createNewAnswer();\r\n const action = new AddAnswerUndoRedo(ans.id, appObjects);\r\n\r\n action.undoAction();\r\n action.redoAction();\r\n\r\n expect(questionEntity.hasAnswer(ans.id)).toEqual(true);\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, questionEntity, doDispatchMock } = makeTestRig();\r\n\r\n const ans = questionEntity.createNewAnswer();\r\n const action = new AddAnswerUndoRedo(ans.id, 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"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@vived/core");
4
- const MockDispatchStateChange_1 = require("../../Dispatcher/Mocks/MockDispatchStateChange");
4
+ const Dispatcher_1 = require("../../Dispatcher");
5
5
  const QuestionEntity_1 = require("../Entities/QuestionEntity");
6
6
  const AddQuestionAnswerUC_1 = require("./AddQuestionAnswerUC");
7
7
  const AddAnswerUndoRedo_1 = require("./AddAnswerUndoRedo");
@@ -23,10 +23,19 @@ function makeTestRig() {
23
23
  return (0, Entities_1.makeQuestionAnswerEntity)(ao);
24
24
  };
25
25
  const appAO = appObjects.getOrCreate("App");
26
- const mockDispatch = new MockDispatchStateChange_1.MockDispatchStateChange(appAO);
26
+ const mockDispatch = (0, Dispatcher_1.makeMockDispatchStateChange)(appObjects);
27
+ const doDispatchMock = jest.fn();
28
+ mockDispatch.doDispatch = doDispatchMock;
27
29
  const MockedUndoRedoAction = (0, jest_mock_1.mocked)(AddAnswerUndoRedo_1.AddAnswerUndoRedo);
28
30
  const uc = (0, AddQuestionAnswerUC_1.makeAddQuestionAnswerUC)(questionAO);
29
- return { questionEntity, uc, appObjects, mockDispatch, MockedUndoRedoAction };
31
+ return {
32
+ questionEntity,
33
+ uc,
34
+ appObjects,
35
+ mockDispatch,
36
+ doDispatchMock,
37
+ MockedUndoRedoAction,
38
+ };
30
39
  }
31
40
  describe("Add Answer use case", () => {
32
41
  it("Adds an answer", () => {
@@ -42,9 +51,9 @@ describe("Add Answer use case", () => {
42
51
  expect(appObjects.submitWarning).toHaveBeenCalled();
43
52
  });
44
53
  it("Dispatches a change", () => {
45
- const { uc, mockDispatch } = makeTestRig();
54
+ const { uc, doDispatchMock } = makeTestRig();
46
55
  uc.addAnswer();
47
- expect(mockDispatch.doDispatch).toHaveBeenCalled();
56
+ expect(doDispatchMock).toHaveBeenCalled();
48
57
  });
49
58
  it("Gets the UC", () => {
50
59
  const { uc, appObjects } = makeTestRig();
@@ -1 +1 @@
1
- {"version":3,"file":"AddQuestionAnswerUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/AddQuestionAnswerUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeQuestionEntity } from \"../Entities/QuestionEntity\";\r\nimport {\r\n addQuestionAnswer,\r\n AddQuestionAnswerUC,\r\n makeAddQuestionAnswerUC,\r\n} from \"./AddQuestionAnswerUC\";\r\nimport { AddAnswerUndoRedo } from \"./AddAnswerUndoRedo\";\r\nimport { mocked } from \"jest-mock\";\r\nimport { makeQuestionAnswerEntity } from \"../Entities\";\r\n\r\njest.mock(\"./AddAnswerUndoRedo\", () => {\r\n return {\r\n AddAnswerUndoRedo: jest.fn().mockImplementation(() => {\r\n return;\r\n }),\r\n };\r\n});\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const questionAO = appObjects.getOrCreate(\"Question\");\r\n const questionEntity = makeQuestionEntity(questionAO);\r\n questionEntity.answerFactory = (id?: string) => {\r\n const ao = appObjects.getOrCreate(id ?? \"answerID\");\r\n return makeQuestionAnswerEntity(ao);\r\n };\r\n\r\n const appAO = appObjects.getOrCreate(\"App\");\r\n const mockDispatch = new MockDispatchStateChange(appAO);\r\n\r\n const MockedUndoRedoAction = mocked(AddAnswerUndoRedo);\r\n\r\n const uc = makeAddQuestionAnswerUC(questionAO);\r\n return { questionEntity, uc, appObjects, mockDispatch, MockedUndoRedoAction };\r\n}\r\n\r\ndescribe(\"Add Answer use case\", () => {\r\n it(\"Adds an answer\", () => {\r\n const { questionEntity, uc } = makeTestRig();\r\n\r\n expect(questionEntity.getAllAnswers()).toHaveLength(0);\r\n\r\n uc.addAnswer();\r\n expect(questionEntity.getAllAnswers()).toHaveLength(1);\r\n });\r\n\r\n it(\"Warns if it is added to an App Object that does not have an Question Entity\", () => {\r\n const { appObjects } = makeTestRig();\r\n appObjects.submitWarning = jest.fn();\r\n\r\n makeAddQuestionAnswerUC(appObjects.getOrCreate(\"AnotherAO\"));\r\n\r\n expect(appObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Dispatches a change\", () => {\r\n const { uc, mockDispatch } = makeTestRig();\r\n\r\n uc.addAnswer();\r\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Gets the UC\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(AddQuestionAnswerUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Finds and calls the UC\", () => {\r\n const { appObjects, uc } = makeTestRig();\r\n\r\n uc.addAnswer = jest.fn();\r\n\r\n addQuestionAnswer(appObjects);\r\n expect(uc.addAnswer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Creates an Undo Redo action\", () => {\r\n const { uc, MockedUndoRedoAction, appObjects } = makeTestRig();\r\n MockedUndoRedoAction.mockClear();\r\n\r\n uc.addAnswer();\r\n\r\n expect(MockedUndoRedoAction).toHaveBeenCalledTimes(1);\r\n expect(MockedUndoRedoAction).toHaveBeenCalledWith(\"answerID\", appObjects);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"AddQuestionAnswerUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/AddQuestionAnswerUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { makeQuestionEntity } from \"../Entities/QuestionEntity\";\r\nimport {\r\n addQuestionAnswer,\r\n AddQuestionAnswerUC,\r\n makeAddQuestionAnswerUC,\r\n} from \"./AddQuestionAnswerUC\";\r\nimport { AddAnswerUndoRedo } from \"./AddAnswerUndoRedo\";\r\nimport { mocked } from \"jest-mock\";\r\nimport { makeQuestionAnswerEntity } from \"../Entities\";\r\n\r\njest.mock(\"./AddAnswerUndoRedo\", () => {\r\n return {\r\n AddAnswerUndoRedo: jest.fn().mockImplementation(() => {\r\n return;\r\n }),\r\n };\r\n});\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const questionAO = appObjects.getOrCreate(\"Question\");\r\n const questionEntity = makeQuestionEntity(questionAO);\r\n questionEntity.answerFactory = (id?: string) => {\r\n const ao = appObjects.getOrCreate(id ?? \"answerID\");\r\n return makeQuestionAnswerEntity(ao);\r\n };\r\n\r\n const appAO = appObjects.getOrCreate(\"App\");\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatch.doDispatch = doDispatchMock;\r\n\r\n const MockedUndoRedoAction = mocked(AddAnswerUndoRedo);\r\n\r\n const uc = makeAddQuestionAnswerUC(questionAO);\r\n return {\r\n questionEntity,\r\n uc,\r\n appObjects,\r\n mockDispatch,\r\n doDispatchMock,\r\n MockedUndoRedoAction,\r\n };\r\n}\r\n\r\ndescribe(\"Add Answer use case\", () => {\r\n it(\"Adds an answer\", () => {\r\n const { questionEntity, uc } = makeTestRig();\r\n\r\n expect(questionEntity.getAllAnswers()).toHaveLength(0);\r\n\r\n uc.addAnswer();\r\n expect(questionEntity.getAllAnswers()).toHaveLength(1);\r\n });\r\n\r\n it(\"Warns if it is added to an App Object that does not have an Question Entity\", () => {\r\n const { appObjects } = makeTestRig();\r\n appObjects.submitWarning = jest.fn();\r\n\r\n makeAddQuestionAnswerUC(appObjects.getOrCreate(\"AnotherAO\"));\r\n\r\n expect(appObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Dispatches a change\", () => {\r\n const { uc, doDispatchMock } = makeTestRig();\r\n\r\n uc.addAnswer();\r\n expect(doDispatchMock).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Gets the UC\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(AddQuestionAnswerUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Finds and calls the UC\", () => {\r\n const { appObjects, uc } = makeTestRig();\r\n\r\n uc.addAnswer = jest.fn();\r\n\r\n addQuestionAnswer(appObjects);\r\n expect(uc.addAnswer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Creates an Undo Redo action\", () => {\r\n const { uc, MockedUndoRedoAction, appObjects } = makeTestRig();\r\n MockedUndoRedoAction.mockClear();\r\n\r\n uc.addAnswer();\r\n\r\n expect(MockedUndoRedoAction).toHaveBeenCalledTimes(1);\r\n expect(MockedUndoRedoAction).toHaveBeenCalledWith(\"answerID\", appObjects);\r\n });\r\n});\r\n"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@vived/core");
4
- const MockDispatchStateChange_1 = require("../../Dispatcher/Mocks/MockDispatchStateChange");
4
+ const Dispatcher_1 = require("../../Dispatcher");
5
5
  const MockUndoRedo_1 = require("../../UndoRedo/Mocks/MockUndoRedo");
6
6
  const Entities_1 = require("../Entities");
7
7
  const DeleteAnswerUndoRedo_1 = require("./DeleteAnswerUndoRedo");
@@ -13,12 +13,23 @@ function makeTestRig() {
13
13
  const appObjects = (0, core_1.makeAppObjectRepo)();
14
14
  const ao = appObjects.getOrCreate("App");
15
15
  const mockUndo = new MockUndoRedo_1.MockUndoRedo(ao);
16
- const mockDispatcher = new MockDispatchStateChange_1.MockDispatchStateChange(ao);
16
+ // Override the submitAction with a jest.fn()
17
+ mockUndo.submitAction = jest.fn();
18
+ const mockDispatcher = (0, Dispatcher_1.makeMockDispatchStateChange)(appObjects);
19
+ const doDispatchMock = jest.fn();
20
+ mockDispatcher.doDispatch = doDispatchMock;
17
21
  const questionEntity = (0, Entities_1.makeQuestionEntity)(ao);
18
22
  questionEntity.answerFactory = (id) => setupQuestionAnswer(appObjects, id);
19
23
  const answer = questionEntity.createNewAnswer();
20
24
  questionEntity.removeAnswer(answer.id);
21
- return { mockUndo, mockDispatcher, questionEntity, appObjects, answer };
25
+ return {
26
+ mockUndo,
27
+ mockDispatcher,
28
+ doDispatchMock,
29
+ questionEntity,
30
+ appObjects,
31
+ answer,
32
+ };
22
33
  }
23
34
  describe("Add Answer Undo Redo action", () => {
24
35
  it("Submits itself to the entity", () => {
@@ -47,12 +58,12 @@ describe("Add Answer Undo Redo action", () => {
47
58
  expect(questionEntity.hasAnswer(answer.id)).toEqual(false);
48
59
  });
49
60
  it("Dispatches state changes for both the undo and redo action", () => {
50
- const { appObjects, mockDispatcher, answer } = makeTestRig();
61
+ const { appObjects, doDispatchMock, answer } = makeTestRig();
51
62
  const action = new DeleteAnswerUndoRedo_1.DeleteAnswerUndoRedo(answer, appObjects);
52
63
  action.undoAction();
53
- expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(1);
64
+ expect(doDispatchMock).toHaveBeenCalledTimes(1);
54
65
  action.redoAction();
55
- expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(2);
66
+ expect(doDispatchMock).toHaveBeenCalledTimes(2);
56
67
  });
57
68
  });
58
69
  //# sourceMappingURL=DeleteAnswerUndoRedo.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteAnswerUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/DeleteAnswerUndoRedo.test.ts"],"names":[],"mappings":";;AAAA,sCAA+D;AAC/D,4FAAyF;AACzF,oEAAiE;AACjE,0CAIqB;AACrB,iEAA8D;AAE9D,SAAS,mBAAmB,CAC1B,UAAyB,EACzB,EAAW;IAEX,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC;IAClD,OAAO,IAAA,mCAAwB,EAAC,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,2BAAY,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,IAAI,iDAAuB,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,IAAA,6BAAkB,EAAC,EAAE,CAAC,CAAC;IAC9C,cAAc,CAAC,aAAa,GAAG,CAAC,EAAW,EAAE,EAAE,CAC7C,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;IAChD,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEvC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC1E,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QAEvD,MAAM,MAAM,GAAG,IAAI,2CAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5D,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7D,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC;QACjC,MAAM,CAAC,YAAY,GAAG,sBAAsB,CAAC;QAC7C,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAExB,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,IAAI,2CAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE5D,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpB,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,OAAO,CAC/D,MAAM,CAAC,YAAY,CACpB,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,CAC5D,MAAM,CAAC,SAAS,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7D,MAAM,MAAM,GAAG,IAAI,2CAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE5D,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpB,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7D,MAAM,MAAM,GAAG,IAAI,2CAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE5D,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE3D,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport {\r\n makeQuestionAnswerEntity,\r\n makeQuestionEntity,\r\n QuestionAnswerEntity,\r\n} from \"../Entities\";\r\nimport { DeleteAnswerUndoRedo } from \"./DeleteAnswerUndoRedo\";\r\n\r\nfunction setupQuestionAnswer(\r\n appObjects: AppObjectRepo,\r\n id?: string\r\n): QuestionAnswerEntity {\r\n const ao = appObjects.getOrCreate(id ?? \"answer\");\r\n return makeQuestionAnswerEntity(ao);\r\n}\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 questionEntity = makeQuestionEntity(ao);\r\n questionEntity.answerFactory = (id?: string) =>\r\n setupQuestionAnswer(appObjects, id);\r\n\r\n const answer = questionEntity.createNewAnswer();\r\n questionEntity.removeAnswer(answer.id);\r\n\r\n return { mockUndo, mockDispatcher, questionEntity, appObjects, answer };\r\n}\r\n\r\ndescribe(\"Add Answer Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects, answer } = makeTestRig();\r\n\r\n const action = new DeleteAnswerUndoRedo(answer, appObjects);\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Undo adds the deleted answer and restores the data\", () => {\r\n const { appObjects, questionEntity, answer } = makeTestRig();\r\n\r\n answer.text = \"Some answer text\";\r\n answer.feedbackText = \"Some answer feedback\";\r\n answer.isCorrect = true;\r\n\r\n expect(questionEntity.hasAnswer(answer.id)).toEqual(false);\r\n\r\n const action = new DeleteAnswerUndoRedo(answer, appObjects);\r\n\r\n action.undoAction();\r\n\r\n expect(questionEntity.hasAnswer(answer.id)).toEqual(true);\r\n expect(questionEntity.getAnswer(answer.id)?.text).toEqual(answer.text);\r\n expect(questionEntity.getAnswer(answer.id)?.feedbackText).toEqual(\r\n answer.feedbackText\r\n );\r\n expect(questionEntity.getAnswer(answer.id)?.isCorrect).toEqual(\r\n answer.isCorrect\r\n );\r\n });\r\n\r\n it(\"Redo removes the answer\", () => {\r\n const { appObjects, questionEntity, answer } = makeTestRig();\r\n\r\n const action = new DeleteAnswerUndoRedo(answer, appObjects);\r\n\r\n action.undoAction();\r\n action.redoAction();\r\n\r\n expect(questionEntity.hasAnswer(answer.id)).toEqual(false);\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, mockDispatcher, answer } = makeTestRig();\r\n\r\n const action = new DeleteAnswerUndoRedo(answer, 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":"DeleteAnswerUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/DeleteAnswerUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport {\r\n makeQuestionAnswerEntity,\r\n makeQuestionEntity,\r\n QuestionAnswerEntity,\r\n} from \"../Entities\";\r\nimport { DeleteAnswerUndoRedo } from \"./DeleteAnswerUndoRedo\";\r\n\r\nfunction setupQuestionAnswer(\r\n appObjects: AppObjectRepo,\r\n id?: string\r\n): QuestionAnswerEntity {\r\n const ao = appObjects.getOrCreate(id ?? \"answer\");\r\n return makeQuestionAnswerEntity(ao);\r\n}\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 questionEntity = makeQuestionEntity(ao);\r\n questionEntity.answerFactory = (id?: string) =>\r\n setupQuestionAnswer(appObjects, id);\r\n\r\n const answer = questionEntity.createNewAnswer();\r\n questionEntity.removeAnswer(answer.id);\r\n\r\n return {\r\n mockUndo,\r\n mockDispatcher,\r\n doDispatchMock,\r\n questionEntity,\r\n appObjects,\r\n answer,\r\n };\r\n}\r\n\r\ndescribe(\"Add Answer Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects, answer } = makeTestRig();\r\n\r\n const action = new DeleteAnswerUndoRedo(answer, appObjects);\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Undo adds the deleted answer and restores the data\", () => {\r\n const { appObjects, questionEntity, answer } = makeTestRig();\r\n\r\n answer.text = \"Some answer text\";\r\n answer.feedbackText = \"Some answer feedback\";\r\n answer.isCorrect = true;\r\n\r\n expect(questionEntity.hasAnswer(answer.id)).toEqual(false);\r\n\r\n const action = new DeleteAnswerUndoRedo(answer, appObjects);\r\n\r\n action.undoAction();\r\n\r\n expect(questionEntity.hasAnswer(answer.id)).toEqual(true);\r\n expect(questionEntity.getAnswer(answer.id)?.text).toEqual(answer.text);\r\n expect(questionEntity.getAnswer(answer.id)?.feedbackText).toEqual(\r\n answer.feedbackText\r\n );\r\n expect(questionEntity.getAnswer(answer.id)?.isCorrect).toEqual(\r\n answer.isCorrect\r\n );\r\n });\r\n\r\n it(\"Redo removes the answer\", () => {\r\n const { appObjects, questionEntity, answer } = makeTestRig();\r\n\r\n const action = new DeleteAnswerUndoRedo(answer, appObjects);\r\n\r\n action.undoAction();\r\n action.redoAction();\r\n\r\n expect(questionEntity.hasAnswer(answer.id)).toEqual(false);\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, doDispatchMock, answer } = makeTestRig();\r\n\r\n const action = new DeleteAnswerUndoRedo(answer, 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"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@vived/core");
4
- const MockDispatchStateChange_1 = require("../../Dispatcher/Mocks/MockDispatchStateChange");
4
+ const Dispatcher_1 = require("../../Dispatcher");
5
5
  const QuestionEntity_1 = require("../Entities/QuestionEntity");
6
6
  const DeleteQuestionAnswerUC_1 = require("./DeleteQuestionAnswerUC");
7
7
  const MockQuestionAnswerEntity_1 = require("../Mocks/MockQuestionAnswerEntity");
@@ -22,7 +22,9 @@ function makeTestRig() {
22
22
  const mockAns = new MockQuestionAnswerEntity_1.MockQuestionAnswerEntity(ansAO);
23
23
  questionEntity.addAnswer(mockAns);
24
24
  const appAO = appObjects.getOrCreate("App");
25
- const mockDispatch = new MockDispatchStateChange_1.MockDispatchStateChange(appAO);
25
+ const mockDispatch = (0, Dispatcher_1.makeMockDispatchStateChange)(appObjects);
26
+ const doDispatchMock = jest.fn();
27
+ mockDispatch.doDispatch = doDispatchMock;
26
28
  const MockedUndoRedoAction = (0, jest_mock_1.mocked)(DeleteAnswerUndoRedo_1.DeleteAnswerUndoRedo);
27
29
  const uc = (0, DeleteQuestionAnswerUC_1.makeDeleteQuestionAnswerUC)(questionAO);
28
30
  return {
@@ -30,6 +32,7 @@ function makeTestRig() {
30
32
  uc,
31
33
  appObjects,
32
34
  mockDispatch,
35
+ doDispatchMock,
33
36
  mockAns,
34
37
  MockedUndoRedoAction,
35
38
  };
@@ -48,14 +51,14 @@ describe("Delete Answer use case", () => {
48
51
  expect(appObjects.submitWarning).toHaveBeenCalled();
49
52
  });
50
53
  it("Dispatches a change if a question is deleted", () => {
51
- const { uc, mockDispatch, mockAns } = makeTestRig();
54
+ const { uc, doDispatchMock, mockAns } = makeTestRig();
52
55
  uc.deleteAnswer(mockAns.id);
53
- expect(mockDispatch.doDispatch).toHaveBeenCalled();
56
+ expect(doDispatchMock).toHaveBeenCalled();
54
57
  });
55
58
  it("Does not Dispatches a change if a question is not deleted", () => {
56
- const { uc, mockDispatch } = makeTestRig();
59
+ const { uc, doDispatchMock } = makeTestRig();
57
60
  uc.deleteAnswer("something else");
58
- expect(mockDispatch.doDispatch).not.toHaveBeenCalled();
61
+ expect(doDispatchMock).not.toHaveBeenCalled();
59
62
  });
60
63
  it("Gets the UC", () => {
61
64
  const { uc, appObjects } = makeTestRig();
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteQuestionAnswerUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/DeleteQuestionAnswerUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeQuestionEntity } from \"../Entities/QuestionEntity\";\r\nimport {\r\n deleteQuestionAnswer,\r\n DeleteQuestionAnswerUC,\r\n makeDeleteQuestionAnswerUC,\r\n} from \"./DeleteQuestionAnswerUC\";\r\nimport { MockQuestionAnswerEntity } from \"../Mocks/MockQuestionAnswerEntity\";\r\nimport { DeleteAnswerUndoRedo } from \"./DeleteAnswerUndoRedo\";\r\nimport { mocked } from \"jest-mock\";\r\n\r\njest.mock(\"./DeleteAnswerUndoRedo\", () => {\r\n return {\r\n DeleteAnswerUndoRedo: jest.fn().mockImplementation(() => {\r\n return;\r\n }),\r\n };\r\n});\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const questionAO = appObjects.getOrCreate(\"Question\");\r\n const questionEntity = makeQuestionEntity(questionAO);\r\n\r\n const ansAO = appObjects.getOrCreate(\"Ans\");\r\n const mockAns = new MockQuestionAnswerEntity(ansAO);\r\n questionEntity.addAnswer(mockAns);\r\n\r\n const appAO = appObjects.getOrCreate(\"App\");\r\n const mockDispatch = new MockDispatchStateChange(appAO);\r\n\r\n const MockedUndoRedoAction = mocked(DeleteAnswerUndoRedo);\r\n\r\n const uc = makeDeleteQuestionAnswerUC(questionAO);\r\n return {\r\n questionEntity,\r\n uc,\r\n appObjects,\r\n mockDispatch,\r\n mockAns,\r\n MockedUndoRedoAction,\r\n };\r\n}\r\n\r\ndescribe(\"Delete Answer use case\", () => {\r\n it(\"Deletes the answer\", () => {\r\n const { questionEntity, uc, mockAns } = makeTestRig();\r\n\r\n expect(questionEntity.hasAnswer(mockAns.id)).toEqual(true);\r\n\r\n uc.deleteAnswer(mockAns.id);\r\n\r\n expect(questionEntity.hasAnswer(mockAns.id)).toEqual(false);\r\n });\r\n\r\n it(\"Warns if it is added to an App Object that does not have an Question Entity\", () => {\r\n const { appObjects } = makeTestRig();\r\n appObjects.submitWarning = jest.fn();\r\n\r\n makeDeleteQuestionAnswerUC(appObjects.getOrCreate(\"AnotherAO\"));\r\n\r\n expect(appObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Dispatches a change if a question is deleted\", () => {\r\n const { uc, mockDispatch, mockAns } = makeTestRig();\r\n\r\n uc.deleteAnswer(mockAns.id);\r\n\r\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not Dispatches a change if a question is not deleted\", () => {\r\n const { uc, mockDispatch } = makeTestRig();\r\n\r\n uc.deleteAnswer(\"something else\");\r\n\r\n expect(mockDispatch.doDispatch).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Gets the UC\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(DeleteQuestionAnswerUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Finds and calls the UC\", () => {\r\n const { appObjects, uc } = makeTestRig();\r\n\r\n uc.deleteAnswer = jest.fn();\r\n\r\n deleteQuestionAnswer(\"answerID\", appObjects);\r\n expect(uc.deleteAnswer).toHaveBeenCalledWith(\"answerID\");\r\n });\r\n\r\n it(\"Creates an Undo Redo action\", () => {\r\n const { uc, MockedUndoRedoAction, appObjects, mockAns } = makeTestRig();\r\n MockedUndoRedoAction.mockClear();\r\n\r\n uc.deleteAnswer(\"answerID\");\r\n\r\n expect(MockedUndoRedoAction).toHaveBeenCalledTimes(1);\r\n expect(MockedUndoRedoAction).toHaveBeenCalledWith(mockAns, appObjects);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"DeleteQuestionAnswerUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/DeleteQuestionAnswerUC.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,iDAA+D;AAC/D,+DAAgE;AAChE,qEAIkC;AAClC,gFAA6E;AAC7E,iEAA8D;AAC9D,yCAAmC;AAEnC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,OAAO;QACL,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACtD,OAAO;QACT,CAAC,CAAC;KACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,IAAA,mCAAkB,EAAC,UAAU,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,mDAAwB,CAAC,KAAK,CAAC,CAAC;IACpD,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAA,wCAA2B,EAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACjC,YAAY,CAAC,UAAU,GAAG,cAAc,CAAC;IAEzC,MAAM,oBAAoB,GAAG,IAAA,kBAAM,EAAC,2CAAoB,CAAC,CAAC;IAE1D,MAAM,EAAE,GAAG,IAAA,mDAA0B,EAAC,UAAU,CAAC,CAAC;IAClD,OAAO;QACL,cAAc;QACd,EAAE;QACF,UAAU;QACV,YAAY;QACZ,cAAc;QACd,OAAO;QACP,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtD,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE3D,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE5B,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QACrC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAErC,IAAA,mDAA0B,EAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAEhE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtD,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE5B,MAAM,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAElC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,MAAM,CAAC,+CAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE5B,IAAA,6CAAoB,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,EAAE,EAAE,oBAAoB,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;QACxE,oBAAoB,CAAC,SAAS,EAAE,CAAC;QAEjC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE5B,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { makeQuestionEntity } from \"../Entities/QuestionEntity\";\r\nimport {\r\n deleteQuestionAnswer,\r\n DeleteQuestionAnswerUC,\r\n makeDeleteQuestionAnswerUC,\r\n} from \"./DeleteQuestionAnswerUC\";\r\nimport { MockQuestionAnswerEntity } from \"../Mocks/MockQuestionAnswerEntity\";\r\nimport { DeleteAnswerUndoRedo } from \"./DeleteAnswerUndoRedo\";\r\nimport { mocked } from \"jest-mock\";\r\n\r\njest.mock(\"./DeleteAnswerUndoRedo\", () => {\r\n return {\r\n DeleteAnswerUndoRedo: jest.fn().mockImplementation(() => {\r\n return;\r\n }),\r\n };\r\n});\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const questionAO = appObjects.getOrCreate(\"Question\");\r\n const questionEntity = makeQuestionEntity(questionAO);\r\n\r\n const ansAO = appObjects.getOrCreate(\"Ans\");\r\n const mockAns = new MockQuestionAnswerEntity(ansAO);\r\n questionEntity.addAnswer(mockAns);\r\n\r\n const appAO = appObjects.getOrCreate(\"App\");\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatch.doDispatch = doDispatchMock;\r\n\r\n const MockedUndoRedoAction = mocked(DeleteAnswerUndoRedo);\r\n\r\n const uc = makeDeleteQuestionAnswerUC(questionAO);\r\n return {\r\n questionEntity,\r\n uc,\r\n appObjects,\r\n mockDispatch,\r\n doDispatchMock,\r\n mockAns,\r\n MockedUndoRedoAction,\r\n };\r\n}\r\n\r\ndescribe(\"Delete Answer use case\", () => {\r\n it(\"Deletes the answer\", () => {\r\n const { questionEntity, uc, mockAns } = makeTestRig();\r\n\r\n expect(questionEntity.hasAnswer(mockAns.id)).toEqual(true);\r\n\r\n uc.deleteAnswer(mockAns.id);\r\n\r\n expect(questionEntity.hasAnswer(mockAns.id)).toEqual(false);\r\n });\r\n\r\n it(\"Warns if it is added to an App Object that does not have an Question Entity\", () => {\r\n const { appObjects } = makeTestRig();\r\n appObjects.submitWarning = jest.fn();\r\n\r\n makeDeleteQuestionAnswerUC(appObjects.getOrCreate(\"AnotherAO\"));\r\n\r\n expect(appObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Dispatches a change if a question is deleted\", () => {\r\n const { uc, doDispatchMock, mockAns } = makeTestRig();\r\n\r\n uc.deleteAnswer(mockAns.id);\r\n\r\n expect(doDispatchMock).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not Dispatches a change if a question is not deleted\", () => {\r\n const { uc, doDispatchMock } = makeTestRig();\r\n\r\n uc.deleteAnswer(\"something else\");\r\n\r\n expect(doDispatchMock).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Gets the UC\", () => {\r\n const { uc, appObjects } = makeTestRig();\r\n\r\n expect(DeleteQuestionAnswerUC.get(appObjects)).toEqual(uc);\r\n });\r\n\r\n it(\"Finds and calls the UC\", () => {\r\n const { appObjects, uc } = makeTestRig();\r\n\r\n uc.deleteAnswer = jest.fn();\r\n\r\n deleteQuestionAnswer(\"answerID\", appObjects);\r\n expect(uc.deleteAnswer).toHaveBeenCalledWith(\"answerID\");\r\n });\r\n\r\n it(\"Creates an Undo Redo action\", () => {\r\n const { uc, MockedUndoRedoAction, appObjects, mockAns } = makeTestRig();\r\n MockedUndoRedoAction.mockClear();\r\n\r\n uc.deleteAnswer(\"answerID\");\r\n\r\n expect(MockedUndoRedoAction).toHaveBeenCalledTimes(1);\r\n expect(MockedUndoRedoAction).toHaveBeenCalledWith(mockAns, appObjects);\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 MockQuestionAnswerEntity_1 = require("../Mocks/MockQuestionAnswerEntity");
5
- const MockDispatchStateChange_1 = require("../../Dispatcher/Mocks/MockDispatchStateChange");
5
+ const Dispatcher_1 = require("../../Dispatcher");
6
6
  const SetAnswerFeedbackUC_1 = require("./SetAnswerFeedbackUC");
7
7
  const jest_mock_1 = require("jest-mock");
8
8
  const SetAnswerFeedbackUndoRedo_1 = require("./SetAnswerFeedbackUndoRedo");
@@ -18,7 +18,9 @@ function makeTestRig() {
18
18
  const ansAO = appObjects.getOrCreate("Ans");
19
19
  const mockAns = new MockQuestionAnswerEntity_1.MockQuestionAnswerEntity(ansAO);
20
20
  const appAO = appObjects.getOrCreate("App");
21
- const mockDispatch = new MockDispatchStateChange_1.MockDispatchStateChange(appAO);
21
+ const mockDispatch = (0, Dispatcher_1.makeMockDispatchStateChange)(appObjects);
22
+ const doDispatchMock = jest.fn();
23
+ mockDispatch.doDispatch = doDispatchMock;
22
24
  const MockedUndoRedoAction = (0, jest_mock_1.mocked)(SetAnswerFeedbackUndoRedo_1.SetAnswerFeedbackUndoRedo);
23
25
  const setFeedbackUC = (0, SetAnswerFeedbackUC_1.makeSetAnswerFeedbackUC)(ansAO);
24
26
  return {
@@ -26,6 +28,7 @@ function makeTestRig() {
26
28
  setFeedbackUC,
27
29
  appObjects,
28
30
  mockDispatch,
31
+ doDispatchMock,
29
32
  MockedUndoRedoAction,
30
33
  };
31
34
  }
@@ -37,16 +40,16 @@ describe("Set Answer Feedback use case", () => {
37
40
  expect(mockAns.feedbackText).toEqual("Hello World");
38
41
  });
39
42
  it("Dispatches if there is a change", () => {
40
- const { mockAns, setFeedbackUC, mockDispatch } = makeTestRig();
43
+ const { mockAns, setFeedbackUC, doDispatchMock } = makeTestRig();
41
44
  mockAns.feedbackText = "";
42
45
  setFeedbackUC.setFeedback("Hello World");
43
- expect(mockDispatch.doDispatch).toHaveBeenCalled();
46
+ expect(doDispatchMock).toHaveBeenCalled();
44
47
  });
45
48
  it("Does not dispatch if there is no change", () => {
46
- const { mockAns, setFeedbackUC, mockDispatch } = makeTestRig();
49
+ const { mockAns, setFeedbackUC, doDispatchMock } = makeTestRig();
47
50
  mockAns.feedbackText = "Hello World";
48
51
  setFeedbackUC.setFeedback("Hello World");
49
- expect(mockDispatch.doDispatch).not.toHaveBeenCalled();
52
+ expect(doDispatchMock).not.toHaveBeenCalled();
50
53
  });
51
54
  it("Warns if it is added to an App Object that does not have an Answer Entity", () => {
52
55
  const { appObjects } = makeTestRig();
@@ -1 +1 @@
1
- {"version":3,"file":"SetAnswerFeedbackUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SetAnswerFeedbackUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockQuestionAnswerEntity } from \"../Mocks/MockQuestionAnswerEntity\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { makeSetAnswerFeedbackUC } from \"./SetAnswerFeedbackUC\";\r\nimport { mocked } from \"jest-mock\";\r\nimport { SetAnswerFeedbackUndoRedo } from \"./SetAnswerFeedbackUndoRedo\";\r\n\r\njest.mock(\"./SetAnswerFeedbackUndoRedo\", () => {\r\n return {\r\n SetAnswerFeedbackUndoRedo: jest.fn().mockImplementation(() => {\r\n return;\r\n }),\r\n };\r\n});\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ansAO = appObjects.getOrCreate(\"Ans\");\r\n const mockAns = new MockQuestionAnswerEntity(ansAO);\r\n\r\n const appAO = appObjects.getOrCreate(\"App\");\r\n const mockDispatch = new MockDispatchStateChange(appAO);\r\n\r\n const MockedUndoRedoAction = mocked(SetAnswerFeedbackUndoRedo);\r\n\r\n const setFeedbackUC = makeSetAnswerFeedbackUC(ansAO);\r\n return {\r\n mockAns,\r\n setFeedbackUC,\r\n appObjects,\r\n mockDispatch,\r\n MockedUndoRedoAction,\r\n };\r\n}\r\n\r\ndescribe(\"Set Answer Feedback use case\", () => {\r\n it(\"Sets the Feedback\", () => {\r\n const { mockAns, setFeedbackUC } = makeTestRig();\r\n mockAns.feedbackText = \"\";\r\n\r\n setFeedbackUC.setFeedback(\"Hello World\");\r\n expect(mockAns.feedbackText).toEqual(\"Hello World\");\r\n });\r\n\r\n it(\"Dispatches if there is a change\", () => {\r\n const { mockAns, setFeedbackUC, mockDispatch } = makeTestRig();\r\n mockAns.feedbackText = \"\";\r\n\r\n setFeedbackUC.setFeedback(\"Hello World\");\r\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch if there is no change\", () => {\r\n const { mockAns, setFeedbackUC, mockDispatch } = makeTestRig();\r\n mockAns.feedbackText = \"Hello World\";\r\n\r\n setFeedbackUC.setFeedback(\"Hello World\");\r\n expect(mockDispatch.doDispatch).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Warns if it is added to an App Object that does not have an Answer Entity\", () => {\r\n const { appObjects } = makeTestRig();\r\n appObjects.submitWarning = jest.fn();\r\n\r\n makeSetAnswerFeedbackUC(appObjects.getOrCreate(\"AnotherAO\"));\r\n\r\n expect(appObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Creates an Undo Redo action\", () => {\r\n const { setFeedbackUC, MockedUndoRedoAction, appObjects, mockAns } =\r\n makeTestRig();\r\n MockedUndoRedoAction.mockClear();\r\n mockAns.feedbackText = \"Initial feedback\";\r\n\r\n setFeedbackUC.setFeedback(\"Hello World\");\r\n\r\n expect(MockedUndoRedoAction).toHaveBeenCalledTimes(1);\r\n expect(MockedUndoRedoAction).toHaveBeenCalledWith(\r\n \"Initial feedback\",\r\n mockAns.id,\r\n appObjects\r\n );\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"SetAnswerFeedbackUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SetAnswerFeedbackUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockQuestionAnswerEntity } from \"../Mocks/MockQuestionAnswerEntity\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { makeSetAnswerFeedbackUC } from \"./SetAnswerFeedbackUC\";\r\nimport { mocked } from \"jest-mock\";\r\nimport { SetAnswerFeedbackUndoRedo } from \"./SetAnswerFeedbackUndoRedo\";\r\n\r\njest.mock(\"./SetAnswerFeedbackUndoRedo\", () => {\r\n return {\r\n SetAnswerFeedbackUndoRedo: jest.fn().mockImplementation(() => {\r\n return;\r\n }),\r\n };\r\n});\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ansAO = appObjects.getOrCreate(\"Ans\");\r\n const mockAns = new MockQuestionAnswerEntity(ansAO);\r\n\r\n const appAO = appObjects.getOrCreate(\"App\");\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatch.doDispatch = doDispatchMock;\r\n\r\n const MockedUndoRedoAction = mocked(SetAnswerFeedbackUndoRedo);\r\n\r\n const setFeedbackUC = makeSetAnswerFeedbackUC(ansAO);\r\n return {\r\n mockAns,\r\n setFeedbackUC,\r\n appObjects,\r\n mockDispatch,\r\n doDispatchMock,\r\n MockedUndoRedoAction,\r\n };\r\n}\r\n\r\ndescribe(\"Set Answer Feedback use case\", () => {\r\n it(\"Sets the Feedback\", () => {\r\n const { mockAns, setFeedbackUC } = makeTestRig();\r\n mockAns.feedbackText = \"\";\r\n\r\n setFeedbackUC.setFeedback(\"Hello World\");\r\n expect(mockAns.feedbackText).toEqual(\"Hello World\");\r\n });\r\n\r\n it(\"Dispatches if there is a change\", () => {\r\n const { mockAns, setFeedbackUC, doDispatchMock } = makeTestRig();\r\n mockAns.feedbackText = \"\";\r\n\r\n setFeedbackUC.setFeedback(\"Hello World\");\r\n expect(doDispatchMock).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch if there is no change\", () => {\r\n const { mockAns, setFeedbackUC, doDispatchMock } = makeTestRig();\r\n mockAns.feedbackText = \"Hello World\";\r\n\r\n setFeedbackUC.setFeedback(\"Hello World\");\r\n expect(doDispatchMock).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Warns if it is added to an App Object that does not have an Answer Entity\", () => {\r\n const { appObjects } = makeTestRig();\r\n appObjects.submitWarning = jest.fn();\r\n\r\n makeSetAnswerFeedbackUC(appObjects.getOrCreate(\"AnotherAO\"));\r\n\r\n expect(appObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Creates an Undo Redo action\", () => {\r\n const { setFeedbackUC, MockedUndoRedoAction, appObjects, mockAns } =\r\n makeTestRig();\r\n MockedUndoRedoAction.mockClear();\r\n mockAns.feedbackText = \"Initial feedback\";\r\n\r\n setFeedbackUC.setFeedback(\"Hello World\");\r\n\r\n expect(MockedUndoRedoAction).toHaveBeenCalledTimes(1);\r\n expect(MockedUndoRedoAction).toHaveBeenCalledWith(\r\n \"Initial feedback\",\r\n mockAns.id,\r\n appObjects\r\n );\r\n });\r\n});\r\n"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@vived/core");
4
- const MockDispatchStateChange_1 = require("../../Dispatcher/Mocks/MockDispatchStateChange");
4
+ const Dispatcher_1 = require("../../Dispatcher");
5
5
  const MockUndoRedo_1 = require("../../UndoRedo/Mocks/MockUndoRedo");
6
6
  const Entities_1 = require("../Entities");
7
7
  const SetAnswerFeedbackUndoRedo_1 = require("./SetAnswerFeedbackUndoRedo");
@@ -9,14 +9,18 @@ function makeTestRig() {
9
9
  const appObjects = (0, core_1.makeAppObjectRepo)();
10
10
  const ao = appObjects.getOrCreate("App");
11
11
  const mockUndo = new MockUndoRedo_1.MockUndoRedo(ao);
12
- const mockDispatcher = new MockDispatchStateChange_1.MockDispatchStateChange(ao);
12
+ // Override the submitAction with a jest.fn()
13
+ mockUndo.submitAction = jest.fn();
14
+ const mockDispatcher = (0, Dispatcher_1.makeMockDispatchStateChange)(appObjects);
15
+ const doDispatchMock = jest.fn();
16
+ mockDispatcher.doDispatch = doDispatchMock;
13
17
  const questionEntity = (0, Entities_1.makeQuestionEntity)(ao);
14
18
  questionEntity.answerFactory = (id) => {
15
19
  const answerAO = appObjects.getOrCreate(id ?? "answer");
16
20
  return (0, Entities_1.makeQuestionAnswerEntity)(answerAO);
17
21
  };
18
22
  const answer = questionEntity.createNewAnswer();
19
- return { mockUndo, mockDispatcher, appObjects, answer };
23
+ return { mockUndo, mockDispatcher, doDispatchMock, appObjects, answer };
20
24
  }
21
25
  describe("Add Answer Undo Redo action", () => {
22
26
  it("Submits itself to the entity", () => {
@@ -41,12 +45,12 @@ describe("Add Answer Undo Redo action", () => {
41
45
  expect(answer.feedbackText).toEqual("Hello World");
42
46
  });
43
47
  it("Dispatches state changes for both the undo and redo action", () => {
44
- const { appObjects, mockDispatcher, answer } = makeTestRig();
48
+ const { appObjects, doDispatchMock, answer } = makeTestRig();
45
49
  const action = new SetAnswerFeedbackUndoRedo_1.SetAnswerFeedbackUndoRedo("Initial Text", answer.id, appObjects);
46
50
  action.undoAction();
47
- expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(1);
51
+ expect(doDispatchMock).toHaveBeenCalledTimes(1);
48
52
  action.redoAction();
49
- expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(2);
53
+ expect(doDispatchMock).toHaveBeenCalledTimes(2);
50
54
  });
51
55
  });
52
56
  //# sourceMappingURL=SetAnswerFeedbackUndoRedo.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetAnswerFeedbackUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SetAnswerFeedbackUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport { makeQuestionAnswerEntity, makeQuestionEntity } from \"../Entities\";\r\nimport { SetAnswerFeedbackUndoRedo } from \"./SetAnswerFeedbackUndoRedo\";\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 questionEntity = makeQuestionEntity(ao);\r\n\r\n questionEntity.answerFactory = (id?: string) => {\r\n const answerAO = appObjects.getOrCreate(id ?? \"answer\");\r\n return makeQuestionAnswerEntity(answerAO);\r\n };\r\n\r\n const answer = questionEntity.createNewAnswer();\r\n\r\n return { mockUndo, mockDispatcher, appObjects, answer };\r\n}\r\n\r\ndescribe(\"Add Answer Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects, answer } = makeTestRig();\r\n\r\n const action = new SetAnswerFeedbackUndoRedo(\r\n \"initial feedback\",\r\n answer.id,\r\n appObjects\r\n );\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Undo adds the deleted answer\", () => {\r\n const { appObjects, answer } = makeTestRig();\r\n\r\n answer.feedbackText = \"Hello World\";\r\n\r\n const action = new SetAnswerFeedbackUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\r\n\r\n action.undoAction();\r\n\r\n expect(answer.feedbackText).toEqual(\"Initial Text\");\r\n });\r\n\r\n it(\"Redo removes the answer\", () => {\r\n const { appObjects, answer } = makeTestRig();\r\n\r\n answer.feedbackText = \"Hello World\";\r\n\r\n const action = new SetAnswerFeedbackUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\r\n\r\n expect(answer.isCorrect).toEqual(false);\r\n\r\n action.undoAction();\r\n action.redoAction();\r\n\r\n expect(answer.feedbackText).toEqual(\"Hello World\");\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, mockDispatcher, answer } = makeTestRig();\r\n\r\n const action = new SetAnswerFeedbackUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\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":"SetAnswerFeedbackUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SetAnswerFeedbackUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport { makeQuestionAnswerEntity, makeQuestionEntity } from \"../Entities\";\r\nimport { SetAnswerFeedbackUndoRedo } from \"./SetAnswerFeedbackUndoRedo\";\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 questionEntity = makeQuestionEntity(ao);\r\n\r\n questionEntity.answerFactory = (id?: string) => {\r\n const answerAO = appObjects.getOrCreate(id ?? \"answer\");\r\n return makeQuestionAnswerEntity(answerAO);\r\n };\r\n\r\n const answer = questionEntity.createNewAnswer();\r\n\r\n return { mockUndo, mockDispatcher, doDispatchMock, appObjects, answer };\r\n}\r\n\r\ndescribe(\"Add Answer Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects, answer } = makeTestRig();\r\n\r\n const action = new SetAnswerFeedbackUndoRedo(\r\n \"initial feedback\",\r\n answer.id,\r\n appObjects\r\n );\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Undo adds the deleted answer\", () => {\r\n const { appObjects, answer } = makeTestRig();\r\n\r\n answer.feedbackText = \"Hello World\";\r\n\r\n const action = new SetAnswerFeedbackUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\r\n\r\n action.undoAction();\r\n\r\n expect(answer.feedbackText).toEqual(\"Initial Text\");\r\n });\r\n\r\n it(\"Redo removes the answer\", () => {\r\n const { appObjects, answer } = makeTestRig();\r\n\r\n answer.feedbackText = \"Hello World\";\r\n\r\n const action = new SetAnswerFeedbackUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\r\n\r\n expect(answer.isCorrect).toEqual(false);\r\n\r\n action.undoAction();\r\n action.redoAction();\r\n\r\n expect(answer.feedbackText).toEqual(\"Hello World\");\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, doDispatchMock, answer } = makeTestRig();\r\n\r\n const action = new SetAnswerFeedbackUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\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"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@vived/core");
4
- const MockDispatchStateChange_1 = require("../../Dispatcher/Mocks/MockDispatchStateChange");
4
+ const Dispatcher_1 = require("../../Dispatcher");
5
5
  const MockQuestionAnswerEntity_1 = require("../Mocks/MockQuestionAnswerEntity");
6
6
  const SetAnswerTextUC_1 = require("./SetAnswerTextUC");
7
7
  const jest_mock_1 = require("jest-mock");
@@ -18,7 +18,9 @@ function makeTestRig() {
18
18
  const ansAO = appObjects.getOrCreate("Ans");
19
19
  const mockAns = new MockQuestionAnswerEntity_1.MockQuestionAnswerEntity(ansAO);
20
20
  const appAO = appObjects.getOrCreate("App");
21
- const mockDispatch = new MockDispatchStateChange_1.MockDispatchStateChange(appAO);
21
+ const mockDispatch = (0, Dispatcher_1.makeMockDispatchStateChange)(appObjects);
22
+ const doDispatchMock = jest.fn();
23
+ mockDispatch.doDispatch = doDispatchMock;
22
24
  const MockedUndoRedoAction = (0, jest_mock_1.mocked)(SetAnswerTextUndoRedo_1.SetAnswerTextUndoRedo);
23
25
  const setAnswerText = (0, SetAnswerTextUC_1.makeSetAnswerTextUC)(ansAO);
24
26
  return {
@@ -26,6 +28,7 @@ function makeTestRig() {
26
28
  setAnswerText,
27
29
  appObjects,
28
30
  mockDispatch,
31
+ doDispatchMock,
29
32
  MockedUndoRedoAction,
30
33
  };
31
34
  }
@@ -43,16 +46,16 @@ describe("Set Answer Text use case", () => {
43
46
  expect(appObjects.submitWarning).toHaveBeenCalled();
44
47
  });
45
48
  it("Dispatches if there is a change", () => {
46
- const { mockAns, setAnswerText, mockDispatch } = makeTestRig();
49
+ const { mockAns, setAnswerText, doDispatchMock } = makeTestRig();
47
50
  mockAns.text = "";
48
51
  setAnswerText.setText("Hello World");
49
- expect(mockDispatch.doDispatch).toHaveBeenCalled();
52
+ expect(doDispatchMock).toHaveBeenCalled();
50
53
  });
51
54
  it("Does not dispatch if there is no change", () => {
52
- const { mockAns, setAnswerText, mockDispatch } = makeTestRig();
55
+ const { mockAns, setAnswerText, doDispatchMock } = makeTestRig();
53
56
  mockAns.text = "Hello World";
54
57
  setAnswerText.setText("Hello World");
55
- expect(mockDispatch.doDispatch).not.toHaveBeenCalled();
58
+ expect(doDispatchMock).not.toHaveBeenCalled();
56
59
  });
57
60
  it("Creates an Undo Redo action", () => {
58
61
  const { setAnswerText, MockedUndoRedoAction, appObjects, mockAns } = makeTestRig();
@@ -1 +1 @@
1
- {"version":3,"file":"SetAnswerTextUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SetAnswerTextUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { MockQuestionAnswerEntity } from \"../Mocks/MockQuestionAnswerEntity\";\r\nimport { makeSetAnswerTextUC } from \"./SetAnswerTextUC\";\r\nimport { mocked } from \"jest-mock\";\r\nimport { SetAnswerTextUndoRedo } from \"./SetAnswerTextUndoRedo\";\r\n\r\njest.mock(\"./SetAnswerTextUndoRedo\", () => {\r\n return {\r\n SetAnswerTextUndoRedo: jest.fn().mockImplementation(() => {\r\n return;\r\n }),\r\n };\r\n});\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ansAO = appObjects.getOrCreate(\"Ans\");\r\n const mockAns = new MockQuestionAnswerEntity(ansAO);\r\n\r\n const appAO = appObjects.getOrCreate(\"App\");\r\n const mockDispatch = new MockDispatchStateChange(appAO);\r\n\r\n const MockedUndoRedoAction = mocked(SetAnswerTextUndoRedo);\r\n\r\n const setAnswerText = makeSetAnswerTextUC(ansAO);\r\n return {\r\n mockAns,\r\n setAnswerText,\r\n appObjects,\r\n mockDispatch,\r\n MockedUndoRedoAction,\r\n };\r\n}\r\n\r\ndescribe(\"Set Answer Text use case\", () => {\r\n it(\"Sets the text\", () => {\r\n const { mockAns, setAnswerText } = makeTestRig();\r\n mockAns.text = \"\";\r\n\r\n setAnswerText.setText(\"Hello World\");\r\n expect(mockAns.text).toEqual(\"Hello World\");\r\n });\r\n\r\n it(\"Warns if it is added to an App Object that does not have an Answer Entity\", () => {\r\n const { appObjects } = makeTestRig();\r\n appObjects.submitWarning = jest.fn();\r\n\r\n makeSetAnswerTextUC(appObjects.getOrCreate(\"AnotherAO\"));\r\n\r\n expect(appObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Dispatches if there is a change\", () => {\r\n const { mockAns, setAnswerText, mockDispatch } = makeTestRig();\r\n mockAns.text = \"\";\r\n\r\n setAnswerText.setText(\"Hello World\");\r\n expect(mockDispatch.doDispatch).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch if there is no change\", () => {\r\n const { mockAns, setAnswerText, mockDispatch } = makeTestRig();\r\n mockAns.text = \"Hello World\";\r\n\r\n setAnswerText.setText(\"Hello World\");\r\n expect(mockDispatch.doDispatch).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Creates an Undo Redo action\", () => {\r\n const { setAnswerText, MockedUndoRedoAction, appObjects, mockAns } =\r\n makeTestRig();\r\n MockedUndoRedoAction.mockClear();\r\n mockAns.text = \"Initial text\";\r\n\r\n setAnswerText.setText(\"Hello World\");\r\n\r\n expect(MockedUndoRedoAction).toHaveBeenCalledTimes(1);\r\n expect(MockedUndoRedoAction).toHaveBeenCalledWith(\r\n \"Initial text\",\r\n mockAns.id,\r\n appObjects\r\n );\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"SetAnswerTextUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SetAnswerTextUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { MockQuestionAnswerEntity } from \"../Mocks/MockQuestionAnswerEntity\";\r\nimport { makeSetAnswerTextUC } from \"./SetAnswerTextUC\";\r\nimport { mocked } from \"jest-mock\";\r\nimport { SetAnswerTextUndoRedo } from \"./SetAnswerTextUndoRedo\";\r\n\r\njest.mock(\"./SetAnswerTextUndoRedo\", () => {\r\n return {\r\n SetAnswerTextUndoRedo: jest.fn().mockImplementation(() => {\r\n return;\r\n }),\r\n };\r\n});\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const ansAO = appObjects.getOrCreate(\"Ans\");\r\n const mockAns = new MockQuestionAnswerEntity(ansAO);\r\n\r\n const appAO = appObjects.getOrCreate(\"App\");\r\n const mockDispatch = makeMockDispatchStateChange(appObjects);\r\n const doDispatchMock = jest.fn();\r\n mockDispatch.doDispatch = doDispatchMock;\r\n\r\n const MockedUndoRedoAction = mocked(SetAnswerTextUndoRedo);\r\n\r\n const setAnswerText = makeSetAnswerTextUC(ansAO);\r\n return {\r\n mockAns,\r\n setAnswerText,\r\n appObjects,\r\n mockDispatch,\r\n doDispatchMock,\r\n MockedUndoRedoAction,\r\n };\r\n}\r\n\r\ndescribe(\"Set Answer Text use case\", () => {\r\n it(\"Sets the text\", () => {\r\n const { mockAns, setAnswerText } = makeTestRig();\r\n mockAns.text = \"\";\r\n\r\n setAnswerText.setText(\"Hello World\");\r\n expect(mockAns.text).toEqual(\"Hello World\");\r\n });\r\n\r\n it(\"Warns if it is added to an App Object that does not have an Answer Entity\", () => {\r\n const { appObjects } = makeTestRig();\r\n appObjects.submitWarning = jest.fn();\r\n\r\n makeSetAnswerTextUC(appObjects.getOrCreate(\"AnotherAO\"));\r\n\r\n expect(appObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Dispatches if there is a change\", () => {\r\n const { mockAns, setAnswerText, doDispatchMock } = makeTestRig();\r\n mockAns.text = \"\";\r\n\r\n setAnswerText.setText(\"Hello World\");\r\n expect(doDispatchMock).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Does not dispatch if there is no change\", () => {\r\n const { mockAns, setAnswerText, doDispatchMock } = makeTestRig();\r\n mockAns.text = \"Hello World\";\r\n\r\n setAnswerText.setText(\"Hello World\");\r\n expect(doDispatchMock).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Creates an Undo Redo action\", () => {\r\n const { setAnswerText, MockedUndoRedoAction, appObjects, mockAns } =\r\n makeTestRig();\r\n MockedUndoRedoAction.mockClear();\r\n mockAns.text = \"Initial text\";\r\n\r\n setAnswerText.setText(\"Hello World\");\r\n\r\n expect(MockedUndoRedoAction).toHaveBeenCalledTimes(1);\r\n expect(MockedUndoRedoAction).toHaveBeenCalledWith(\r\n \"Initial text\",\r\n mockAns.id,\r\n appObjects\r\n );\r\n });\r\n});\r\n"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@vived/core");
4
- const MockDispatchStateChange_1 = require("../../Dispatcher/Mocks/MockDispatchStateChange");
4
+ const Dispatcher_1 = require("../../Dispatcher");
5
5
  const MockUndoRedo_1 = require("../../UndoRedo/Mocks/MockUndoRedo");
6
6
  const Entities_1 = require("../Entities");
7
7
  const SetAnswerTextUndoRedo_1 = require("./SetAnswerTextUndoRedo");
@@ -9,14 +9,18 @@ function makeTestRig() {
9
9
  const appObjects = (0, core_1.makeAppObjectRepo)();
10
10
  const ao = appObjects.getOrCreate("App");
11
11
  const mockUndo = new MockUndoRedo_1.MockUndoRedo(ao);
12
- const mockDispatcher = new MockDispatchStateChange_1.MockDispatchStateChange(ao);
12
+ // Override the submitAction with a jest.fn()
13
+ mockUndo.submitAction = jest.fn();
14
+ const mockDispatcher = (0, Dispatcher_1.makeMockDispatchStateChange)(appObjects);
15
+ const doDispatchMock = jest.fn();
16
+ mockDispatcher.doDispatch = doDispatchMock;
13
17
  const questionEntity = (0, Entities_1.makeQuestionEntity)(ao);
14
18
  questionEntity.answerFactory = (id) => {
15
19
  const answerAO = appObjects.getOrCreate(id ?? "answer");
16
20
  return (0, Entities_1.makeQuestionAnswerEntity)(answerAO);
17
21
  };
18
22
  const answer = questionEntity.createNewAnswer();
19
- return { mockUndo, mockDispatcher, appObjects, answer };
23
+ return { mockUndo, mockDispatcher, doDispatchMock, appObjects, answer };
20
24
  }
21
25
  describe("Add Answer Undo Redo action", () => {
22
26
  it("Submits itself to the entity", () => {
@@ -41,12 +45,12 @@ describe("Add Answer Undo Redo action", () => {
41
45
  expect(answer.text).toEqual("Hello World");
42
46
  });
43
47
  it("Dispatches state changes for both the undo and redo action", () => {
44
- const { appObjects, mockDispatcher, answer } = makeTestRig();
48
+ const { appObjects, doDispatchMock, answer } = makeTestRig();
45
49
  const action = new SetAnswerTextUndoRedo_1.SetAnswerTextUndoRedo("Initial Text", answer.id, appObjects);
46
50
  action.undoAction();
47
- expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(1);
51
+ expect(doDispatchMock).toHaveBeenCalledTimes(1);
48
52
  action.redoAction();
49
- expect(mockDispatcher.doDispatch).toHaveBeenCalledTimes(2);
53
+ expect(doDispatchMock).toHaveBeenCalledTimes(2);
50
54
  });
51
55
  });
52
56
  //# sourceMappingURL=SetAnswerTextUndoRedo.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetAnswerTextUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SetAnswerTextUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { MockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport { makeQuestionAnswerEntity, makeQuestionEntity } from \"../Entities\";\r\nimport { SetAnswerTextUndoRedo } from \"./SetAnswerTextUndoRedo\";\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 questionEntity = makeQuestionEntity(ao);\r\n\r\n questionEntity.answerFactory = (id?: string) => {\r\n const answerAO = appObjects.getOrCreate(id ?? \"answer\");\r\n return makeQuestionAnswerEntity(answerAO);\r\n };\r\n\r\n const answer = questionEntity.createNewAnswer();\r\n\r\n return { mockUndo, mockDispatcher, appObjects, answer };\r\n}\r\n\r\ndescribe(\"Add Answer Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects, answer } = makeTestRig();\r\n\r\n const action = new SetAnswerTextUndoRedo(\r\n \"initial text\",\r\n answer.id,\r\n appObjects\r\n );\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Undo adds the deleted answer\", () => {\r\n const { appObjects, answer } = makeTestRig();\r\n\r\n answer.text = \"Hello World\";\r\n\r\n const action = new SetAnswerTextUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\r\n\r\n action.undoAction();\r\n\r\n expect(answer.text).toEqual(\"Initial Text\");\r\n });\r\n\r\n it(\"Redo removes the answer\", () => {\r\n const { appObjects, answer } = makeTestRig();\r\n\r\n answer.text = \"Hello World\";\r\n\r\n const action = new SetAnswerTextUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\r\n\r\n expect(answer.isCorrect).toEqual(false);\r\n\r\n action.undoAction();\r\n action.redoAction();\r\n\r\n expect(answer.text).toEqual(\"Hello World\");\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, mockDispatcher, answer } = makeTestRig();\r\n\r\n const action = new SetAnswerTextUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\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":"SetAnswerTextUndoRedo.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SetAnswerTextUndoRedo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeMockDispatchStateChange } from \"../../Dispatcher\";\r\nimport { MockUndoRedo } from \"../../UndoRedo/Mocks/MockUndoRedo\";\r\nimport { makeQuestionAnswerEntity, makeQuestionEntity } from \"../Entities\";\r\nimport { SetAnswerTextUndoRedo } from \"./SetAnswerTextUndoRedo\";\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 questionEntity = makeQuestionEntity(ao);\r\n\r\n questionEntity.answerFactory = (id?: string) => {\r\n const answerAO = appObjects.getOrCreate(id ?? \"answer\");\r\n return makeQuestionAnswerEntity(answerAO);\r\n };\r\n\r\n const answer = questionEntity.createNewAnswer();\r\n\r\n return { mockUndo, mockDispatcher, doDispatchMock, appObjects, answer };\r\n}\r\n\r\ndescribe(\"Add Answer Undo Redo action\", () => {\r\n it(\"Submits itself to the entity\", () => {\r\n const { mockUndo, appObjects, answer } = makeTestRig();\r\n\r\n const action = new SetAnswerTextUndoRedo(\r\n \"initial text\",\r\n answer.id,\r\n appObjects\r\n );\r\n expect(mockUndo.submitAction).toHaveBeenCalledWith(action);\r\n });\r\n\r\n it(\"Undo adds the deleted answer\", () => {\r\n const { appObjects, answer } = makeTestRig();\r\n\r\n answer.text = \"Hello World\";\r\n\r\n const action = new SetAnswerTextUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\r\n\r\n action.undoAction();\r\n\r\n expect(answer.text).toEqual(\"Initial Text\");\r\n });\r\n\r\n it(\"Redo removes the answer\", () => {\r\n const { appObjects, answer } = makeTestRig();\r\n\r\n answer.text = \"Hello World\";\r\n\r\n const action = new SetAnswerTextUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\r\n\r\n expect(answer.isCorrect).toEqual(false);\r\n\r\n action.undoAction();\r\n action.redoAction();\r\n\r\n expect(answer.text).toEqual(\"Hello World\");\r\n });\r\n\r\n it(\"Dispatches state changes for both the undo and redo action\", () => {\r\n const { appObjects, doDispatchMock, answer } = makeTestRig();\r\n\r\n const action = new SetAnswerTextUndoRedo(\r\n \"Initial Text\",\r\n answer.id,\r\n appObjects\r\n );\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"]}