@vived/app 5.2.0 → 5.3.0

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 (95) hide show
  1. package/dist/cjs/Babylon/Mocks/MockBabylonRenderingUC.js +3 -3
  2. package/dist/cjs/Babylon/Mocks/MockBabylonRenderingUC.js.map +1 -1
  3. package/dist/cjs/Babylon/Mocks/MockPixelToSceneRayUC.js +1 -1
  4. package/dist/cjs/Babylon/Mocks/MockPixelToSceneRayUC.js.map +1 -1
  5. package/dist/cjs/Babylon/Mocks/MockScenePixelPickUC.js +1 -1
  6. package/dist/cjs/Babylon/Mocks/MockScenePixelPickUC.js.map +1 -1
  7. package/dist/cjs/Babylon/Mocks/MockSceneRayPickUC.js +1 -3
  8. package/dist/cjs/Babylon/Mocks/MockSceneRayPickUC.js.map +1 -1
  9. package/dist/cjs/Babylon/Mocks/ShowBabylonInspectorPmMock.js +1 -1
  10. package/dist/cjs/Babylon/Mocks/ShowBabylonInspectorPmMock.js.map +1 -1
  11. package/dist/cjs/Babylon/UC/PixelToSceneRayUC.test.js +2 -0
  12. package/dist/cjs/Babylon/UC/PixelToSceneRayUC.test.js.map +1 -1
  13. package/dist/cjs/Babylon/UC/ScenePixelPickUC.test.js +2 -0
  14. package/dist/cjs/Babylon/UC/ScenePixelPickUC.test.js.map +1 -1
  15. package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js +3 -0
  16. package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
  17. package/dist/cjs/Callouts/UC/TryAddCallout.test.js +1 -0
  18. package/dist/cjs/Callouts/UC/TryAddCallout.test.js.map +1 -1
  19. package/dist/cjs/Hideable/UCs/TryHideWithPickUC.test.js +3 -1
  20. package/dist/cjs/Hideable/UCs/TryHideWithPickUC.test.js.map +1 -1
  21. package/dist/cjs/HoverLabel/UseCases/TryShowHoverLabel.test.js +9 -3
  22. package/dist/cjs/HoverLabel/UseCases/TryShowHoverLabel.test.js.map +1 -1
  23. package/dist/cjs/LabelDrop/Controller/TouchLabelDropAuthor.test.js +4 -1
  24. package/dist/cjs/LabelDrop/Controller/TouchLabelDropAuthor.test.js.map +1 -1
  25. package/dist/cjs/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.test.js +5 -2
  26. package/dist/cjs/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.test.js.map +1 -1
  27. package/dist/cjs/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js +1 -0
  28. package/dist/cjs/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js.map +1 -1
  29. package/dist/cjs/ObjectPick/UseCases/TrySelectObjectPickUC.test.js +1 -0
  30. package/dist/cjs/ObjectPick/UseCases/TrySelectObjectPickUC.test.js.map +1 -1
  31. package/dist/cjs/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js +1 -0
  32. package/dist/cjs/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js.map +1 -1
  33. package/dist/cjs/Stick/UCs/TryStickAppObjectUC.test.js +3 -1
  34. package/dist/cjs/Stick/UCs/TryStickAppObjectUC.test.js.map +1 -1
  35. package/dist/cjs/Stylus/UCs/EmulateStylusUC.test.js +3 -1
  36. package/dist/cjs/Stylus/UCs/EmulateStylusUC.test.js.map +1 -1
  37. package/dist/cjs/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js +1 -0
  38. package/dist/cjs/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js.map +1 -1
  39. package/dist/cjs/Transform3D/UC/PinchTransform.test.js +1 -0
  40. package/dist/cjs/Transform3D/UC/PinchTransform.test.js.map +1 -1
  41. package/dist/cjs/Transform3D/UC/TryPanTransformUC.test.js +1 -0
  42. package/dist/cjs/Transform3D/UC/TryPanTransformUC.test.js.map +1 -1
  43. package/dist/esm/Babylon/Mocks/MockBabylonRenderingUC.js +3 -3
  44. package/dist/esm/Babylon/Mocks/MockBabylonRenderingUC.js.map +1 -1
  45. package/dist/esm/Babylon/Mocks/MockPixelToSceneRayUC.js +1 -1
  46. package/dist/esm/Babylon/Mocks/MockPixelToSceneRayUC.js.map +1 -1
  47. package/dist/esm/Babylon/Mocks/MockScenePixelPickUC.js +1 -1
  48. package/dist/esm/Babylon/Mocks/MockScenePixelPickUC.js.map +1 -1
  49. package/dist/esm/Babylon/Mocks/MockSceneRayPickUC.js +1 -3
  50. package/dist/esm/Babylon/Mocks/MockSceneRayPickUC.js.map +1 -1
  51. package/dist/esm/Babylon/Mocks/ShowBabylonInspectorPmMock.js +1 -1
  52. package/dist/esm/Babylon/Mocks/ShowBabylonInspectorPmMock.js.map +1 -1
  53. package/dist/esm/Babylon/UC/PixelToSceneRayUC.test.js +2 -0
  54. package/dist/esm/Babylon/UC/PixelToSceneRayUC.test.js.map +1 -1
  55. package/dist/esm/Babylon/UC/ScenePixelPickUC.test.js +2 -0
  56. package/dist/esm/Babylon/UC/ScenePixelPickUC.test.js.map +1 -1
  57. package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js +3 -0
  58. package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
  59. package/dist/esm/Callouts/UC/TryAddCallout.test.js +1 -0
  60. package/dist/esm/Callouts/UC/TryAddCallout.test.js.map +1 -1
  61. package/dist/esm/Hideable/UCs/TryHideWithPickUC.test.js +3 -1
  62. package/dist/esm/Hideable/UCs/TryHideWithPickUC.test.js.map +1 -1
  63. package/dist/esm/HoverLabel/UseCases/TryShowHoverLabel.test.js +9 -3
  64. package/dist/esm/HoverLabel/UseCases/TryShowHoverLabel.test.js.map +1 -1
  65. package/dist/esm/LabelDrop/Controller/TouchLabelDropAuthor.test.js +4 -1
  66. package/dist/esm/LabelDrop/Controller/TouchLabelDropAuthor.test.js.map +1 -1
  67. package/dist/esm/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.test.js +5 -2
  68. package/dist/esm/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.test.js.map +1 -1
  69. package/dist/esm/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js +1 -0
  70. package/dist/esm/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js.map +1 -1
  71. package/dist/esm/ObjectPick/UseCases/TrySelectObjectPickUC.test.js +1 -0
  72. package/dist/esm/ObjectPick/UseCases/TrySelectObjectPickUC.test.js.map +1 -1
  73. package/dist/esm/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js +1 -0
  74. package/dist/esm/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js.map +1 -1
  75. package/dist/esm/Stick/UCs/TryStickAppObjectUC.test.js +3 -1
  76. package/dist/esm/Stick/UCs/TryStickAppObjectUC.test.js.map +1 -1
  77. package/dist/esm/Stylus/UCs/EmulateStylusUC.test.js +3 -1
  78. package/dist/esm/Stylus/UCs/EmulateStylusUC.test.js.map +1 -1
  79. package/dist/esm/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js +1 -0
  80. package/dist/esm/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js.map +1 -1
  81. package/dist/esm/Transform3D/UC/PinchTransform.test.js +1 -0
  82. package/dist/esm/Transform3D/UC/PinchTransform.test.js.map +1 -1
  83. package/dist/esm/Transform3D/UC/TryPanTransformUC.test.js +1 -0
  84. package/dist/esm/Transform3D/UC/TryPanTransformUC.test.js.map +1 -1
  85. package/dist/types/Babylon/Mocks/MockBabylonRenderingUC.d.ts +3 -3
  86. package/dist/types/Babylon/Mocks/MockBabylonRenderingUC.d.ts.map +1 -1
  87. package/dist/types/Babylon/Mocks/MockPixelToSceneRayUC.d.ts +1 -1
  88. package/dist/types/Babylon/Mocks/MockPixelToSceneRayUC.d.ts.map +1 -1
  89. package/dist/types/Babylon/Mocks/MockScenePixelPickUC.d.ts +1 -1
  90. package/dist/types/Babylon/Mocks/MockScenePixelPickUC.d.ts.map +1 -1
  91. package/dist/types/Babylon/Mocks/MockSceneRayPickUC.d.ts +1 -1
  92. package/dist/types/Babylon/Mocks/MockSceneRayPickUC.d.ts.map +1 -1
  93. package/dist/types/Babylon/Mocks/ShowBabylonInspectorPmMock.d.ts +1 -1
  94. package/dist/types/Babylon/Mocks/ShowBabylonInspectorPmMock.d.ts.map +1 -1
  95. package/package.json +1 -1
@@ -5,6 +5,8 @@ function makeTestRig() {
5
5
  const appObjects = makeAppObjectRepo();
6
6
  const ao = appObjects.getOrCreate("AO");
7
7
  const mockPickUC = makeMockPixelToSceneRayUC(appObjects);
8
+ // Convert method to jest mock
9
+ mockPickUC.pixelToSceneRay = jest.fn();
8
10
  const mockSubmitWarning = jest.fn();
9
11
  appObjects.submitWarning = mockSubmitWarning;
10
12
  return { appObjects, ao, mockPickUC, mockSubmitWarning };
@@ -1 +1 @@
1
- {"version":3,"file":"PixelToSceneRayUC.test.js","sourceRoot":"","sources":["../../../../src/Babylon/UC/PixelToSceneRayUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAEzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACpC,UAAU,CAAC,aAAa,GAAG,iBAAiB,CAAC;IAE7C,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AAC3D,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QACjD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEjD,eAAe,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE/C,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,CAAC;QACpE,UAAU,CAAC,OAAO,EAAE,CAAC;QAErB,eAAe,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo, Vector2 } from \"@vived/core\";\nimport { makeMockPixelToSceneRayUC } from \"../Mocks\";\nimport { pixelToSceneRay, PixelToSceneRayUC } from \"./PixelToSceneRayUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const ao = appObjects.getOrCreate(\"AO\");\n const mockPickUC = makeMockPixelToSceneRayUC(appObjects);\n\n const mockSubmitWarning = jest.fn();\n appObjects.submitWarning = mockSubmitWarning;\n\n return { appObjects, ao, mockPickUC, mockSubmitWarning };\n}\n\ndescribe(\"Dispatch State Change\", () => {\n it(\"Gets the UC\", () => {\n const { mockPickUC, appObjects } = makeTestRig();\n expect(PixelToSceneRayUC.get(appObjects)).toEqual(mockPickUC);\n });\n\n it(\"Finds and uses the SceneRayPickUC\", () => {\n const { appObjects, mockPickUC } = makeTestRig();\n\n pixelToSceneRay(new Vector2(1, 2), appObjects);\n\n expect(mockPickUC.pixelToSceneRay).toHaveBeenCalledWith(new Vector2(1, 2));\n });\n\n it(\"Warns if it can't find SceneRayPickUC\", () => {\n const { mockPickUC, appObjects, mockSubmitWarning } = makeTestRig();\n mockPickUC.dispose();\n\n pixelToSceneRay(new Vector2(1, 2), appObjects);\n\n expect(mockSubmitWarning).toHaveBeenCalled();\n });\n});\n"]}
1
+ {"version":3,"file":"PixelToSceneRayUC.test.js","sourceRoot":"","sources":["../../../../src/Babylon/UC/PixelToSceneRayUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAEzD,8BAA8B;IAC9B,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAEvC,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACpC,UAAU,CAAC,aAAa,GAAG,iBAAiB,CAAC;IAE7C,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AAC3D,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QACjD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEjD,eAAe,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE/C,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,CAAC;QACpE,UAAU,CAAC,OAAO,EAAE,CAAC;QAErB,eAAe,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo, Vector2 } from \"@vived/core\";\nimport { makeMockPixelToSceneRayUC } from \"../Mocks\";\nimport { pixelToSceneRay, PixelToSceneRayUC } from \"./PixelToSceneRayUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const ao = appObjects.getOrCreate(\"AO\");\n const mockPickUC = makeMockPixelToSceneRayUC(appObjects);\n\n // Convert method to jest mock\n mockPickUC.pixelToSceneRay = jest.fn();\n\n const mockSubmitWarning = jest.fn();\n appObjects.submitWarning = mockSubmitWarning;\n\n return { appObjects, ao, mockPickUC, mockSubmitWarning };\n}\n\ndescribe(\"Dispatch State Change\", () => {\n it(\"Gets the UC\", () => {\n const { mockPickUC, appObjects } = makeTestRig();\n expect(PixelToSceneRayUC.get(appObjects)).toEqual(mockPickUC);\n });\n\n it(\"Finds and uses the SceneRayPickUC\", () => {\n const { appObjects, mockPickUC } = makeTestRig();\n\n pixelToSceneRay(new Vector2(1, 2), appObjects);\n\n expect(mockPickUC.pixelToSceneRay).toHaveBeenCalledWith(new Vector2(1, 2));\n });\n\n it(\"Warns if it can't find SceneRayPickUC\", () => {\n const { mockPickUC, appObjects, mockSubmitWarning } = makeTestRig();\n mockPickUC.dispose();\n\n pixelToSceneRay(new Vector2(1, 2), appObjects);\n\n expect(mockSubmitWarning).toHaveBeenCalled();\n });\n});\n"]}
@@ -5,6 +5,8 @@ function makeTestRig() {
5
5
  const appObjects = makeAppObjectRepo();
6
6
  const ao = appObjects.getOrCreate("AO");
7
7
  const mockPickUC = makeMockScenePixelPickUC(appObjects);
8
+ // Convert method to jest mock
9
+ mockPickUC.scenePixelPick = jest.fn();
8
10
  const mockSubmitWarning = jest.fn();
9
11
  appObjects.submitWarning = mockSubmitWarning;
10
12
  return { appObjects, ao, mockPickUC, mockSubmitWarning };
@@ -1 +1 @@
1
- {"version":3,"file":"ScenePixelPickUC.test.js","sourceRoot":"","sources":["../../../../src/Babylon/UC/ScenePixelPickUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACpC,UAAU,CAAC,aAAa,GAAG,iBAAiB,CAAC;IAE7C,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AAC3D,CAAC;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QACjD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEjD,cAAc,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,CAAC;QACpE,UAAU,CAAC,OAAO,EAAE,CAAC;QAErB,cAAc,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE9C,MAAM,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo, Vector2 } from \"@vived/core\";\nimport { makeMockScenePixelPickUC } from \"../Mocks\";\nimport { scenePixelPick, ScenePixelPickUC } from \"./ScenePixelPickUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const ao = appObjects.getOrCreate(\"AO\");\n const mockPickUC = makeMockScenePixelPickUC(appObjects);\n const mockSubmitWarning = jest.fn();\n appObjects.submitWarning = mockSubmitWarning;\n\n return { appObjects, ao, mockPickUC, mockSubmitWarning };\n}\n\ndescribe(\"Scene Pixel Pick UC\", () => {\n it(\"Gets the UC\", () => {\n const { mockPickUC, appObjects } = makeTestRig();\n expect(ScenePixelPickUC.get(appObjects)).toEqual(mockPickUC);\n });\n\n it(\"Finds and uses the SceneRayPickUC\", () => {\n const { appObjects, mockPickUC } = makeTestRig();\n\n scenePixelPick(new Vector2(1, 2), appObjects);\n\n expect(mockPickUC.scenePixelPick).toHaveBeenCalledWith(new Vector2(1, 2));\n });\n\n it(\"Warns if it can't find SceneRayPickUC\", () => {\n const { mockPickUC, appObjects, mockSubmitWarning } = makeTestRig();\n mockPickUC.dispose();\n\n scenePixelPick(new Vector2(1, 2), appObjects);\n\n expect(mockSubmitWarning).toHaveBeenCalled();\n });\n});\n"]}
1
+ {"version":3,"file":"ScenePixelPickUC.test.js","sourceRoot":"","sources":["../../../../src/Babylon/UC/ScenePixelPickUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAExD,8BAA8B;IAC9B,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAEtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACpC,UAAU,CAAC,aAAa,GAAG,iBAAiB,CAAC;IAE7C,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AAC3D,CAAC;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QACjD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAEjD,cAAc,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,CAAC;QACpE,UAAU,CAAC,OAAO,EAAE,CAAC;QAErB,cAAc,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE9C,MAAM,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo, Vector2 } from \"@vived/core\";\nimport { makeMockScenePixelPickUC } from \"../Mocks\";\nimport { scenePixelPick, ScenePixelPickUC } from \"./ScenePixelPickUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const ao = appObjects.getOrCreate(\"AO\");\n const mockPickUC = makeMockScenePixelPickUC(appObjects);\n\n // Convert method to jest mock\n mockPickUC.scenePixelPick = jest.fn();\n\n const mockSubmitWarning = jest.fn();\n appObjects.submitWarning = mockSubmitWarning;\n\n return { appObjects, ao, mockPickUC, mockSubmitWarning };\n}\n\ndescribe(\"Scene Pixel Pick UC\", () => {\n it(\"Gets the UC\", () => {\n const { mockPickUC, appObjects } = makeTestRig();\n expect(ScenePixelPickUC.get(appObjects)).toEqual(mockPickUC);\n });\n\n it(\"Finds and uses the SceneRayPickUC\", () => {\n const { appObjects, mockPickUC } = makeTestRig();\n\n scenePixelPick(new Vector2(1, 2), appObjects);\n\n expect(mockPickUC.scenePixelPick).toHaveBeenCalledWith(new Vector2(1, 2));\n });\n\n it(\"Warns if it can't find SceneRayPickUC\", () => {\n const { mockPickUC, appObjects, mockSubmitWarning } = makeTestRig();\n mockPickUC.dispose();\n\n scenePixelPick(new Vector2(1, 2), appObjects);\n\n expect(mockSubmitWarning).toHaveBeenCalled();\n });\n});\n"]}
@@ -15,6 +15,9 @@ function makeTestRig() {
15
15
  // Convert mouse input methods to jest mocks
16
16
  mockMouse.setEventElement = jest.fn();
17
17
  mockMouse.clearInputElement = jest.fn();
18
+ // Convert babylon rendering methods to jest mocks
19
+ mockBabylon.submitRenderCanvas = jest.fn();
20
+ mockBabylon.clearRenderCanvas = jest.fn();
18
21
  const mockWarn = jest.fn();
19
22
  appObjects.submitWarning = mockWarn;
20
23
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"RenderCanvasUC.test.js","sourceRoot":"","sources":["../../../../src/BaseApp/UC/RenderCanvasUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAEhD,4CAA4C;IAC5C,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACtC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC;IAEpC,OAAO;QACL,UAAU;QACV,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;KACV,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEtD,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAEjD,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAE3D,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEtD,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAE9C,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAExD,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEtD,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAE9C,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAExD,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEtD,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAEhD,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAE1D,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE/C,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QACzD,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEnB,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE9C,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE1B,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeRenderCanvasUC, RenderCanvasUC } from \"./RenderCanvasUC\";\nimport { MockKeyboardInput } from \"../../KeyboardInput/Mocks/MockKeyboardInput\";\nimport { MockMouseInput } from \"../../MouseInput/Mocks/MockMouseInput\";\nimport { MockTouchInputEntity } from \"../../TouchController/Mock/MockTouchInput\";\nimport { makeMockBabylonRenderingUC } from \"../../Babylon\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const app = appObjects.getOrCreate(\"App\");\n const renderUC = makeRenderCanvasUC(app);\n const mockKeybaord = new MockKeyboardInput(app);\n const mockBabylon = makeMockBabylonRenderingUC(appObjects);\n const mockMouse = new MockMouseInput(app);\n const mockTouch = new MockTouchInputEntity(app);\n\n // Convert mouse input methods to jest mocks\n mockMouse.setEventElement = jest.fn();\n mockMouse.clearInputElement = jest.fn();\n\n const mockWarn = jest.fn();\n appObjects.submitWarning = mockWarn;\n\n return {\n appObjects,\n renderUC,\n mockBabylon,\n mockKeybaord,\n mockWarn,\n mockTouch,\n mockMouse,\n };\n}\n\ndescribe(\"Render Canvas UC\", () => {\n it(\"Submits the canvas to the keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockKeybaord.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the keyboard input when a canvas is submitted\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockKeybaord.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockKeybaord.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the keyboard input when a canvas is cleared\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n\n mockKeybaord.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockMouse.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the mouse input when a canvas is submitted\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockMouse.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockMouse.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the mouse input when a canvas is cleared\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n\n mockMouse.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockTouch.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the touch input when a canvas is submitted\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockTouch.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockTouch.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the touch input when a canvas is cleared\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n\n mockTouch.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockBabylon.submitRenderCanvas).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is submitted\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockBabylon.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockBabylon.clearRenderCanvas).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is cleared\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n\n mockBabylon.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { renderUC, appObjects } = makeTestRig();\n\n expect(RenderCanvasUC.get(appObjects)).toEqual(renderUC);\n });\n\n it(\"Warns and returns undefined if there is no UC\", () => {\n const { renderUC, appObjects, mockWarn } = makeTestRig();\n renderUC.dispose();\n\n expect(RenderCanvasUC.get(appObjects)).toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Warns if there are more than two UCs found\", () => {\n const { appObjects, mockWarn } = makeTestRig();\n const newAO = appObjects.getOrCreate(\"newAO\");\n\n makeRenderCanvasUC(newAO);\n\n expect(RenderCanvasUC.get(appObjects)).not.toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n});\n"]}
1
+ {"version":3,"file":"RenderCanvasUC.test.js","sourceRoot":"","sources":["../../../../src/BaseApp/UC/RenderCanvasUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeRenderCanvasUC, RenderCanvasUC } from \"./RenderCanvasUC\";\nimport { MockKeyboardInput } from \"../../KeyboardInput/Mocks/MockKeyboardInput\";\nimport { MockMouseInput } from \"../../MouseInput/Mocks/MockMouseInput\";\nimport { MockTouchInputEntity } from \"../../TouchController/Mock/MockTouchInput\";\nimport { makeMockBabylonRenderingUC } from \"../../Babylon\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const app = appObjects.getOrCreate(\"App\");\n const renderUC = makeRenderCanvasUC(app);\n const mockKeybaord = new MockKeyboardInput(app);\n const mockBabylon = makeMockBabylonRenderingUC(appObjects);\n const mockMouse = new MockMouseInput(app);\n const mockTouch = new MockTouchInputEntity(app);\n\n // Convert mouse input methods to jest mocks\n mockMouse.setEventElement = jest.fn();\n mockMouse.clearInputElement = jest.fn();\n\n // Convert babylon rendering methods to jest mocks\n mockBabylon.submitRenderCanvas = jest.fn();\n mockBabylon.clearRenderCanvas = jest.fn();\n\n const mockWarn = jest.fn();\n appObjects.submitWarning = mockWarn;\n\n return {\n appObjects,\n renderUC,\n mockBabylon,\n mockKeybaord,\n mockWarn,\n mockTouch,\n mockMouse,\n };\n}\n\ndescribe(\"Render Canvas UC\", () => {\n it(\"Submits the canvas to the keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockKeybaord.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the keyboard input when a canvas is submitted\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockKeybaord.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockKeybaord.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the keyboard input when a canvas is cleared\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n\n mockKeybaord.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockMouse.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the mouse input when a canvas is submitted\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockMouse.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockMouse.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the mouse input when a canvas is cleared\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n\n mockMouse.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockTouch.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the touch input when a canvas is submitted\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockTouch.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockTouch.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the touch input when a canvas is cleared\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n\n mockTouch.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockBabylon.submitRenderCanvas).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is submitted\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockBabylon.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockBabylon.clearRenderCanvas).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is cleared\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n\n mockBabylon.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { renderUC, appObjects } = makeTestRig();\n\n expect(RenderCanvasUC.get(appObjects)).toEqual(renderUC);\n });\n\n it(\"Warns and returns undefined if there is no UC\", () => {\n const { renderUC, appObjects, mockWarn } = makeTestRig();\n renderUC.dispose();\n\n expect(RenderCanvasUC.get(appObjects)).toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Warns if there are more than two UCs found\", () => {\n const { appObjects, mockWarn } = makeTestRig();\n const newAO = appObjects.getOrCreate(\"newAO\");\n\n makeRenderCanvasUC(newAO);\n\n expect(RenderCanvasUC.get(appObjects)).not.toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n});\n"]}
@@ -21,6 +21,7 @@ function makeTestRig() {
21
21
  const mockCreate = new CreateCalloutUcMock(calloutAO);
22
22
  mockCreate.fromPick.mockReturnValue(appObjects.getOrCreate("appObj2"));
23
23
  const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);
24
+ mockPixelToRay.pixelToSceneRay = jest.fn();
24
25
  const tryAddUC = makeTryAddCalloutUC(createCalloutAO);
25
26
  const toolRepo = makeToolRepo(appObjects.getOrCreate("ToolRepo"));
26
27
  toolRepo.makeTool("CALLOUT");
@@ -1 +1 @@
1
- {"version":3,"file":"TryAddCallout.test.js","sourceRoot":"","sources":["../../../../src/Callouts/UC/TryAddCallout.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n makeAppObjectRepo,\n ParametricLine,\n Vector2,\n Vector3,\n} from \"@vived/core\";\nimport {\n makeMockPixelToSceneRayUC,\n makeMockSceneRayPickUC,\n} from \"../../Babylon/Mocks\";\nimport { makeToolRepo } from \"../../Tools\";\nimport { CreateCalloutUcMock } from \"../Mocks/CreateCalloutUcMock\";\nimport { CreateCalloutUC } from \"./CreateCalloutUC\";\nimport { makeTryAddCalloutUC } from \"./TryAddCallout\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const createCalloutAO = appObjects.getOrCreate(\"createCalloutAO\");\n\n const mockSceneRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue({\n worldPickPoint: new Vector3(1, 2, 3),\n hit: true,\n normal: new Vector3(4, 5, 6),\n objectPickMeta: {\n appObjectID: \"appObj1\",\n },\n });\n\n mockSceneRayPick.sceneRayPick = mockPick;\n\n const calloutAO = appObjects.getOrCreate(\"appObj1\");\n const mockCreate = new CreateCalloutUcMock(calloutAO);\n mockCreate.fromPick.mockReturnValue(appObjects.getOrCreate(\"appObj2\"));\n\n const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);\n\n const tryAddUC = makeTryAddCalloutUC(createCalloutAO);\n\n const toolRepo = makeToolRepo(appObjects.getOrCreate(\"ToolRepo\"));\n toolRepo.makeTool(\"CALLOUT\");\n toolRepo.makeTool(\"OTHER\");\n toolRepo.triggerTool(\"CALLOUT\");\n\n return {\n tryAddUC,\n mockPick,\n mockCreate,\n calloutAO,\n appObjects,\n mockPixelToRay,\n toolRepo,\n };\n}\n\ndescribe(\"Try Add Callout UC\", () => {\n it(\"Forms the pixel into a ray and passed it to the initialize with ray\", () => {\n const { mockPixelToRay, tryAddUC } = makeTestRig();\n\n const mockRay = ParametricLine.FromTwoPoint(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6),\n );\n mockPixelToRay.pixelToSceneRay.mockReturnValue(mockRay);\n\n tryAddUC.initializeWithRay = jest.fn();\n\n tryAddUC.initializeWithPixel(new Vector2(7, 8));\n\n expect(mockPixelToRay.pixelToSceneRay).toHaveBeenCalledWith(\n new Vector2(7, 8),\n );\n expect(tryAddUC.initializeWithRay).toHaveBeenCalledWith(mockRay);\n });\n\n it(\"Forms the pixel into a ray and passed it to the move with ray\", () => {\n const { mockPixelToRay, tryAddUC } = makeTestRig();\n\n const mockRay = ParametricLine.FromTwoPoint(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6),\n );\n mockPixelToRay.pixelToSceneRay.mockReturnValue(mockRay);\n\n tryAddUC.moveWithRay = jest.fn();\n\n tryAddUC.moveWithPixel(new Vector2(7, 8));\n\n expect(mockPixelToRay.pixelToSceneRay).toHaveBeenCalledWith(\n new Vector2(7, 8),\n );\n expect(tryAddUC.moveWithRay).toHaveBeenCalledWith(mockRay);\n });\n\n it(\"Returns false if not allowed\", () => {\n const { tryAddUC } = makeTestRig();\n\n tryAddUC.allow = () => {\n return false;\n };\n\n expect(tryAddUC.initializeWithRay(ParametricLine.Forward())).toEqual(false);\n });\n\n it(\"Returns false if the pick is not on anything\", () => {\n const { mockPick, tryAddUC } = makeTestRig();\n\n mockPick.mockReturnValue(undefined);\n\n expect(tryAddUC.initializeWithRay(ParametricLine.Forward())).toEqual(false);\n });\n\n it(\"Returns false if it can't find the app object\", () => {\n const { tryAddUC, appObjects } = makeTestRig();\n appObjects.remove(\"appObj1\");\n\n expect(tryAddUC.initializeWithRay(ParametricLine.Forward())).toEqual(false);\n });\n\n it(\"Returns false if it can't find Create UC on the app object\", () => {\n const { tryAddUC, calloutAO } = makeTestRig();\n calloutAO.removeComponent(CreateCalloutUC.type);\n\n expect(tryAddUC.initializeWithRay(ParametricLine.Forward())).toEqual(false);\n });\n\n it(\"Does not allow if the tool is not Callout\", () => {\n const { tryAddUC, toolRepo } = makeTestRig();\n\n toolRepo.triggerTool(\"OTHER\");\n\n expect(tryAddUC.allow()).toEqual(false);\n\n toolRepo.triggerTool(\"CALLOUT\");\n\n expect(tryAddUC.allow()).toEqual(true);\n });\n});\n"]}
1
+ {"version":3,"file":"TryAddCallout.test.js","sourceRoot":"","sources":["../../../../src/Callouts/UC/TryAddCallout.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n makeAppObjectRepo,\n ParametricLine,\n Vector2,\n Vector3,\n} from \"@vived/core\";\nimport {\n makeMockPixelToSceneRayUC,\n makeMockSceneRayPickUC,\n} from \"../../Babylon/Mocks\";\nimport { makeToolRepo } from \"../../Tools\";\nimport { CreateCalloutUcMock } from \"../Mocks/CreateCalloutUcMock\";\nimport { CreateCalloutUC } from \"./CreateCalloutUC\";\nimport { makeTryAddCalloutUC } from \"./TryAddCallout\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const createCalloutAO = appObjects.getOrCreate(\"createCalloutAO\");\n\n const mockSceneRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue({\n worldPickPoint: new Vector3(1, 2, 3),\n hit: true,\n normal: new Vector3(4, 5, 6),\n objectPickMeta: {\n appObjectID: \"appObj1\",\n },\n });\n\n mockSceneRayPick.sceneRayPick = mockPick;\n\n const calloutAO = appObjects.getOrCreate(\"appObj1\");\n const mockCreate = new CreateCalloutUcMock(calloutAO);\n mockCreate.fromPick.mockReturnValue(appObjects.getOrCreate(\"appObj2\"));\n\n const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);\n mockPixelToRay.pixelToSceneRay = jest.fn();\n\n const tryAddUC = makeTryAddCalloutUC(createCalloutAO);\n\n const toolRepo = makeToolRepo(appObjects.getOrCreate(\"ToolRepo\"));\n toolRepo.makeTool(\"CALLOUT\");\n toolRepo.makeTool(\"OTHER\");\n toolRepo.triggerTool(\"CALLOUT\");\n\n return {\n tryAddUC,\n mockPick,\n mockCreate,\n calloutAO,\n appObjects,\n mockPixelToRay,\n toolRepo,\n };\n}\n\ndescribe(\"Try Add Callout UC\", () => {\n it(\"Forms the pixel into a ray and passed it to the initialize with ray\", () => {\n const { mockPixelToRay, tryAddUC } = makeTestRig();\n\n const mockRay = ParametricLine.FromTwoPoint(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6)\n );\n (mockPixelToRay.pixelToSceneRay as jest.Mock).mockReturnValue(mockRay);\n\n tryAddUC.initializeWithRay = jest.fn();\n\n tryAddUC.initializeWithPixel(new Vector2(7, 8));\n\n expect(mockPixelToRay.pixelToSceneRay).toHaveBeenCalledWith(\n new Vector2(7, 8)\n );\n expect(tryAddUC.initializeWithRay).toHaveBeenCalledWith(mockRay);\n });\n\n it(\"Forms the pixel into a ray and passed it to the move with ray\", () => {\n const { mockPixelToRay, tryAddUC } = makeTestRig();\n\n const mockRay = ParametricLine.FromTwoPoint(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6)\n );\n (mockPixelToRay.pixelToSceneRay as jest.Mock).mockReturnValue(mockRay);\n\n tryAddUC.moveWithRay = jest.fn();\n\n tryAddUC.moveWithPixel(new Vector2(7, 8));\n\n expect(mockPixelToRay.pixelToSceneRay).toHaveBeenCalledWith(\n new Vector2(7, 8)\n );\n expect(tryAddUC.moveWithRay).toHaveBeenCalledWith(mockRay);\n });\n\n it(\"Returns false if not allowed\", () => {\n const { tryAddUC } = makeTestRig();\n\n tryAddUC.allow = () => {\n return false;\n };\n\n expect(tryAddUC.initializeWithRay(ParametricLine.Forward())).toEqual(false);\n });\n\n it(\"Returns false if the pick is not on anything\", () => {\n const { mockPick, tryAddUC } = makeTestRig();\n\n mockPick.mockReturnValue(undefined);\n\n expect(tryAddUC.initializeWithRay(ParametricLine.Forward())).toEqual(false);\n });\n\n it(\"Returns false if it can't find the app object\", () => {\n const { tryAddUC, appObjects } = makeTestRig();\n appObjects.remove(\"appObj1\");\n\n expect(tryAddUC.initializeWithRay(ParametricLine.Forward())).toEqual(false);\n });\n\n it(\"Returns false if it can't find Create UC on the app object\", () => {\n const { tryAddUC, calloutAO } = makeTestRig();\n calloutAO.removeComponent(CreateCalloutUC.type);\n\n expect(tryAddUC.initializeWithRay(ParametricLine.Forward())).toEqual(false);\n });\n\n it(\"Does not allow if the tool is not Callout\", () => {\n const { tryAddUC, toolRepo } = makeTestRig();\n\n toolRepo.triggerTool(\"OTHER\");\n\n expect(tryAddUC.allow()).toEqual(false);\n\n toolRepo.triggerTool(\"CALLOUT\");\n\n expect(tryAddUC.allow()).toEqual(true);\n });\n});\n"]}
@@ -16,7 +16,9 @@ function makeTestRig() {
16
16
  const mockPick = jest.fn().mockReturnValue({ appObjectID: "hideableObj" });
17
17
  mockRayPick.sceneRayPick = mockPick;
18
18
  const mockPixelPick = makeMockScenePixelPickUC(appObjects);
19
- mockPixelPick.scenePixelPick.mockReturnValue({ appObjectID: "hideableObj" });
19
+ mockPixelPick.scenePixelPick = jest
20
+ .fn()
21
+ .mockReturnValue({ appObjectID: "hideableObj" });
20
22
  const toolRepo = makeToolRepo(appObjects.getOrCreate("ToolRepo"));
21
23
  const hideTool = toolRepo.makeTool("HIDE");
22
24
  hideTool.state = ToolState.ACTIVE;
@@ -1 +1 @@
1
- {"version":3,"file":"TryHideWithPickUC.test.js","sourceRoot":"","sources":["../../../../src/Hideable/UCs/TryHideWithPickUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { HideUCMock } from \"../Mocks/HideUCMock\";\nimport { makeTryHideWithPickUC, TryHideWithPickUC } from \"./TryHideWithPickUC\";\nimport { makeMockSceneRayPickUC } from \"../../Babylon/Mocks/MockSceneRayPickUC\";\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\nimport { makeMockScenePixelPickUC } from \"../../Babylon\";\nimport { makeToolRepo, ToolState } from \"../../Tools\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const registerSingleton = jest.spyOn(appObjects, \"registerSingleton\");\n\n const ao = appObjects.getOrCreate(\"AO\");\n const uc = makeTryHideWithPickUC(ao);\n\n const hideableObj = appObjects.getOrCreate(\"hideableObj\");\n const mockHideUC = new HideUCMock(hideableObj);\n\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue({ appObjectID: \"hideableObj\" });\n mockRayPick.sceneRayPick = mockPick;\n\n const mockPixelPick = makeMockScenePixelPickUC(appObjects);\n mockPixelPick.scenePixelPick.mockReturnValue({ appObjectID: \"hideableObj\" });\n\n const toolRepo = makeToolRepo(appObjects.getOrCreate(\"ToolRepo\"));\n const hideTool = toolRepo.makeTool(\"HIDE\");\n hideTool.state = ToolState.ACTIVE;\n\n return {\n appObjects,\n ao,\n mockHideUC,\n uc,\n registerSingleton,\n mockPick,\n mockPixelPick,\n hideTool,\n };\n}\n\ndescribe(\"Hide UC\", () => {\n it(\"Gets the singleton\", () => {\n const { appObjects, uc } = makeTestRig();\n\n expect(TryHideWithPickUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Registers as the singleton\", () => {\n const { registerSingleton, uc } = makeTestRig();\n\n expect(registerSingleton).toHaveBeenCalledWith(uc);\n });\n\n it(\"Picks with the ray\", () => {\n const { uc, mockPick } = makeTestRig();\n\n const pickRay = ParametricLine.FromPointDirection(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6),\n );\n\n uc.tryRayPick(pickRay);\n\n expect(mockPick).toHaveBeenCalledWith(pickRay);\n });\n\n it(\"Calls the UC\", () => {\n const { uc, mockHideUC } = makeTestRig();\n\n uc.tryRayPick(ParametricLine.Forward());\n\n expect(mockHideUC.hide).toHaveBeenCalled();\n });\n\n it(\"Doesn't warn if the picked object does not have the UC\", () => {\n const { uc, mockPick, appObjects } = makeTestRig();\n\n appObjects.submitWarning = jest.fn();\n appObjects.getOrCreate(\"SomeOtherObject\");\n mockPick.mockReturnValue({\n appObjectID: \"SomeOtherObject\",\n });\n\n uc.tryRayPick(ParametricLine.Forward());\n\n expect(appObjects.submitWarning).not.toHaveBeenCalled();\n });\n\n it(\"Picks with a pixel\", () => {\n const { uc, mockPixelPick } = makeTestRig();\n\n const pickPixel = new Vector2(1, 2);\n\n uc.tryPixelPick(pickPixel);\n\n expect(mockPixelPick.scenePixelPick).toHaveBeenCalledWith(pickPixel);\n });\n\n it(\"Calls the UC\", () => {\n const { uc, mockHideUC } = makeTestRig();\n\n uc.tryPixelPick(Vector2.One());\n\n expect(mockHideUC.hide).toHaveBeenCalled();\n });\n\n it(\"Returns true if the hide tool is active\", () => {\n const { uc, hideTool } = makeTestRig();\n hideTool.state = ToolState.ACTIVE;\n\n expect(uc.allow()).toEqual(true);\n });\n\n it(\"Returns false if the hide tool is not active\", () => {\n const { uc, hideTool } = makeTestRig();\n hideTool.state = ToolState.ENABLED;\n\n expect(uc.allow()).toEqual(false);\n });\n});\n"]}
1
+ {"version":3,"file":"TryHideWithPickUC.test.js","sourceRoot":"","sources":["../../../../src/Hideable/UCs/TryHideWithPickUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { HideUCMock } from \"../Mocks/HideUCMock\";\nimport { makeTryHideWithPickUC, TryHideWithPickUC } from \"./TryHideWithPickUC\";\nimport { makeMockSceneRayPickUC } from \"../../Babylon/Mocks/MockSceneRayPickUC\";\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\nimport { makeMockScenePixelPickUC } from \"../../Babylon\";\nimport { makeToolRepo, ToolState } from \"../../Tools\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const registerSingleton = jest.spyOn(appObjects, \"registerSingleton\");\n\n const ao = appObjects.getOrCreate(\"AO\");\n const uc = makeTryHideWithPickUC(ao);\n\n const hideableObj = appObjects.getOrCreate(\"hideableObj\");\n const mockHideUC = new HideUCMock(hideableObj);\n\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue({ appObjectID: \"hideableObj\" });\n mockRayPick.sceneRayPick = mockPick;\n\n const mockPixelPick = makeMockScenePixelPickUC(appObjects);\n mockPixelPick.scenePixelPick = jest\n .fn()\n .mockReturnValue({ appObjectID: \"hideableObj\" });\n\n const toolRepo = makeToolRepo(appObjects.getOrCreate(\"ToolRepo\"));\n const hideTool = toolRepo.makeTool(\"HIDE\");\n hideTool.state = ToolState.ACTIVE;\n\n return {\n appObjects,\n ao,\n mockHideUC,\n uc,\n registerSingleton,\n mockPick,\n mockPixelPick,\n hideTool,\n };\n}\n\ndescribe(\"Hide UC\", () => {\n it(\"Gets the singleton\", () => {\n const { appObjects, uc } = makeTestRig();\n\n expect(TryHideWithPickUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Registers as the singleton\", () => {\n const { registerSingleton, uc } = makeTestRig();\n\n expect(registerSingleton).toHaveBeenCalledWith(uc);\n });\n\n it(\"Picks with the ray\", () => {\n const { uc, mockPick } = makeTestRig();\n\n const pickRay = ParametricLine.FromPointDirection(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6)\n );\n\n uc.tryRayPick(pickRay);\n\n expect(mockPick).toHaveBeenCalledWith(pickRay);\n });\n\n it(\"Calls the UC\", () => {\n const { uc, mockHideUC } = makeTestRig();\n\n uc.tryRayPick(ParametricLine.Forward());\n\n expect(mockHideUC.hide).toHaveBeenCalled();\n });\n\n it(\"Doesn't warn if the picked object does not have the UC\", () => {\n const { uc, mockPick, appObjects } = makeTestRig();\n\n appObjects.submitWarning = jest.fn();\n appObjects.getOrCreate(\"SomeOtherObject\");\n mockPick.mockReturnValue({\n appObjectID: \"SomeOtherObject\",\n });\n\n uc.tryRayPick(ParametricLine.Forward());\n\n expect(appObjects.submitWarning).not.toHaveBeenCalled();\n });\n\n it(\"Picks with a pixel\", () => {\n const { uc, mockPixelPick } = makeTestRig();\n\n const pickPixel = new Vector2(1, 2);\n\n uc.tryPixelPick(pickPixel);\n\n expect(mockPixelPick.scenePixelPick).toHaveBeenCalledWith(pickPixel);\n });\n\n it(\"Calls the UC\", () => {\n const { uc, mockHideUC } = makeTestRig();\n\n uc.tryPixelPick(Vector2.One());\n\n expect(mockHideUC.hide).toHaveBeenCalled();\n });\n\n it(\"Returns true if the hide tool is active\", () => {\n const { uc, hideTool } = makeTestRig();\n hideTool.state = ToolState.ACTIVE;\n\n expect(uc.allow()).toEqual(true);\n });\n\n it(\"Returns false if the hide tool is not active\", () => {\n const { uc, hideTool } = makeTestRig();\n hideTool.state = ToolState.ENABLED;\n\n expect(uc.allow()).toEqual(false);\n });\n});\n"]}
@@ -15,8 +15,11 @@ function makeTestRig() {
15
15
  const showWorldSpy = jest.spyOn(hoverLabel, "showWorldHoverLabel");
16
16
  const hideSpy = jest.spyOn(hoverLabel, "hideHoverLabel");
17
17
  const tryShowUC = makeTryShowHoverLabel(appObj);
18
- const mockPixelPick = makeMockScenePixelPickUC(appObjects).scenePixelPick;
19
- mockPixelPick.mockReturnValue({ appObjectID: "appObj" });
18
+ const mockPixelPickUC = makeMockScenePixelPickUC(appObjects);
19
+ mockPixelPickUC.scenePixelPick = jest
20
+ .fn()
21
+ .mockReturnValue({ appObjectID: "appObj" });
22
+ const mockPixelPick = mockPixelPickUC.scenePixelPick;
20
23
  const mockRayPick = makeMockSceneRayPickUC(appObjects);
21
24
  const mockPick = jest.fn().mockReturnValue({
22
25
  appObjectID: "appObj",
@@ -32,6 +35,7 @@ function makeTestRig() {
32
35
  hideSpy,
33
36
  mockPick,
34
37
  mockPixelPick,
38
+ mockPixelPickUC,
35
39
  appObj,
36
40
  };
37
41
  }
@@ -70,7 +74,9 @@ describe("Try Showing the Screen Hover Label Use Case", () => {
70
74
  it("Hide the hover label if app object ID is unknown", () => {
71
75
  const { tryShowUC, hideSpy, mockPixelPick } = makeTestRig();
72
76
  const position = new Vector2(1, 1);
73
- mockPixelPick.mockReturnValue({ appObjectID: "someOtherObject" });
77
+ mockPixelPick.mockReturnValue({
78
+ appObjectID: "someOtherObject",
79
+ });
74
80
  tryShowUC.tryShowScreenHoverLabel(position);
75
81
  expect(hideSpy).toHaveBeenCalled();
76
82
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TryShowHoverLabel.test.js","sourceRoot":"","sources":["../../../../src/HoverLabel/UseCases/TryShowHoverLabel.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeHoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { makeTryShowHoverLabel } from \"./TryShowHoverLabel\";\nimport { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\nimport { makeLabelEntity } from \"../../Label\";\nimport {\n makeMockScenePixelPickUC,\n makeMockSceneRayPickUC,\n} from \"../../Babylon\";\nimport { makeCalloutEntity } from \"../../Callouts\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const appObj = appObjects.getOrCreate(\"appObj\");\n const label = makeLabelEntity(appObj);\n label.custom = \"custom label\";\n\n const hoverLabel = makeHoverLabelEntity(appObj);\n\n const showScreenSpy = jest.spyOn(hoverLabel, \"showScreenHoverLabel\");\n const showWorldSpy = jest.spyOn(hoverLabel, \"showWorldHoverLabel\");\n const hideSpy = jest.spyOn(hoverLabel, \"hideHoverLabel\");\n\n const tryShowUC = makeTryShowHoverLabel(appObj);\n\n const mockPixelPick = makeMockScenePixelPickUC(appObjects).scenePixelPick;\n mockPixelPick.mockReturnValue({ appObjectID: \"appObj\" });\n\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue({\n appObjectID: \"appObj\",\n worldPickPoint: new Vector3(1, 2, 3),\n });\n mockRayPick.sceneRayPick = mockPick;\n\n return {\n hoverLabel,\n label,\n tryShowUC,\n showScreenSpy,\n showWorldSpy,\n hideSpy,\n mockPick,\n mockPixelPick,\n appObj,\n };\n}\n\ndescribe(\"Try Showing the Screen Hover Label Use Case\", () => {\n it(\"Calls hide if the allow hover label is set to false\", () => {\n const { hoverLabel, tryShowUC, hideSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = false;\n tryShowUC.tryShowScreenHoverLabel(new Vector2(1, 1));\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Calls Show Screen Hover label with the custom label and screen position\", () => {\n const { hoverLabel, label, tryShowUC, showScreenSpy } = makeTestRig();\n const position = new Vector2(1, 1);\n\n hoverLabel.allowHoverLabel = true;\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(showScreenSpy).toHaveBeenCalledWith(label.custom, position);\n });\n\n it(\"Calls Show Screen Hover label with the default label and screen position\", () => {\n const { hoverLabel, label, tryShowUC, showScreenSpy } = makeTestRig();\n const position = new Vector2(1, 1);\n\n hoverLabel.allowHoverLabel = true;\n label.custom = \"\";\n label.default = \"default label\";\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(showScreenSpy).toHaveBeenCalledWith(label.default, position);\n });\n\n it(\"Hide the hover label if the label has nothing to show\", () => {\n const { hoverLabel, label, tryShowUC, hideSpy } = makeTestRig();\n const position = new Vector2(1, 1);\n\n hoverLabel.allowHoverLabel = true;\n label.custom = \"\";\n label.default = \"\";\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if app object ID is unknown\", () => {\n const { tryShowUC, hideSpy, mockPixelPick } = makeTestRig();\n const position = new Vector2(1, 1);\n mockPixelPick.mockReturnValue({ appObjectID: \"someOtherObject\" });\n\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if app object ID is undefined\", () => {\n const { tryShowUC, hideSpy, mockPixelPick } = makeTestRig();\n const position = new Vector2(1, 1);\n mockPixelPick.mockReturnValue({});\n\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if pick is undefined\", () => {\n const { tryShowUC, hideSpy, mockPixelPick } = makeTestRig();\n const position = new Vector2(1, 1);\n mockPixelPick.mockReturnValue(undefined);\n\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(hideSpy).toHaveBeenCalled();\n });\n});\n\ndescribe(\"Try Showing the World Hover Label Use Case\", () => {\n it(\"Calls hide if the allow hover label is set to false\", () => {\n const { hoverLabel, tryShowUC, hideSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = false;\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Calls Show Screen Hover label with the custom label and screen position\", () => {\n const { hoverLabel, label, tryShowUC, showWorldSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = true;\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(showWorldSpy).toHaveBeenCalledWith(\n label.custom,\n new Vector3(1, 2, 3),\n );\n });\n\n it(\"Calls Show Screen Hover label with the default label and screen position\", () => {\n const { hoverLabel, label, tryShowUC, showWorldSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = true;\n label.custom = \"\";\n label.default = \"default label\";\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(showWorldSpy).toHaveBeenCalledWith(\n label.default,\n new Vector3(1, 2, 3),\n );\n });\n\n it(\"Hide the hover label if the label has nothing to show\", () => {\n const { hoverLabel, label, tryShowUC, hideSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = true;\n label.custom = \"\";\n label.default = \"\";\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if app object ID is unknown\", () => {\n const { tryShowUC, hideSpy, mockPick } = makeTestRig();\n\n mockPick.mockReturnValue({\n appObjectID: \"someOtherObject\",\n worldPickPoint: new Vector3(1, 2, 3),\n });\n\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if app object ID is undefined\", () => {\n const { tryShowUC, hideSpy, mockPick } = makeTestRig();\n mockPick.mockReturnValue({\n worldPickPoint: new Vector3(1, 2, 3),\n });\n\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the world pick is undefined\", () => {\n const { tryShowUC, hideSpy, mockPick } = makeTestRig();\n mockPick.mockReturnValue({\n appObjectID: \"appObj\",\n });\n\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if pick is undefined\", () => {\n const { tryShowUC, hideSpy, mockPick } = makeTestRig();\n mockPick.mockReturnValue(undefined);\n\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hides the hover label if it hits a callout with a point\", () => {\n const { hoverLabel, tryShowUC, hideSpy, appObj } = makeTestRig();\n makeCalloutEntity(appObj);\n\n hoverLabel.allowHoverLabel = true;\n tryShowUC.tryShowScreenHoverLabel(Vector2.One());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hides the hover label if it hits a callout with a ray\", () => {\n const { hoverLabel, tryShowUC, hideSpy, appObj } = makeTestRig();\n makeCalloutEntity(appObj);\n\n hoverLabel.allowHoverLabel = true;\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n});\n"]}
1
+ {"version":3,"file":"TryShowHoverLabel.test.js","sourceRoot":"","sources":["../../../../src/HoverLabel/UseCases/TryShowHoverLabel.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeHoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { makeTryShowHoverLabel } from \"./TryShowHoverLabel\";\nimport { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\nimport { makeLabelEntity } from \"../../Label\";\nimport {\n makeMockScenePixelPickUC,\n makeMockSceneRayPickUC,\n} from \"../../Babylon\";\nimport { makeCalloutEntity } from \"../../Callouts\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const appObj = appObjects.getOrCreate(\"appObj\");\n const label = makeLabelEntity(appObj);\n label.custom = \"custom label\";\n\n const hoverLabel = makeHoverLabelEntity(appObj);\n\n const showScreenSpy = jest.spyOn(hoverLabel, \"showScreenHoverLabel\");\n const showWorldSpy = jest.spyOn(hoverLabel, \"showWorldHoverLabel\");\n const hideSpy = jest.spyOn(hoverLabel, \"hideHoverLabel\");\n\n const tryShowUC = makeTryShowHoverLabel(appObj);\n\n const mockPixelPickUC = makeMockScenePixelPickUC(appObjects);\n mockPixelPickUC.scenePixelPick = jest\n .fn()\n .mockReturnValue({ appObjectID: \"appObj\" });\n const mockPixelPick = mockPixelPickUC.scenePixelPick;\n\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue({\n appObjectID: \"appObj\",\n worldPickPoint: new Vector3(1, 2, 3),\n });\n mockRayPick.sceneRayPick = mockPick;\n\n return {\n hoverLabel,\n label,\n tryShowUC,\n showScreenSpy,\n showWorldSpy,\n hideSpy,\n mockPick,\n mockPixelPick,\n mockPixelPickUC,\n appObj,\n };\n}\n\ndescribe(\"Try Showing the Screen Hover Label Use Case\", () => {\n it(\"Calls hide if the allow hover label is set to false\", () => {\n const { hoverLabel, tryShowUC, hideSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = false;\n tryShowUC.tryShowScreenHoverLabel(new Vector2(1, 1));\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Calls Show Screen Hover label with the custom label and screen position\", () => {\n const { hoverLabel, label, tryShowUC, showScreenSpy } = makeTestRig();\n const position = new Vector2(1, 1);\n\n hoverLabel.allowHoverLabel = true;\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(showScreenSpy).toHaveBeenCalledWith(label.custom, position);\n });\n\n it(\"Calls Show Screen Hover label with the default label and screen position\", () => {\n const { hoverLabel, label, tryShowUC, showScreenSpy } = makeTestRig();\n const position = new Vector2(1, 1);\n\n hoverLabel.allowHoverLabel = true;\n label.custom = \"\";\n label.default = \"default label\";\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(showScreenSpy).toHaveBeenCalledWith(label.default, position);\n });\n\n it(\"Hide the hover label if the label has nothing to show\", () => {\n const { hoverLabel, label, tryShowUC, hideSpy } = makeTestRig();\n const position = new Vector2(1, 1);\n\n hoverLabel.allowHoverLabel = true;\n label.custom = \"\";\n label.default = \"\";\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if app object ID is unknown\", () => {\n const { tryShowUC, hideSpy, mockPixelPick } = makeTestRig();\n const position = new Vector2(1, 1);\n (mockPixelPick as jest.Mock).mockReturnValue({\n appObjectID: \"someOtherObject\",\n });\n\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if app object ID is undefined\", () => {\n const { tryShowUC, hideSpy, mockPixelPick } = makeTestRig();\n const position = new Vector2(1, 1);\n (mockPixelPick as jest.Mock).mockReturnValue({});\n\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if pick is undefined\", () => {\n const { tryShowUC, hideSpy, mockPixelPick } = makeTestRig();\n const position = new Vector2(1, 1);\n (mockPixelPick as jest.Mock).mockReturnValue(undefined);\n\n tryShowUC.tryShowScreenHoverLabel(position);\n\n expect(hideSpy).toHaveBeenCalled();\n });\n});\n\ndescribe(\"Try Showing the World Hover Label Use Case\", () => {\n it(\"Calls hide if the allow hover label is set to false\", () => {\n const { hoverLabel, tryShowUC, hideSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = false;\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Calls Show Screen Hover label with the custom label and screen position\", () => {\n const { hoverLabel, label, tryShowUC, showWorldSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = true;\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(showWorldSpy).toHaveBeenCalledWith(\n label.custom,\n new Vector3(1, 2, 3)\n );\n });\n\n it(\"Calls Show Screen Hover label with the default label and screen position\", () => {\n const { hoverLabel, label, tryShowUC, showWorldSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = true;\n label.custom = \"\";\n label.default = \"default label\";\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(showWorldSpy).toHaveBeenCalledWith(\n label.default,\n new Vector3(1, 2, 3)\n );\n });\n\n it(\"Hide the hover label if the label has nothing to show\", () => {\n const { hoverLabel, label, tryShowUC, hideSpy } = makeTestRig();\n\n hoverLabel.allowHoverLabel = true;\n label.custom = \"\";\n label.default = \"\";\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if app object ID is unknown\", () => {\n const { tryShowUC, hideSpy, mockPick } = makeTestRig();\n\n mockPick.mockReturnValue({\n appObjectID: \"someOtherObject\",\n worldPickPoint: new Vector3(1, 2, 3),\n });\n\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if app object ID is undefined\", () => {\n const { tryShowUC, hideSpy, mockPick } = makeTestRig();\n mockPick.mockReturnValue({\n worldPickPoint: new Vector3(1, 2, 3),\n });\n\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the world pick is undefined\", () => {\n const { tryShowUC, hideSpy, mockPick } = makeTestRig();\n mockPick.mockReturnValue({\n appObjectID: \"appObj\",\n });\n\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hide the hover label if pick is undefined\", () => {\n const { tryShowUC, hideSpy, mockPick } = makeTestRig();\n mockPick.mockReturnValue(undefined);\n\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hides the hover label if it hits a callout with a point\", () => {\n const { hoverLabel, tryShowUC, hideSpy, appObj } = makeTestRig();\n makeCalloutEntity(appObj);\n\n hoverLabel.allowHoverLabel = true;\n tryShowUC.tryShowScreenHoverLabel(Vector2.One());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n\n it(\"Hides the hover label if it hits a callout with a ray\", () => {\n const { hoverLabel, tryShowUC, hideSpy, appObj } = makeTestRig();\n makeCalloutEntity(appObj);\n\n hoverLabel.allowHoverLabel = true;\n tryShowUC.tryShowWorldHoverLabel(ParametricLine.Forward());\n\n expect(hideSpy).toHaveBeenCalled();\n });\n});\n"]}
@@ -11,7 +11,10 @@ function makeTestRig() {
11
11
  const registerSpy = jest.spyOn(touchInput, "registerController");
12
12
  const mockUC = makeToggleLabelDropTargetUcMock(appObjects);
13
13
  const touchLabelDrop = makeTouchLabelDropAuthor(appObjects.getOrCreate("AO"));
14
- makeMockPixelToSceneRayUC(appObjects).pixelToSceneRay.mockReturnValue(ParametricLine.Forward());
14
+ const mockPixelToRayUC = makeMockPixelToSceneRayUC(appObjects);
15
+ mockPixelToRayUC.pixelToSceneRay = jest
16
+ .fn()
17
+ .mockReturnValue(ParametricLine.Forward());
15
18
  return {
16
19
  appObjects,
17
20
  mockUC,
@@ -1 +1 @@
1
- {"version":3,"file":"TouchLabelDropAuthor.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/TouchLabelDropAuthor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,wBAAwB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9E,yBAAyB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,eAAe,CACnE,cAAc,CAAC,OAAO,EAAE,CACzB,CAAC;IAEF,OAAO;QACL,UAAU;QACV,MAAM;QACN,cAAc;QACd,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtD,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE1B,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2 } from \"@vived/core\";\nimport { makeMockPixelToSceneRayUC } from \"../../Babylon/Mocks\";\nimport { makeTouchInput } from \"../../TouchController/Entities/TouchInput\";\nimport { mockTouchInputEvent } from \"../../TouchController/Mock\";\nimport { makeToggleLabelDropTargetUcMock } from \"../Mocks/ToggleLabelDropTargetUcMock\";\nimport { makeTouchLabelDropAuthor } from \"./TouchLabelDropAuthor\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const touchInput = makeTouchInput(appObjects.getOrCreate(\"Input\"));\n const registerSpy = jest.spyOn(touchInput, \"registerController\");\n const mockUC = makeToggleLabelDropTargetUcMock(appObjects);\n const touchLabelDrop = makeTouchLabelDropAuthor(appObjects.getOrCreate(\"AO\"));\n\n makeMockPixelToSceneRayUC(appObjects).pixelToSceneRay.mockReturnValue(\n ParametricLine.Forward(),\n );\n\n return {\n appObjects,\n mockUC,\n touchLabelDrop,\n registerSpy,\n };\n}\n\ndescribe(\"Touch Label Drop Controller\", () => {\n it(\"Registers with the mouse input when constructed\", () => {\n const { registerSpy, touchLabelDrop } = makeTestRig();\n\n expect(registerSpy).toHaveBeenCalledWith(touchLabelDrop);\n });\n\n it(\"Calls the UC on tap\", () => {\n const { touchLabelDrop, mockUC } = makeTestRig();\n const evt = mockTouchInputEvent([new Vector2(2, 3)]);\n\n touchLabelDrop.onTap(evt);\n\n expect(mockUC.tryToggleFromPixel).toHaveBeenCalledWith(new Vector2(2, 3));\n });\n});\n"]}
1
+ {"version":3,"file":"TouchLabelDropAuthor.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/TouchLabelDropAuthor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,wBAAwB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9E,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC/D,gBAAgB,CAAC,eAAe,GAAG,IAAI;SACpC,EAAE,EAAE;SACJ,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;IAE7C,OAAO;QACL,UAAU;QACV,MAAM;QACN,cAAc;QACd,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAEtD,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE1B,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2 } from \"@vived/core\";\nimport { makeMockPixelToSceneRayUC } from \"../../Babylon/Mocks\";\nimport { makeTouchInput } from \"../../TouchController/Entities/TouchInput\";\nimport { mockTouchInputEvent } from \"../../TouchController/Mock\";\nimport { makeToggleLabelDropTargetUcMock } from \"../Mocks/ToggleLabelDropTargetUcMock\";\nimport { makeTouchLabelDropAuthor } from \"./TouchLabelDropAuthor\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const touchInput = makeTouchInput(appObjects.getOrCreate(\"Input\"));\n const registerSpy = jest.spyOn(touchInput, \"registerController\");\n const mockUC = makeToggleLabelDropTargetUcMock(appObjects);\n const touchLabelDrop = makeTouchLabelDropAuthor(appObjects.getOrCreate(\"AO\"));\n\n const mockPixelToRayUC = makeMockPixelToSceneRayUC(appObjects);\n mockPixelToRayUC.pixelToSceneRay = jest\n .fn()\n .mockReturnValue(ParametricLine.Forward());\n\n return {\n appObjects,\n mockUC,\n touchLabelDrop,\n registerSpy,\n };\n}\n\ndescribe(\"Touch Label Drop Controller\", () => {\n it(\"Registers with the mouse input when constructed\", () => {\n const { registerSpy, touchLabelDrop } = makeTestRig();\n\n expect(registerSpy).toHaveBeenCalledWith(touchLabelDrop);\n });\n\n it(\"Calls the UC on tap\", () => {\n const { touchLabelDrop, mockUC } = makeTestRig();\n const evt = mockTouchInputEvent([new Vector2(2, 3)]);\n\n touchLabelDrop.onTap(evt);\n\n expect(mockUC.tryToggleFromPixel).toHaveBeenCalledWith(new Vector2(2, 3));\n });\n});\n"]}
@@ -13,7 +13,10 @@ function makeTestRig() {
13
13
  const labelDropEntity = makeLabelDropRepo(ao);
14
14
  const mockUC = makeMockDragLabelDropUC(appObjects);
15
15
  labelDropEntity.makeLabelDropItem("labelDropTestID");
16
- const pixelToSceneRayUC = makeMockPixelToSceneRayUC(appObjects).pixelToSceneRay.mockReturnValue(ParametricLine.Forward());
16
+ const pixelToSceneRayUC = makeMockPixelToSceneRayUC(appObjects);
17
+ pixelToSceneRayUC.pixelToSceneRay = jest
18
+ .fn()
19
+ .mockReturnValue(ParametricLine.Forward());
17
20
  return { appObjects, ao, labelDropEntity, mockUC, pixelToSceneRayUC };
18
21
  }
19
22
  describe("Release Drag Label Drop Answer Item", () => {
@@ -35,7 +38,7 @@ describe("Release Drag Label Drop Answer Item", () => {
35
38
  const releasePos = new Vector2(10, 20);
36
39
  const expectedOffSet = new Vector2(releasePos.x - renderCanvas.position.x, releasePos.y - renderCanvas.position.y);
37
40
  releaseLabelDropAnswerItemScreen(10, 20, appObjects);
38
- expect(pixelToSceneRayUC).toHaveBeenCalledWith(expectedOffSet);
41
+ expect(pixelToSceneRayUC.pixelToSceneRay).toHaveBeenCalledWith(expectedOffSet);
39
42
  });
40
43
  });
41
44
  //# sourceMappingURL=releaseLabelDropAnswerItemScreen.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"releaseLabelDropAnswerItemScreen.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2 } from \"@vived/core\";\nimport { makeMockPixelToSceneRayUC } from \"../../Babylon/Mocks/MockPixelToSceneRayUC\";\nimport {\n makeFramedScreen,\n makeFramedScreenContainer,\n} from \"../../FramedScreen/Entities\";\nimport { makeFramedContainerPM } from \"../../FramedScreen/PM/FramedContainerPM\";\nimport { makeLabelDropRepo } from \"../Entities/LabelDropRepo\";\nimport { makeMockDragLabelDropUC } from \"../Mocks/MockDragLabelDropUC\";\nimport { releaseLabelDropAnswerItemScreen } from \"./releaseLabelDropAnswerItemScreen\";\nimport { RENDER_CANVAS_FRAMED_CONTAINER_ID } from \"../../FramedScreen\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const ao = appObjects.getOrCreate(\"ao\");\n const labelDropEntity = makeLabelDropRepo(ao);\n\n const mockUC = makeMockDragLabelDropUC(appObjects);\n\n labelDropEntity.makeLabelDropItem(\"labelDropTestID\");\n\n const pixelToSceneRayUC = makeMockPixelToSceneRayUC(\n appObjects,\n ).pixelToSceneRay.mockReturnValue(ParametricLine.Forward());\n\n return { appObjects, ao, labelDropEntity, mockUC, pixelToSceneRayUC };\n}\n\ndescribe(\"Release Drag Label Drop Answer Item\", () => {\n it(\"Calls release on the UC\", () => {\n const { mockUC, appObjects } = makeTestRig();\n mockUC.release.mockClear();\n\n releaseLabelDropAnswerItemScreen(10, 20, appObjects);\n expect(mockUC.release).toHaveBeenCalledWith(ParametricLine.Forward());\n });\n\n it(\"Offsets with the render canvas if it exists\", () => {\n const { mockUC, appObjects, pixelToSceneRayUC } = makeTestRig();\n mockUC.release.mockClear();\n\n const framedScreen = makeFramedScreen(\n appObjects.getOrCreate(\"FramedScreen\"),\n );\n const ao = appObjects.getOrCreate(RENDER_CANVAS_FRAMED_CONTAINER_ID);\n const renderCanvas = makeFramedScreenContainer(ao);\n makeFramedContainerPM(ao);\n framedScreen.addContainer(renderCanvas);\n renderCanvas.position = new Vector2(1, 2);\n\n const releasePos = new Vector2(10, 20);\n const expectedOffSet = new Vector2(\n releasePos.x - renderCanvas.position.x,\n releasePos.y - renderCanvas.position.y,\n );\n\n releaseLabelDropAnswerItemScreen(10, 20, appObjects);\n expect(pixelToSceneRayUC).toHaveBeenCalledWith(expectedOffSet);\n });\n});\n"]}
1
+ {"version":3,"file":"releaseLabelDropAnswerItemScreen.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2 } from \"@vived/core\";\nimport { makeMockPixelToSceneRayUC } from \"../../Babylon/Mocks/MockPixelToSceneRayUC\";\nimport {\n makeFramedScreen,\n makeFramedScreenContainer,\n} from \"../../FramedScreen/Entities\";\nimport { makeFramedContainerPM } from \"../../FramedScreen/PM/FramedContainerPM\";\nimport { makeLabelDropRepo } from \"../Entities/LabelDropRepo\";\nimport { makeMockDragLabelDropUC } from \"../Mocks/MockDragLabelDropUC\";\nimport { releaseLabelDropAnswerItemScreen } from \"./releaseLabelDropAnswerItemScreen\";\nimport { RENDER_CANVAS_FRAMED_CONTAINER_ID } from \"../../FramedScreen\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const ao = appObjects.getOrCreate(\"ao\");\n const labelDropEntity = makeLabelDropRepo(ao);\n\n const mockUC = makeMockDragLabelDropUC(appObjects);\n\n labelDropEntity.makeLabelDropItem(\"labelDropTestID\");\n\n const pixelToSceneRayUC = makeMockPixelToSceneRayUC(appObjects);\n pixelToSceneRayUC.pixelToSceneRay = jest\n .fn()\n .mockReturnValue(ParametricLine.Forward());\n\n return { appObjects, ao, labelDropEntity, mockUC, pixelToSceneRayUC };\n}\n\ndescribe(\"Release Drag Label Drop Answer Item\", () => {\n it(\"Calls release on the UC\", () => {\n const { mockUC, appObjects } = makeTestRig();\n mockUC.release.mockClear();\n\n releaseLabelDropAnswerItemScreen(10, 20, appObjects);\n expect(mockUC.release).toHaveBeenCalledWith(ParametricLine.Forward());\n });\n\n it(\"Offsets with the render canvas if it exists\", () => {\n const { mockUC, appObjects, pixelToSceneRayUC } = makeTestRig();\n mockUC.release.mockClear();\n\n const framedScreen = makeFramedScreen(\n appObjects.getOrCreate(\"FramedScreen\")\n );\n const ao = appObjects.getOrCreate(RENDER_CANVAS_FRAMED_CONTAINER_ID);\n const renderCanvas = makeFramedScreenContainer(ao);\n makeFramedContainerPM(ao);\n framedScreen.addContainer(renderCanvas);\n renderCanvas.position = new Vector2(1, 2);\n\n const releasePos = new Vector2(10, 20);\n const expectedOffSet = new Vector2(\n releasePos.x - renderCanvas.position.x,\n releasePos.y - renderCanvas.position.y\n );\n\n releaseLabelDropAnswerItemScreen(10, 20, appObjects);\n expect(pixelToSceneRayUC.pixelToSceneRay).toHaveBeenCalledWith(\n expectedOffSet\n );\n });\n});\n"]}
@@ -14,6 +14,7 @@ function makeTestRig() {
14
14
  const mockPick = jest.fn().mockReturnValue({ appObjectID: "hideableObj" });
15
15
  mockRayPick.sceneRayPick = mockPick;
16
16
  const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);
17
+ mockPixelToRay.pixelToSceneRay = jest.fn();
17
18
  const uc = makeToggleLabelDropTargetUC(labelDropAO);
18
19
  return {
19
20
  appObjects,
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleLabelDropTargetUC.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\nimport {\n makeMockPixelToSceneRayUC,\n makeMockSceneRayPickUC,\n} from \"../../Babylon/Mocks\";\nimport { makeLabelDropRepo } from \"../Entities/LabelDropRepo\";\nimport {\n makeToggleLabelDropTargetUC,\n ToggleLabelDropTargetUC,\n} from \"./ToggleLabelDropTargetUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const registerSpy = jest.spyOn(appObjects, \"registerSingleton\");\n\n const labelDropAO = appObjects.getOrCreate(\"repo\");\n\n const repo = makeLabelDropRepo(labelDropAO);\n const dropItem = repo.makeLabelDropItem(\"labelDropID\");\n repo.editingID = \"labelDropID\";\n\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue({ appObjectID: \"hideableObj\" });\n mockRayPick.sceneRayPick = mockPick;\n\n const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);\n\n const uc = makeToggleLabelDropTargetUC(labelDropAO);\n\n return {\n appObjects,\n repo,\n uc,\n dropItem,\n mockPick,\n registerSpy,\n mockPixelToRay,\n };\n}\n\ndescribe(\"Toggle Label Drop Target UC\", () => {\n it(\"Get it UC\", () => {\n const { appObjects, uc } = makeTestRig();\n\n expect(ToggleLabelDropTargetUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Registers as the singleton\", () => {\n const { uc, registerSpy } = makeTestRig();\n\n expect(registerSpy).toHaveBeenCalledWith(uc);\n });\n\n it(\"Toggles target ID\", () => {\n const { uc, dropItem } = makeTestRig();\n\n expect(dropItem.targetIds).toEqual([]);\n\n uc.toggleByID(\"target1\");\n\n expect(dropItem.targetIds).toEqual([\"target1\"]);\n\n uc.toggleByID(\"target1\");\n\n expect(dropItem.targetIds).toEqual([]);\n });\n\n it(\"Toggles the ray picked ID\", () => {\n const { uc, dropItem, mockPick } = makeTestRig();\n\n expect(dropItem.targetIds).toEqual([]);\n\n mockPick.mockReturnValue({\n appObjectID: \"target1\",\n });\n\n uc.tryToggleFromRay(ParametricLine.Forward());\n\n expect(dropItem.targetIds).toEqual([\"target1\"]);\n\n uc.tryToggleFromRay(ParametricLine.Forward());\n\n expect(dropItem.targetIds).toEqual([]);\n });\n\n it(\"Converts a pixel to a ray and then picks\", () => {\n const { uc, mockPixelToRay } = makeTestRig();\n\n uc.tryToggleFromRay = jest.fn();\n const mockRay = ParametricLine.FromTwoPoint(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6),\n );\n mockPixelToRay.pixelToSceneRay.mockReturnValue(mockRay);\n\n uc.tryToggleFromPixel(new Vector2(7, 8));\n\n expect(mockPixelToRay.pixelToSceneRay).toHaveBeenCalledWith(\n new Vector2(7, 8),\n );\n expect(uc.tryToggleFromRay).toHaveBeenCalledWith(mockRay);\n });\n});\n"]}
1
+ {"version":3,"file":"ToggleLabelDropTargetUC.test.js","sourceRoot":"","sources":["../../../../src/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;IAE/B,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3E,WAAW,CAAC,YAAY,GAAG,QAAQ,CAAC;IAEpC,MAAM,cAAc,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC7D,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAE3C,MAAM,EAAE,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAEpD,OAAO;QACL,UAAU;QACV,IAAI;QACJ,EAAE;QACF,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,cAAc;KACf,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACnB,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzC,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC;QAE1C,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAEvC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEvC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAEhD,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAEjD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEvC,QAAQ,CAAC,eAAe,CAAC;YACvB,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9C,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAEhD,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9C,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CACzC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACrB,CAAC;QACD,cAAc,CAAC,eAA6B,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEvE,EAAE,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,oBAAoB,CACzD,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAClB,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\nimport {\n makeMockPixelToSceneRayUC,\n makeMockSceneRayPickUC,\n} from \"../../Babylon/Mocks\";\nimport { makeLabelDropRepo } from \"../Entities/LabelDropRepo\";\nimport {\n makeToggleLabelDropTargetUC,\n ToggleLabelDropTargetUC,\n} from \"./ToggleLabelDropTargetUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const registerSpy = jest.spyOn(appObjects, \"registerSingleton\");\n\n const labelDropAO = appObjects.getOrCreate(\"repo\");\n\n const repo = makeLabelDropRepo(labelDropAO);\n const dropItem = repo.makeLabelDropItem(\"labelDropID\");\n repo.editingID = \"labelDropID\";\n\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue({ appObjectID: \"hideableObj\" });\n mockRayPick.sceneRayPick = mockPick;\n\n const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);\n mockPixelToRay.pixelToSceneRay = jest.fn();\n\n const uc = makeToggleLabelDropTargetUC(labelDropAO);\n\n return {\n appObjects,\n repo,\n uc,\n dropItem,\n mockPick,\n registerSpy,\n mockPixelToRay,\n };\n}\n\ndescribe(\"Toggle Label Drop Target UC\", () => {\n it(\"Get it UC\", () => {\n const { appObjects, uc } = makeTestRig();\n\n expect(ToggleLabelDropTargetUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Registers as the singleton\", () => {\n const { uc, registerSpy } = makeTestRig();\n\n expect(registerSpy).toHaveBeenCalledWith(uc);\n });\n\n it(\"Toggles target ID\", () => {\n const { uc, dropItem } = makeTestRig();\n\n expect(dropItem.targetIds).toEqual([]);\n\n uc.toggleByID(\"target1\");\n\n expect(dropItem.targetIds).toEqual([\"target1\"]);\n\n uc.toggleByID(\"target1\");\n\n expect(dropItem.targetIds).toEqual([]);\n });\n\n it(\"Toggles the ray picked ID\", () => {\n const { uc, dropItem, mockPick } = makeTestRig();\n\n expect(dropItem.targetIds).toEqual([]);\n\n mockPick.mockReturnValue({\n appObjectID: \"target1\",\n });\n\n uc.tryToggleFromRay(ParametricLine.Forward());\n\n expect(dropItem.targetIds).toEqual([\"target1\"]);\n\n uc.tryToggleFromRay(ParametricLine.Forward());\n\n expect(dropItem.targetIds).toEqual([]);\n });\n\n it(\"Converts a pixel to a ray and then picks\", () => {\n const { uc, mockPixelToRay } = makeTestRig();\n\n uc.tryToggleFromRay = jest.fn();\n const mockRay = ParametricLine.FromTwoPoint(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6)\n );\n (mockPixelToRay.pixelToSceneRay as jest.Mock).mockReturnValue(mockRay);\n\n uc.tryToggleFromPixel(new Vector2(7, 8));\n\n expect(mockPixelToRay.pixelToSceneRay).toHaveBeenCalledWith(\n new Vector2(7, 8)\n );\n expect(uc.tryToggleFromRay).toHaveBeenCalledWith(mockRay);\n });\n});\n"]}
@@ -27,6 +27,7 @@ function makeTestRig() {
27
27
  const mockPick = jest.fn().mockReturnValue(mockPickResult);
28
28
  mockRayPick.sceneRayPick = mockPick;
29
29
  const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);
30
+ mockPixelToRay.pixelToSceneRay = jest.fn();
30
31
  const uc = makeTrySelectObjectPickUC(appObjects.getOrCreate("ObjectPick"));
31
32
  return {
32
33
  objectPick,
@@ -1 +1 @@
1
- {"version":3,"file":"TrySelectObjectPickUC.test.js","sourceRoot":"","sources":["../../../../src/ObjectPick/UseCases/TrySelectObjectPickUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport {\n makeMockPixelToSceneRayUC,\n makeMockSceneRayPickUC,\n} from \"../../Babylon/Mocks\";\nimport { SceneRayPick } from \"../../Babylon/UC/SceneRayPickUC\";\nimport { makeChallengeEntityMock } from \"../../Challenge/Mocks/ChallengeEntityMock\";\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\nimport { makeUndoRedoEntity } from \"../../UndoRedo/Entities/UndoRedoEntity\";\nimport { makeObjectPickEntity } from \"../Entities/ObjectPickEntity\";\nimport {\n makeTrySelectObjectPickUC,\n TrySelectObjectPickUC,\n} from \"./TrySelectObjectPickUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const mockDispatchStateChange = makeMockDispatchStateChange(appObjects);\n const doDispatchMock = jest.fn();\n mockDispatchStateChange.doDispatch = doDispatchMock;\n\n const baseApp = makeBaseAppState(appObjects.getOrCreate(\"App\"));\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\n const challenge = makeChallengeEntityMock(appObjects);\n\n const objectPick = makeObjectPickEntity(appObjects.getOrCreate(\"ObjectPick\"));\n\n baseApp.isAuthoring = true;\n objectPick.isSelectingCorrectObjects = true;\n challenge.selectedChallenge = \"OBJECT_PICK\";\n\n const mockPickResult: SceneRayPick = {\n hit: true,\n appObjectID: \"sceneObject\",\n };\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue(mockPickResult);\n mockRayPick.sceneRayPick = mockPick;\n\n const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);\n\n const uc = makeTrySelectObjectPickUC(appObjects.getOrCreate(\"ObjectPick\"));\n\n return {\n objectPick,\n uc,\n baseApp,\n doDispatchMock,\n appObjects,\n mockPixelToRay,\n undo,\n mockPick,\n };\n}\n\ndescribe(\"Try Select Object Pick Use Case\", () => {\n it(\"Gets the singleton\", () => {\n const { appObjects, uc } = makeTestRig();\n\n expect(TrySelectObjectPickUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Forms the pixel into a ray and passed it to the try with ray\", () => {\n const { mockPixelToRay, uc } = makeTestRig();\n\n const mockRay = ParametricLine.FromTwoPoint(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6),\n );\n mockPixelToRay.pixelToSceneRay.mockReturnValue(mockRay);\n\n uc.tryWithRay = jest.fn();\n\n uc.tryWithPixel(new Vector2(7, 8));\n\n expect(mockPixelToRay.pixelToSceneRay).toHaveBeenCalledWith(\n new Vector2(7, 8),\n );\n expect(uc.tryWithRay).toHaveBeenCalledWith(mockRay);\n });\n\n it(\"Tries Select Object Pick successfully\", () => {\n const { uc, objectPick } = makeTestRig();\n\n const spy = jest.spyOn(objectPick, \"addCorrectObjectId\");\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(spy).toHaveBeenCalledWith(\"sceneObject\");\n });\n\n it(\"Does not add when the pick does not hit\", () => {\n const { uc, mockPick, objectPick } = makeTestRig();\n\n const mockPickResult: SceneRayPick = {\n hit: false,\n };\n mockPick.mockReturnValue(mockPickResult);\n\n mockPickResult.hit = false;\n const spy = jest.spyOn(objectPick, \"addCorrectObjectId\");\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(spy).not.toHaveBeenCalled();\n });\n\n it(\"Does not add when the pick does not an app object\", () => {\n const { uc, mockPick, objectPick } = makeTestRig();\n\n const mockPickResult: SceneRayPick = {\n hit: true,\n appObjectID: undefined,\n };\n mockPick.mockReturnValue(mockPickResult);\n\n mockPickResult.hit = false;\n const spy = jest.spyOn(objectPick, \"addCorrectObjectId\");\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(spy).not.toHaveBeenCalled();\n });\n\n it(\"Dispatches a state change\", () => {\n const { uc, doDispatchMock } = makeTestRig();\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(doDispatchMock).toHaveBeenCalled();\n });\n\n it(\"Is undoable and redoable\", () => {\n const { uc, undo, objectPick } = makeTestRig();\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(objectPick.correctObjectIds).toEqual([\"sceneObject\"]);\n\n undo.doUndo();\n\n expect(objectPick.correctObjectIds).toEqual([]);\n\n undo.doRedo();\n\n expect(objectPick.correctObjectIds).toEqual([\"sceneObject\"]);\n });\n\n it(\"Undo and redo dispatch a state change\", () => {\n const { uc, undo, doDispatchMock } = makeTestRig();\n uc.tryWithRay(ParametricLine.Forward());\n\n doDispatchMock.mockClear();\n\n undo.doUndo();\n expect(doDispatchMock).toHaveBeenCalled();\n\n doDispatchMock.mockClear();\n undo.doRedo();\n\n expect(doDispatchMock).toHaveBeenCalled();\n });\n});\n"]}
1
+ {"version":3,"file":"TrySelectObjectPickUC.test.js","sourceRoot":"","sources":["../../../../src/ObjectPick/UseCases/TrySelectObjectPickUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { ParametricLine, Vector2, Vector3 } from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport {\n makeMockPixelToSceneRayUC,\n makeMockSceneRayPickUC,\n} from \"../../Babylon/Mocks\";\nimport { SceneRayPick } from \"../../Babylon/UC/SceneRayPickUC\";\nimport { makeChallengeEntityMock } from \"../../Challenge/Mocks/ChallengeEntityMock\";\nimport { makeMockDispatchStateChange } from \"../../Dispatcher/Mocks/MockDispatchStateChange\";\nimport { makeUndoRedoEntity } from \"../../UndoRedo/Entities/UndoRedoEntity\";\nimport { makeObjectPickEntity } from \"../Entities/ObjectPickEntity\";\nimport {\n makeTrySelectObjectPickUC,\n TrySelectObjectPickUC,\n} from \"./TrySelectObjectPickUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const mockDispatchStateChange = makeMockDispatchStateChange(appObjects);\n const doDispatchMock = jest.fn();\n mockDispatchStateChange.doDispatch = doDispatchMock;\n\n const baseApp = makeBaseAppState(appObjects.getOrCreate(\"App\"));\n const undo = makeUndoRedoEntity(appObjects.getOrCreate(\"Undo\"));\n const challenge = makeChallengeEntityMock(appObjects);\n\n const objectPick = makeObjectPickEntity(appObjects.getOrCreate(\"ObjectPick\"));\n\n baseApp.isAuthoring = true;\n objectPick.isSelectingCorrectObjects = true;\n challenge.selectedChallenge = \"OBJECT_PICK\";\n\n const mockPickResult: SceneRayPick = {\n hit: true,\n appObjectID: \"sceneObject\",\n };\n const mockRayPick = makeMockSceneRayPickUC(appObjects);\n const mockPick = jest.fn().mockReturnValue(mockPickResult);\n mockRayPick.sceneRayPick = mockPick;\n\n const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);\n mockPixelToRay.pixelToSceneRay = jest.fn();\n\n const uc = makeTrySelectObjectPickUC(appObjects.getOrCreate(\"ObjectPick\"));\n\n return {\n objectPick,\n uc,\n baseApp,\n doDispatchMock,\n appObjects,\n mockPixelToRay,\n undo,\n mockPick,\n };\n}\n\ndescribe(\"Try Select Object Pick Use Case\", () => {\n it(\"Gets the singleton\", () => {\n const { appObjects, uc } = makeTestRig();\n\n expect(TrySelectObjectPickUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Forms the pixel into a ray and passed it to the try with ray\", () => {\n const { mockPixelToRay, uc } = makeTestRig();\n\n const mockRay = ParametricLine.FromTwoPoint(\n new Vector3(1, 2, 3),\n new Vector3(4, 5, 6)\n );\n (mockPixelToRay.pixelToSceneRay as jest.Mock).mockReturnValue(mockRay);\n\n uc.tryWithRay = jest.fn();\n\n uc.tryWithPixel(new Vector2(7, 8));\n\n expect(mockPixelToRay.pixelToSceneRay).toHaveBeenCalledWith(\n new Vector2(7, 8)\n );\n expect(uc.tryWithRay).toHaveBeenCalledWith(mockRay);\n });\n\n it(\"Tries Select Object Pick successfully\", () => {\n const { uc, objectPick } = makeTestRig();\n\n const spy = jest.spyOn(objectPick, \"addCorrectObjectId\");\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(spy).toHaveBeenCalledWith(\"sceneObject\");\n });\n\n it(\"Does not add when the pick does not hit\", () => {\n const { uc, mockPick, objectPick } = makeTestRig();\n\n const mockPickResult: SceneRayPick = {\n hit: false,\n };\n mockPick.mockReturnValue(mockPickResult);\n\n mockPickResult.hit = false;\n const spy = jest.spyOn(objectPick, \"addCorrectObjectId\");\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(spy).not.toHaveBeenCalled();\n });\n\n it(\"Does not add when the pick does not an app object\", () => {\n const { uc, mockPick, objectPick } = makeTestRig();\n\n const mockPickResult: SceneRayPick = {\n hit: true,\n appObjectID: undefined,\n };\n mockPick.mockReturnValue(mockPickResult);\n\n mockPickResult.hit = false;\n const spy = jest.spyOn(objectPick, \"addCorrectObjectId\");\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(spy).not.toHaveBeenCalled();\n });\n\n it(\"Dispatches a state change\", () => {\n const { uc, doDispatchMock } = makeTestRig();\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(doDispatchMock).toHaveBeenCalled();\n });\n\n it(\"Is undoable and redoable\", () => {\n const { uc, undo, objectPick } = makeTestRig();\n\n uc.tryWithRay(ParametricLine.Forward());\n\n expect(objectPick.correctObjectIds).toEqual([\"sceneObject\"]);\n\n undo.doUndo();\n\n expect(objectPick.correctObjectIds).toEqual([]);\n\n undo.doRedo();\n\n expect(objectPick.correctObjectIds).toEqual([\"sceneObject\"]);\n });\n\n it(\"Undo and redo dispatch a state change\", () => {\n const { uc, undo, doDispatchMock } = makeTestRig();\n uc.tryWithRay(ParametricLine.Forward());\n\n doDispatchMock.mockClear();\n\n undo.doUndo();\n expect(doDispatchMock).toHaveBeenCalled();\n\n doDispatchMock.mockClear();\n undo.doRedo();\n\n expect(doDispatchMock).toHaveBeenCalled();\n });\n});\n"]}
@@ -19,6 +19,7 @@ function makeTestRig() {
19
19
  const mockPick = jest.fn().mockReturnValue(mockPickResult);
20
20
  mockRayPick.sceneRayPick = mockPick;
21
21
  const mockPixelToRay = makeMockPixelToSceneRayUC(appObjects);
22
+ mockPixelToRay.pixelToSceneRay = jest.fn();
22
23
  const objectPick = makeObjectPickEntity(appObjects.getOrCreate("ObjectPick"));
23
24
  const sceneObject = appObjects.getOrCreate("parent");
24
25
  const uc = makeTrySubmitObjectPickUC(appObjects.getOrCreate("ObjectPick"));