@chili-publish/studio-sdk 0.121.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 (264) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -0
  3. package/_bundles/main.js +3 -0
  4. package/_bundles/main.js.LICENSE.txt +14 -0
  5. package/_bundles/main.js.map +1 -0
  6. package/_bundles/report.html +38 -0
  7. package/lib/editor-engine.json +3 -0
  8. package/lib/package.json +89 -0
  9. package/lib/src/controllers/ActionController.d.ts +38 -0
  10. package/lib/src/controllers/ActionController.js +79 -0
  11. package/lib/src/controllers/ActionController.js.map +1 -0
  12. package/lib/src/controllers/AnimationController.d.ts +70 -0
  13. package/lib/src/controllers/AnimationController.js +135 -0
  14. package/lib/src/controllers/AnimationController.js.map +1 -0
  15. package/lib/src/controllers/CanvasController.d.ts +34 -0
  16. package/lib/src/controllers/CanvasController.js +71 -0
  17. package/lib/src/controllers/CanvasController.js.map +1 -0
  18. package/lib/src/controllers/CharacterStyleController.d.ts +55 -0
  19. package/lib/src/controllers/CharacterStyleController.js +107 -0
  20. package/lib/src/controllers/CharacterStyleController.js.map +1 -0
  21. package/lib/src/controllers/ColorStyleController.d.ts +62 -0
  22. package/lib/src/controllers/ColorStyleController.js +113 -0
  23. package/lib/src/controllers/ColorStyleController.js.map +1 -0
  24. package/lib/src/controllers/ConfigurationController.d.ts +27 -0
  25. package/lib/src/controllers/ConfigurationController.js +60 -0
  26. package/lib/src/controllers/ConfigurationController.js.map +1 -0
  27. package/lib/src/controllers/ConnectorController.d.ts +90 -0
  28. package/lib/src/controllers/ConnectorController.js +196 -0
  29. package/lib/src/controllers/ConnectorController.js.map +1 -0
  30. package/lib/src/controllers/DebugController.d.ts +33 -0
  31. package/lib/src/controllers/DebugController.js +72 -0
  32. package/lib/src/controllers/DebugController.js.map +1 -0
  33. package/lib/src/controllers/DocumentController.d.ts +40 -0
  34. package/lib/src/controllers/DocumentController.js +163 -0
  35. package/lib/src/controllers/DocumentController.js.map +1 -0
  36. package/lib/src/controllers/ExperimentController.d.ts +39 -0
  37. package/lib/src/controllers/ExperimentController.js +83 -0
  38. package/lib/src/controllers/ExperimentController.js.map +1 -0
  39. package/lib/src/controllers/FontConnectorController.d.ts +95 -0
  40. package/lib/src/controllers/FontConnectorController.js +168 -0
  41. package/lib/src/controllers/FontConnectorController.js.map +1 -0
  42. package/lib/src/controllers/FontController.d.ts +50 -0
  43. package/lib/src/controllers/FontController.js +95 -0
  44. package/lib/src/controllers/FontController.js.map +1 -0
  45. package/lib/src/controllers/FrameController.d.ts +369 -0
  46. package/lib/src/controllers/FrameController.js +599 -0
  47. package/lib/src/controllers/FrameController.js.map +1 -0
  48. package/lib/src/controllers/LayoutController.d.ts +103 -0
  49. package/lib/src/controllers/LayoutController.js +190 -0
  50. package/lib/src/controllers/LayoutController.js.map +1 -0
  51. package/lib/src/controllers/MediaConnectorController.d.ts +95 -0
  52. package/lib/src/controllers/MediaConnectorController.js +170 -0
  53. package/lib/src/controllers/MediaConnectorController.js.map +1 -0
  54. package/lib/src/controllers/PageController.d.ts +40 -0
  55. package/lib/src/controllers/PageController.js +92 -0
  56. package/lib/src/controllers/PageController.js.map +1 -0
  57. package/lib/src/controllers/ParagraphStyleController.d.ts +62 -0
  58. package/lib/src/controllers/ParagraphStyleController.js +117 -0
  59. package/lib/src/controllers/ParagraphStyleController.js.map +1 -0
  60. package/lib/src/controllers/ShapeController.d.ts +104 -0
  61. package/lib/src/controllers/ShapeController.js +174 -0
  62. package/lib/src/controllers/ShapeController.js.map +1 -0
  63. package/lib/src/controllers/SubscriberController.d.ts +143 -0
  64. package/lib/src/controllers/SubscriberController.js +213 -0
  65. package/lib/src/controllers/SubscriberController.js.map +1 -0
  66. package/lib/src/controllers/TextStyleController.d.ts +31 -0
  67. package/lib/src/controllers/TextStyleController.js +71 -0
  68. package/lib/src/controllers/TextStyleController.js.map +1 -0
  69. package/lib/src/controllers/ToolController.d.ts +54 -0
  70. package/lib/src/controllers/ToolController.js +104 -0
  71. package/lib/src/controllers/ToolController.js.map +1 -0
  72. package/lib/src/controllers/UndoManagerController.d.ts +22 -0
  73. package/lib/src/controllers/UndoManagerController.js +56 -0
  74. package/lib/src/controllers/UndoManagerController.js.map +1 -0
  75. package/lib/src/controllers/UtilsController.d.ts +20 -0
  76. package/lib/src/controllers/UtilsController.js +35 -0
  77. package/lib/src/controllers/UtilsController.js.map +1 -0
  78. package/lib/src/controllers/VariableController.d.ts +117 -0
  79. package/lib/src/controllers/VariableController.js +205 -0
  80. package/lib/src/controllers/VariableController.js.map +1 -0
  81. package/lib/src/index.d.ts +93 -0
  82. package/lib/src/index.js +154 -0
  83. package/lib/src/index.js.map +1 -0
  84. package/lib/src/interactions/connector.d.ts +31 -0
  85. package/lib/src/interactions/connector.js +99 -0
  86. package/lib/src/interactions/connector.js.map +1 -0
  87. package/lib/src/setupTests.d.ts +1 -0
  88. package/lib/src/setupTests.js +2 -0
  89. package/lib/src/setupTests.js.map +1 -0
  90. package/lib/src/tests/__mocks__/FrameProperties.d.ts +52 -0
  91. package/lib/src/tests/__mocks__/FrameProperties.js +20 -0
  92. package/lib/src/tests/__mocks__/FrameProperties.js.map +1 -0
  93. package/lib/src/tests/__mocks__/MockImageFrameSource.d.ts +4 -0
  94. package/lib/src/tests/__mocks__/MockImageFrameSource.js +15 -0
  95. package/lib/src/tests/__mocks__/MockImageFrameSource.js.map +1 -0
  96. package/lib/src/tests/__mocks__/animations.d.ts +2 -0
  97. package/lib/src/tests/__mocks__/animations.js +10 -0
  98. package/lib/src/tests/__mocks__/animations.js.map +1 -0
  99. package/lib/src/tests/__mocks__/config.d.ts +5 -0
  100. package/lib/src/tests/__mocks__/config.js +31 -0
  101. package/lib/src/tests/__mocks__/config.js.map +1 -0
  102. package/lib/src/tests/__mocks__/mockDocument.d.ts +1 -0
  103. package/lib/src/tests/__mocks__/mockDocument.js +2 -0
  104. package/lib/src/tests/__mocks__/mockDocument.js.map +1 -0
  105. package/lib/src/tests/controllers/ActionController.test.d.ts +1 -0
  106. package/lib/src/tests/controllers/ActionController.test.js +61 -0
  107. package/lib/src/tests/controllers/ActionController.test.js.map +1 -0
  108. package/lib/src/tests/controllers/AnimationController.test.d.ts +1 -0
  109. package/lib/src/tests/controllers/AnimationController.test.js +91 -0
  110. package/lib/src/tests/controllers/AnimationController.test.js.map +1 -0
  111. package/lib/src/tests/controllers/CanvasController.test.d.ts +1 -0
  112. package/lib/src/tests/controllers/CanvasController.test.js +50 -0
  113. package/lib/src/tests/controllers/CanvasController.test.js.map +1 -0
  114. package/lib/src/tests/controllers/CharacterStyleController.test.d.ts +1 -0
  115. package/lib/src/tests/controllers/CharacterStyleController.test.js +125 -0
  116. package/lib/src/tests/controllers/CharacterStyleController.test.js.map +1 -0
  117. package/lib/src/tests/controllers/ColorStyleController.test.d.ts +1 -0
  118. package/lib/src/tests/controllers/ColorStyleController.test.js +83 -0
  119. package/lib/src/tests/controllers/ColorStyleController.test.js.map +1 -0
  120. package/lib/src/tests/controllers/ConfigurationConnectorController.test.d.ts +1 -0
  121. package/lib/src/tests/controllers/ConfigurationConnectorController.test.js +39 -0
  122. package/lib/src/tests/controllers/ConfigurationConnectorController.test.js.map +1 -0
  123. package/lib/src/tests/controllers/ConnectorController.test.d.ts +1 -0
  124. package/lib/src/tests/controllers/ConnectorController.test.js +77 -0
  125. package/lib/src/tests/controllers/ConnectorController.test.js.map +1 -0
  126. package/lib/src/tests/controllers/DebugController.test.d.ts +1 -0
  127. package/lib/src/tests/controllers/DebugController.test.js +47 -0
  128. package/lib/src/tests/controllers/DebugController.test.js.map +1 -0
  129. package/lib/src/tests/controllers/DocumentController.test.d.ts +1 -0
  130. package/lib/src/tests/controllers/DocumentController.test.js +170 -0
  131. package/lib/src/tests/controllers/DocumentController.test.js.map +1 -0
  132. package/lib/src/tests/controllers/ExperimentController.test.d.ts +1 -0
  133. package/lib/src/tests/controllers/ExperimentController.test.js +53 -0
  134. package/lib/src/tests/controllers/ExperimentController.test.js.map +1 -0
  135. package/lib/src/tests/controllers/FontConnectorController.test.d.ts +1 -0
  136. package/lib/src/tests/controllers/FontConnectorController.test.js +109 -0
  137. package/lib/src/tests/controllers/FontConnectorController.test.js.map +1 -0
  138. package/lib/src/tests/controllers/FontController.test.d.ts +1 -0
  139. package/lib/src/tests/controllers/FontController.test.js +73 -0
  140. package/lib/src/tests/controllers/FontController.test.js.map +1 -0
  141. package/lib/src/tests/controllers/FrameController.test.d.ts +1 -0
  142. package/lib/src/tests/controllers/FrameController.test.js +408 -0
  143. package/lib/src/tests/controllers/FrameController.test.js.map +1 -0
  144. package/lib/src/tests/controllers/LayoutController.test.d.ts +1 -0
  145. package/lib/src/tests/controllers/LayoutController.test.js +144 -0
  146. package/lib/src/tests/controllers/LayoutController.test.js.map +1 -0
  147. package/lib/src/tests/controllers/MediaConnectorController.test.d.ts +1 -0
  148. package/lib/src/tests/controllers/MediaConnectorController.test.js +109 -0
  149. package/lib/src/tests/controllers/MediaConnectorController.test.js.map +1 -0
  150. package/lib/src/tests/controllers/PageController.test.d.ts +1 -0
  151. package/lib/src/tests/controllers/PageController.test.js +58 -0
  152. package/lib/src/tests/controllers/PageController.test.js.map +1 -0
  153. package/lib/src/tests/controllers/ParagraphStyleController.test.d.ts +1 -0
  154. package/lib/src/tests/controllers/ParagraphStyleController.test.js +139 -0
  155. package/lib/src/tests/controllers/ParagraphStyleController.test.js.map +1 -0
  156. package/lib/src/tests/controllers/ShapeController.test.d.ts +1 -0
  157. package/lib/src/tests/controllers/ShapeController.test.js +102 -0
  158. package/lib/src/tests/controllers/ShapeController.test.js.map +1 -0
  159. package/lib/src/tests/controllers/SubscriberContoller.test.d.ts +1 -0
  160. package/lib/src/tests/controllers/SubscriberContoller.test.js +201 -0
  161. package/lib/src/tests/controllers/SubscriberContoller.test.js.map +1 -0
  162. package/lib/src/tests/controllers/TextStyleController.test.d.ts +1 -0
  163. package/lib/src/tests/controllers/TextStyleController.test.js +43 -0
  164. package/lib/src/tests/controllers/TextStyleController.test.js.map +1 -0
  165. package/lib/src/tests/controllers/ToolController.test.d.ts +1 -0
  166. package/lib/src/tests/controllers/ToolController.test.js +72 -0
  167. package/lib/src/tests/controllers/ToolController.test.js.map +1 -0
  168. package/lib/src/tests/controllers/UndoManagerController.test.d.ts +1 -0
  169. package/lib/src/tests/controllers/UndoManagerController.test.js +35 -0
  170. package/lib/src/tests/controllers/UndoManagerController.test.js.map +1 -0
  171. package/lib/src/tests/controllers/UtilsController.test.d.ts +1 -0
  172. package/lib/src/tests/controllers/UtilsController.test.js +33 -0
  173. package/lib/src/tests/controllers/UtilsController.test.js.map +1 -0
  174. package/lib/src/tests/controllers/VariableController.test.d.ts +1 -0
  175. package/lib/src/tests/controllers/VariableController.test.js +161 -0
  176. package/lib/src/tests/controllers/VariableController.test.js.map +1 -0
  177. package/lib/src/tests/index.test.d.ts +1 -0
  178. package/lib/src/tests/index.test.js +26 -0
  179. package/lib/src/tests/index.test.js.map +1 -0
  180. package/lib/src/tests/interactions/connector.test.d.ts +1 -0
  181. package/lib/src/tests/interactions/connector.test.js +24 -0
  182. package/lib/src/tests/interactions/connector.test.js.map +1 -0
  183. package/lib/src/tests/utils/editorResponseData.test.d.ts +1 -0
  184. package/lib/src/tests/utils/editorResponseData.test.js +48 -0
  185. package/lib/src/tests/utils/editorResponseData.test.js.map +1 -0
  186. package/lib/src/tests/utils/getClaculatedValue.test.d.ts +1 -0
  187. package/lib/src/tests/utils/getClaculatedValue.test.js +78 -0
  188. package/lib/src/tests/utils/getClaculatedValue.test.js.map +1 -0
  189. package/lib/src/tests/utils/getFetchUrls.test.d.ts +1 -0
  190. package/lib/src/tests/utils/getFetchUrls.test.js +10 -0
  191. package/lib/src/tests/utils/getFetchUrls.test.js.map +1 -0
  192. package/lib/src/tests/utils/round.test.d.ts +1 -0
  193. package/lib/src/tests/utils/round.test.js +16 -0
  194. package/lib/src/tests/utils/round.test.js.map +1 -0
  195. package/lib/src/types/ActionTypes.d.ts +63 -0
  196. package/lib/src/types/ActionTypes.js +29 -0
  197. package/lib/src/types/ActionTypes.js.map +1 -0
  198. package/lib/src/types/AnimationTypes.d.ts +111 -0
  199. package/lib/src/types/AnimationTypes.js +49 -0
  200. package/lib/src/types/AnimationTypes.js.map +1 -0
  201. package/lib/src/types/CharacterStyleTypes.d.ts +65 -0
  202. package/lib/src/types/CharacterStyleTypes.js +2 -0
  203. package/lib/src/types/CharacterStyleTypes.js.map +1 -0
  204. package/lib/src/types/ColorStyleTypes.d.ts +73 -0
  205. package/lib/src/types/ColorStyleTypes.js +24 -0
  206. package/lib/src/types/ColorStyleTypes.js.map +1 -0
  207. package/lib/src/types/CommonTypes.d.ts +92 -0
  208. package/lib/src/types/CommonTypes.js +2 -0
  209. package/lib/src/types/CommonTypes.js.map +1 -0
  210. package/lib/src/types/ConfigurationTypes.d.ts +6 -0
  211. package/lib/src/types/ConfigurationTypes.js +8 -0
  212. package/lib/src/types/ConfigurationTypes.js.map +1 -0
  213. package/lib/src/types/ConnectorTypes.d.ts +115 -0
  214. package/lib/src/types/ConnectorTypes.js +94 -0
  215. package/lib/src/types/ConnectorTypes.js.map +1 -0
  216. package/lib/src/types/DebugTypes.d.ts +25 -0
  217. package/lib/src/types/DebugTypes.js +8 -0
  218. package/lib/src/types/DebugTypes.js.map +1 -0
  219. package/lib/src/types/DocumentTypes.d.ts +180 -0
  220. package/lib/src/types/DocumentTypes.js +17 -0
  221. package/lib/src/types/DocumentTypes.js.map +1 -0
  222. package/lib/src/types/FontConnectorTypes.d.ts +20 -0
  223. package/lib/src/types/FontConnectorTypes.js +6 -0
  224. package/lib/src/types/FontConnectorTypes.js.map +1 -0
  225. package/lib/src/types/FontTypes.d.ts +15 -0
  226. package/lib/src/types/FontTypes.js +2 -0
  227. package/lib/src/types/FontTypes.js.map +1 -0
  228. package/lib/src/types/FrameTypes.d.ts +156 -0
  229. package/lib/src/types/FrameTypes.js +63 -0
  230. package/lib/src/types/FrameTypes.js.map +1 -0
  231. package/lib/src/types/LayoutTypes.d.ts +61 -0
  232. package/lib/src/types/LayoutTypes.js +6 -0
  233. package/lib/src/types/LayoutTypes.js.map +1 -0
  234. package/lib/src/types/MediaConnectorTypes.d.ts +20 -0
  235. package/lib/src/types/MediaConnectorTypes.js +6 -0
  236. package/lib/src/types/MediaConnectorTypes.js.map +1 -0
  237. package/lib/src/types/PageTypes.d.ts +12 -0
  238. package/lib/src/types/PageTypes.js +2 -0
  239. package/lib/src/types/PageTypes.js.map +1 -0
  240. package/lib/src/types/ParagraphStyleTypes.d.ts +79 -0
  241. package/lib/src/types/ParagraphStyleTypes.js +2 -0
  242. package/lib/src/types/ParagraphStyleTypes.js.map +1 -0
  243. package/lib/src/types/ShapeTypes.d.ts +26 -0
  244. package/lib/src/types/ShapeTypes.js +13 -0
  245. package/lib/src/types/ShapeTypes.js.map +1 -0
  246. package/lib/src/types/TextStyleTypes.d.ts +131 -0
  247. package/lib/src/types/TextStyleTypes.js +68 -0
  248. package/lib/src/types/TextStyleTypes.js.map +1 -0
  249. package/lib/src/types/VariableTypes.d.ts +45 -0
  250. package/lib/src/types/VariableTypes.js +13 -0
  251. package/lib/src/types/VariableTypes.js.map +1 -0
  252. package/lib/src/utils/EditorResponseData.d.ts +3 -0
  253. package/lib/src/utils/EditorResponseData.js +16 -0
  254. package/lib/src/utils/EditorResponseData.js.map +1 -0
  255. package/lib/src/utils/enums.d.ts +30 -0
  256. package/lib/src/utils/enums.js +36 -0
  257. package/lib/src/utils/enums.js.map +1 -0
  258. package/lib/src/utils/getCalculatedValue.d.ts +2 -0
  259. package/lib/src/utils/getCalculatedValue.js +20 -0
  260. package/lib/src/utils/getCalculatedValue.js.map +1 -0
  261. package/lib/src/utils/getFetchUrl.d.ts +2 -0
  262. package/lib/src/utils/getFetchUrl.js +3 -0
  263. package/lib/src/utils/getFetchUrl.js.map +1 -0
  264. package/package.json +89 -0
@@ -0,0 +1,408 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { BlendMode, FitMode, FrameTypeEnum, ImageSourceTypeEnum, UpdateZIndexMethod, VerticalAlign, } from '../../types/FrameTypes';
11
+ import { FrameController } from '../../controllers/FrameController';
12
+ import { mockSelectFrame } from '../__mocks__/FrameProperties';
13
+ import { mockImageConnectorSource, mockImageUrlSource } from '../__mocks__/MockImageFrameSource';
14
+ import { castToEditorResponse, getEditorResponseData } from '../../utils/EditorResponseData';
15
+ import { ShapeType } from '../../types/ShapeTypes';
16
+ let frameId;
17
+ let mockedFrameController;
18
+ const mockedEditorApi = {
19
+ addFrame: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
20
+ addShapeFrame: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
21
+ getFrames: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
22
+ getSelectedFrames: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
23
+ getFramesByPageId: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
24
+ getFrameByName: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
25
+ getFrameById: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
26
+ getFramePropertiesOnSelectedLayout: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
27
+ getFramePropertiesByFrameId: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
28
+ getFramesProperties: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
29
+ setFrameHeight: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
30
+ setFrameWidth: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
31
+ setFrameX: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
32
+ setFrameY: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
33
+ setFrameRotation: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
34
+ setFrameVisibility: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
35
+ removeFrame: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
36
+ resetFrame: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
37
+ resetFrameX: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
38
+ resetFrameY: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
39
+ resetFrameHeight: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
40
+ resetFrameWidth: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
41
+ resetFrameRotation: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
42
+ resetFrameSize: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
43
+ resetImageFrameFitMode: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
44
+ removeImageSource: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
45
+ selectFrames: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
46
+ selectMultipleFrames: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
47
+ setFrameName: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
48
+ setImageFrameFitMode: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
49
+ setFrameConstrainProportions: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
50
+ setVerticalAlignment: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
51
+ setMinCopyfitting: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
52
+ setMaxCopyfitting: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
53
+ setEnableCopyfitting: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
54
+ resetMinCopyfitting: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
55
+ resetMaxCopyfitting: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
56
+ resetEnableCopyfitting: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
57
+ reorderFrames: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
58
+ setFrameZIndex: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
59
+ setShapeProperties: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
60
+ setFrameBlendMode: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
61
+ renameFrame: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
62
+ setImageSource: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
63
+ enterCropMode: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
64
+ applyCropMode: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
65
+ resetCropMode: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
66
+ cancelCropMode: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
67
+ };
68
+ beforeEach(() => {
69
+ mockedFrameController = new FrameController(mockedEditorApi);
70
+ jest.spyOn(mockedEditorApi, 'addFrame');
71
+ jest.spyOn(mockedEditorApi, 'addShapeFrame');
72
+ jest.spyOn(mockedEditorApi, 'getFrames');
73
+ jest.spyOn(mockedEditorApi, 'getSelectedFrames');
74
+ jest.spyOn(mockedEditorApi, 'getFramesByPageId');
75
+ jest.spyOn(mockedEditorApi, 'getFrameByName');
76
+ jest.spyOn(mockedEditorApi, 'getFrameById');
77
+ jest.spyOn(mockedEditorApi, 'getFramePropertiesOnSelectedLayout');
78
+ jest.spyOn(mockedEditorApi, 'getFramePropertiesByFrameId');
79
+ jest.spyOn(mockedEditorApi, 'getFramesProperties');
80
+ jest.spyOn(mockedEditorApi, 'setFrameHeight');
81
+ jest.spyOn(mockedEditorApi, 'setFrameWidth');
82
+ jest.spyOn(mockedEditorApi, 'setFrameX');
83
+ jest.spyOn(mockedEditorApi, 'setFrameY');
84
+ jest.spyOn(mockedEditorApi, 'setFrameRotation');
85
+ jest.spyOn(mockedEditorApi, 'setFrameVisibility');
86
+ jest.spyOn(mockedEditorApi, 'removeFrame');
87
+ jest.spyOn(mockedEditorApi, 'resetFrame');
88
+ jest.spyOn(mockedEditorApi, 'resetFrameX');
89
+ jest.spyOn(mockedEditorApi, 'resetFrameY');
90
+ jest.spyOn(mockedEditorApi, 'resetFrameHeight');
91
+ jest.spyOn(mockedEditorApi, 'resetFrameWidth');
92
+ jest.spyOn(mockedEditorApi, 'resetFrameRotation');
93
+ jest.spyOn(mockedEditorApi, 'resetFrameSize');
94
+ jest.spyOn(mockedEditorApi, 'resetImageFrameFitMode');
95
+ jest.spyOn(mockedEditorApi, 'removeImageSource');
96
+ jest.spyOn(mockedEditorApi, 'selectFrames');
97
+ jest.spyOn(mockedEditorApi, 'selectMultipleFrames');
98
+ jest.spyOn(mockedEditorApi, 'setFrameName');
99
+ jest.spyOn(mockedEditorApi, 'setImageFrameFitMode');
100
+ jest.spyOn(mockedEditorApi, 'setFrameConstrainProportions');
101
+ jest.spyOn(mockedEditorApi, 'setVerticalAlignment');
102
+ jest.spyOn(mockedEditorApi, 'setMinCopyfitting');
103
+ jest.spyOn(mockedEditorApi, 'setMaxCopyfitting');
104
+ jest.spyOn(mockedEditorApi, 'setEnableCopyfitting');
105
+ jest.spyOn(mockedEditorApi, 'resetMinCopyfitting');
106
+ jest.spyOn(mockedEditorApi, 'resetMaxCopyfitting');
107
+ jest.spyOn(mockedEditorApi, 'resetEnableCopyfitting');
108
+ jest.spyOn(mockedEditorApi, 'reorderFrames');
109
+ jest.spyOn(mockedEditorApi, 'setFrameZIndex');
110
+ jest.spyOn(mockedEditorApi, 'setShapeProperties');
111
+ jest.spyOn(mockedEditorApi, 'setFrameBlendMode');
112
+ jest.spyOn(mockedEditorApi, 'renameFrame');
113
+ jest.spyOn(mockedEditorApi, 'setImageSource');
114
+ jest.spyOn(mockedEditorApi, 'enterCropMode');
115
+ jest.spyOn(mockedEditorApi, 'applyCropMode');
116
+ jest.spyOn(mockedEditorApi, 'resetCropMode');
117
+ jest.spyOn(mockedEditorApi, 'cancelCropMode');
118
+ frameId = mockSelectFrame.frameId;
119
+ });
120
+ afterAll(() => {
121
+ jest.restoreAllMocks();
122
+ });
123
+ describe('FrameController', () => {
124
+ it('Should be possible to add a frame', () => __awaiter(void 0, void 0, void 0, function* () {
125
+ yield mockedFrameController.addFrame(FrameTypeEnum.image, 100, 100, 100, 100);
126
+ expect(mockedEditorApi.addFrame).toHaveBeenCalledTimes(1);
127
+ expect(mockedEditorApi.addFrame).toHaveBeenCalledWith(FrameTypeEnum.image, 100, 100, 100, 100);
128
+ }));
129
+ it('Should be possible to add a ShapeFrame', () => __awaiter(void 0, void 0, void 0, function* () {
130
+ yield mockedFrameController.addShapeFrame(ShapeType.ellipse, 100, 100, 100, 100);
131
+ expect(mockedEditorApi.addFrame).toHaveBeenCalledTimes(2);
132
+ expect(mockedEditorApi.addFrame).toHaveBeenCalledWith(ShapeType.ellipse, 100, 100, 100, 100);
133
+ }));
134
+ it('Should be possible to get all frames', () => __awaiter(void 0, void 0, void 0, function* () {
135
+ yield mockedFrameController.getFrames();
136
+ expect(mockedEditorApi.getFrames).toHaveBeenCalledTimes(1);
137
+ }));
138
+ it('Should be possible to get the selected frames', () => __awaiter(void 0, void 0, void 0, function* () {
139
+ yield mockedFrameController.getSelectedFrames();
140
+ expect(mockedEditorApi.getSelectedFrames).toHaveBeenCalledTimes(1);
141
+ }));
142
+ it('Should be possible to get frames by pageId', () => __awaiter(void 0, void 0, void 0, function* () {
143
+ yield mockedFrameController.getFramesByPageId(frameId);
144
+ expect(mockedEditorApi.getFramesByPageId).toHaveBeenCalledTimes(1);
145
+ expect(mockedEditorApi.getFramesByPageId).toHaveBeenCalledWith(frameId);
146
+ }));
147
+ it('Should be possible to get a frame by name', () => __awaiter(void 0, void 0, void 0, function* () {
148
+ yield mockedFrameController.getFrameByName('frame');
149
+ expect(mockedEditorApi.getFrameByName).toHaveBeenCalledTimes(1);
150
+ expect(mockedEditorApi.getFrameByName).toHaveBeenCalledWith('frame');
151
+ }));
152
+ it('Should be possible to get a frame by name', () => __awaiter(void 0, void 0, void 0, function* () {
153
+ yield mockedFrameController.getFrameById(frameId);
154
+ expect(mockedEditorApi.getFrameById).toHaveBeenCalledTimes(1);
155
+ expect(mockedEditorApi.getFrameById).toHaveBeenCalledWith(frameId);
156
+ }));
157
+ it('Should be possible to get frame properties on the selected layour', () => __awaiter(void 0, void 0, void 0, function* () {
158
+ yield mockedFrameController.getFramePropertiesOnSelectedLayout();
159
+ expect(mockedEditorApi.getFramePropertiesOnSelectedLayout).toHaveBeenCalledTimes(1);
160
+ }));
161
+ it('Should be possible to get frame properties by frame id', () => __awaiter(void 0, void 0, void 0, function* () {
162
+ yield mockedFrameController.getFramePropertiesByFrameId('1', '2');
163
+ expect(mockedEditorApi.getFramePropertiesByFrameId).toHaveBeenCalledTimes(1);
164
+ expect(mockedEditorApi.getFramePropertiesByFrameId).toHaveBeenCalledWith('1', '2');
165
+ }));
166
+ it('Should be possible to get frame properties by layout id', () => __awaiter(void 0, void 0, void 0, function* () {
167
+ yield mockedFrameController.getFramesProperties(frameId);
168
+ expect(mockedEditorApi.getFramesProperties).toHaveBeenCalledTimes(1);
169
+ expect(mockedEditorApi.getFramesProperties).toHaveBeenCalledWith(frameId);
170
+ }));
171
+ it('Should be possible to set the frame height', () => __awaiter(void 0, void 0, void 0, function* () {
172
+ yield mockedFrameController.setFrameHeight(frameId, '300');
173
+ expect(mockedEditorApi.setFrameHeight).toHaveBeenCalledTimes(1);
174
+ expect(mockedEditorApi.setFrameHeight).toHaveBeenCalledWith(frameId, 300);
175
+ }));
176
+ it('Should be possible to set the frame rotation', () => __awaiter(void 0, void 0, void 0, function* () {
177
+ yield mockedFrameController.setFrameRotation(frameId, '400');
178
+ expect(mockedEditorApi.setFrameRotation).toHaveBeenCalledTimes(1);
179
+ expect(mockedEditorApi.setFrameRotation).toHaveBeenCalledWith(frameId, 400);
180
+ }));
181
+ it('Should be possible to set the frame y property', () => __awaiter(void 0, void 0, void 0, function* () {
182
+ yield mockedFrameController.setFrameY(frameId, '100');
183
+ expect(mockedEditorApi.setFrameY).toHaveBeenCalledTimes(1);
184
+ expect(mockedEditorApi.setFrameY).toHaveBeenCalledWith(frameId, 100);
185
+ }));
186
+ it('Should be possible to set the frame x property', () => __awaiter(void 0, void 0, void 0, function* () {
187
+ yield mockedFrameController.setFrameX(frameId, '400');
188
+ expect(mockedEditorApi.setFrameX).toHaveBeenCalledTimes(1);
189
+ expect(mockedEditorApi.setFrameX).toHaveBeenCalledWith(frameId, 400);
190
+ }));
191
+ it('Should be possible to set the frame width', () => __awaiter(void 0, void 0, void 0, function* () {
192
+ yield mockedFrameController.setFrameWidth(frameId, '332');
193
+ expect(mockedEditorApi.setFrameWidth).toHaveBeenCalledTimes(1);
194
+ expect(mockedEditorApi.setFrameWidth).toHaveBeenCalledWith(frameId, 332);
195
+ }));
196
+ it('Should be possible to set the frame heignt', () => __awaiter(void 0, void 0, void 0, function* () {
197
+ yield mockedFrameController.setFrameHeight(frameId, '32');
198
+ expect(mockedEditorApi.setFrameHeight).toHaveBeenCalledTimes(2);
199
+ expect(mockedEditorApi.setFrameHeight).toHaveBeenCalledWith(frameId, 32);
200
+ }));
201
+ it('Should be possible to set the name of the frame', () => __awaiter(void 0, void 0, void 0, function* () {
202
+ yield mockedFrameController.setFrameName(frameId, 'TEST');
203
+ expect(mockedEditorApi.renameFrame).toHaveBeenCalledTimes(1);
204
+ expect(mockedEditorApi.renameFrame).toHaveBeenCalledWith(frameId, 'TEST');
205
+ }));
206
+ it('Should be possible to set the frame visibility', () => __awaiter(void 0, void 0, void 0, function* () {
207
+ yield mockedFrameController.setFrameVisibility(frameId, false);
208
+ expect(mockedEditorApi.setFrameVisibility).toHaveBeenCalledTimes(1);
209
+ expect(mockedEditorApi.setFrameVisibility).toHaveBeenCalledWith(frameId, false);
210
+ }));
211
+ it('Should be possible to remove a frame', () => __awaiter(void 0, void 0, void 0, function* () {
212
+ yield mockedFrameController.removeFrame(frameId);
213
+ expect(mockedEditorApi.removeFrame).toHaveBeenCalledTimes(1);
214
+ expect(mockedEditorApi.removeFrame).toHaveBeenCalledWith(frameId);
215
+ }));
216
+ it('Should be possible to reset a frame', () => __awaiter(void 0, void 0, void 0, function* () {
217
+ yield mockedFrameController.resetFrame(frameId);
218
+ expect(mockedEditorApi.resetFrame).toHaveBeenCalledTimes(1);
219
+ expect(mockedEditorApi.resetFrame).toHaveBeenCalledWith(frameId);
220
+ }));
221
+ it("Should be possible to reset a frame's x position", () => __awaiter(void 0, void 0, void 0, function* () {
222
+ yield mockedFrameController.resetFrameX(frameId);
223
+ expect(mockedEditorApi.resetFrameX).toHaveBeenCalledTimes(1);
224
+ expect(mockedEditorApi.resetFrameX).toHaveBeenCalledWith(frameId);
225
+ }));
226
+ it("Should be possible to reset a frame's y position", () => __awaiter(void 0, void 0, void 0, function* () {
227
+ yield mockedFrameController.resetFrameY(frameId);
228
+ expect(mockedEditorApi.resetFrameY).toHaveBeenCalledTimes(1);
229
+ expect(mockedEditorApi.resetFrameY).toHaveBeenCalledWith(frameId);
230
+ }));
231
+ it('Should be possible to reset the frame rotation', () => __awaiter(void 0, void 0, void 0, function* () {
232
+ yield mockedFrameController.resetFrameRotation(frameId);
233
+ expect(mockedEditorApi.resetFrameRotation).toHaveBeenCalledTimes(1);
234
+ expect(mockedEditorApi.resetFrameRotation).toHaveBeenCalledWith(frameId);
235
+ }));
236
+ it('Should be possible to reset the frame height', () => __awaiter(void 0, void 0, void 0, function* () {
237
+ yield mockedFrameController.resetFrameHeight(frameId);
238
+ expect(mockedEditorApi.resetFrameHeight).toHaveBeenCalledTimes(1);
239
+ expect(mockedEditorApi.resetFrameHeight).toHaveBeenCalledWith(frameId);
240
+ }));
241
+ it('Should be possible to reset the frame width', () => __awaiter(void 0, void 0, void 0, function* () {
242
+ yield mockedFrameController.resetFrameWidth(frameId);
243
+ expect(mockedEditorApi.resetFrameWidth).toHaveBeenCalledTimes(1);
244
+ expect(mockedEditorApi.resetFrameWidth).toHaveBeenCalledWith(frameId);
245
+ }));
246
+ it('Should be possible to reset the frame size', () => __awaiter(void 0, void 0, void 0, function* () {
247
+ yield mockedFrameController.resetFrameSize(frameId);
248
+ expect(mockedEditorApi.resetFrameSize).toHaveBeenCalledTimes(1);
249
+ expect(mockedEditorApi.resetFrameSize).toHaveBeenCalledWith(frameId);
250
+ }));
251
+ it('Should be possible to reset the image frame fit mode', () => __awaiter(void 0, void 0, void 0, function* () {
252
+ yield mockedFrameController.resetImageFrameFitMode(frameId);
253
+ expect(mockedEditorApi.resetImageFrameFitMode).toHaveBeenCalledTimes(1);
254
+ expect(mockedEditorApi.resetImageFrameFitMode).toHaveBeenCalledWith(frameId);
255
+ }));
256
+ it('Should be possible to select a frame', () => __awaiter(void 0, void 0, void 0, function* () {
257
+ yield mockedFrameController.selectFrame(frameId);
258
+ expect(mockedEditorApi.selectFrames).toHaveBeenCalledTimes(1);
259
+ expect(mockedEditorApi.selectFrames).toHaveBeenCalledWith([frameId]);
260
+ }));
261
+ it('Should be possible to select multiple frames at once', () => __awaiter(void 0, void 0, void 0, function* () {
262
+ yield mockedFrameController.selectMultipleFrames([frameId]);
263
+ expect(mockedEditorApi.selectFrames).toHaveBeenCalledTimes(2);
264
+ expect(mockedEditorApi.selectFrames).toHaveBeenCalledWith([frameId]);
265
+ }));
266
+ it('Should be possible to set the image frame fit mode', () => __awaiter(void 0, void 0, void 0, function* () {
267
+ yield mockedFrameController.setImageFrameFitMode(frameId, FitMode.fit);
268
+ expect(mockedEditorApi.setImageFrameFitMode).toHaveBeenCalledTimes(1);
269
+ expect(mockedEditorApi.setImageFrameFitMode).toHaveBeenCalledWith(frameId, FitMode.fit);
270
+ }));
271
+ it('Should be possible to set the frame to constrain proportions', () => __awaiter(void 0, void 0, void 0, function* () {
272
+ yield mockedFrameController.setFrameConstrainProportions(frameId, true);
273
+ expect(mockedEditorApi.setFrameConstrainProportions).toHaveBeenCalledTimes(1);
274
+ expect(mockedEditorApi.setFrameConstrainProportions).toHaveBeenCalledWith(frameId, true);
275
+ }));
276
+ it('Should be possible to set the verical allignment of a frame', () => __awaiter(void 0, void 0, void 0, function* () {
277
+ yield mockedFrameController.setVerticalAlignment(frameId, VerticalAlign.justify);
278
+ expect(mockedEditorApi.setVerticalAlignment).toHaveBeenCalledTimes(1);
279
+ expect(mockedEditorApi.setVerticalAlignment).toHaveBeenCalledWith(frameId, VerticalAlign.justify);
280
+ }));
281
+ it('Should be possible to set the min value for copyfitting', () => __awaiter(void 0, void 0, void 0, function* () {
282
+ yield mockedFrameController.setMinCopyfitting(frameId, '0.5');
283
+ expect(mockedEditorApi.setMinCopyfitting).toHaveBeenCalledTimes(1);
284
+ expect(mockedEditorApi.setMinCopyfitting).toHaveBeenCalledWith(frameId, 0.5);
285
+ }));
286
+ it('Should be possible to set the max value for copyfitting', () => __awaiter(void 0, void 0, void 0, function* () {
287
+ yield mockedFrameController.setMaxCopyfitting(frameId, '5.0');
288
+ expect(mockedEditorApi.setMaxCopyfitting).toHaveBeenCalledTimes(1);
289
+ expect(mockedEditorApi.setMaxCopyfitting).toHaveBeenCalledWith(frameId, 5.0);
290
+ }));
291
+ it('Should be possible to enable copyfittyng with a boolean', () => __awaiter(void 0, void 0, void 0, function* () {
292
+ yield mockedFrameController.setEnableCopyfitting(frameId, true);
293
+ expect(mockedEditorApi.setEnableCopyfitting).toHaveBeenCalledTimes(1);
294
+ expect(mockedEditorApi.setEnableCopyfitting).toHaveBeenCalledWith(frameId, true);
295
+ }));
296
+ it('Should be possible to reset the minvalue for copyfitting', () => __awaiter(void 0, void 0, void 0, function* () {
297
+ yield mockedFrameController.resetMinCopyfitting(frameId);
298
+ expect(mockedEditorApi.resetMinCopyfitting).toHaveBeenCalledTimes(1);
299
+ expect(mockedEditorApi.resetMinCopyfitting).toHaveBeenCalledWith(frameId);
300
+ }));
301
+ it('Should be possible to reset the maxvalue for copyfitting', () => __awaiter(void 0, void 0, void 0, function* () {
302
+ yield mockedFrameController.resetMaxCopyfitting(frameId);
303
+ expect(mockedEditorApi.resetMaxCopyfitting).toHaveBeenCalledTimes(1);
304
+ expect(mockedEditorApi.resetMaxCopyfitting).toHaveBeenCalledWith(frameId);
305
+ }));
306
+ it('Should be possible to reset the copyfitting toggle', () => __awaiter(void 0, void 0, void 0, function* () {
307
+ yield mockedFrameController.resetEnableCopyfitting(frameId);
308
+ expect(mockedEditorApi.resetEnableCopyfitting).toHaveBeenCalledTimes(1);
309
+ expect(mockedEditorApi.resetEnableCopyfitting).toHaveBeenCalledWith(frameId);
310
+ }));
311
+ it('Should be possible to reorder the frames', () => __awaiter(void 0, void 0, void 0, function* () {
312
+ yield mockedFrameController.reorderFrames(1, [frameId]);
313
+ expect(mockedEditorApi.reorderFrames).toHaveBeenCalledTimes(1);
314
+ expect(mockedEditorApi.reorderFrames).toHaveBeenCalledWith(1, [frameId]);
315
+ }));
316
+ it('Should be possible to set the frame Z index', () => __awaiter(void 0, void 0, void 0, function* () {
317
+ yield mockedFrameController.setFrameZIndex(frameId, UpdateZIndexMethod.sendBackward);
318
+ expect(mockedEditorApi.setFrameZIndex).toHaveBeenCalledTimes(1);
319
+ expect(mockedEditorApi.setFrameZIndex).toHaveBeenCalledWith(frameId, UpdateZIndexMethod.sendBackward);
320
+ }));
321
+ it('Should be possible to set an image to the frame using a connector', () => __awaiter(void 0, void 0, void 0, function* () {
322
+ yield mockedFrameController.setImageFromConnector(frameId, 'connector id', 'asset id');
323
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledTimes(1);
324
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledWith(frameId, JSON.stringify({
325
+ assetId: 'asset id',
326
+ connectorId: 'connector id',
327
+ sourceType: ImageSourceTypeEnum.connector,
328
+ }));
329
+ }));
330
+ it('Should be possible to set an image to the frame using a url', () => __awaiter(void 0, void 0, void 0, function* () {
331
+ yield mockedFrameController.setImageFromUrl(frameId, 'image url');
332
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledTimes(2);
333
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledWith(frameId, JSON.stringify({ url: 'image url', sourceType: ImageSourceTypeEnum.url }));
334
+ }));
335
+ it('Should be possible to remove an image source on a frame', () => __awaiter(void 0, void 0, void 0, function* () {
336
+ yield mockedFrameController.removeImageSource(frameId);
337
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledTimes(3);
338
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledWith(frameId, null);
339
+ }));
340
+ it('Should be possible to add blend mode to a specific frame', () => __awaiter(void 0, void 0, void 0, function* () {
341
+ yield mockedFrameController.setFrameBlendMode(frameId, BlendMode.darken);
342
+ expect(mockedEditorApi.setFrameBlendMode).toHaveBeenCalledTimes(1);
343
+ expect(mockedEditorApi.setFrameBlendMode).toHaveBeenCalledWith(frameId, BlendMode.darken);
344
+ }));
345
+ it('Should be possible to enter cropping mode on a specific frame', () => __awaiter(void 0, void 0, void 0, function* () {
346
+ yield mockedFrameController.enterCropMode(frameId);
347
+ expect(mockedEditorApi.enterCropMode).toHaveBeenCalledTimes(1);
348
+ expect(mockedEditorApi.enterCropMode).toHaveBeenCalledWith(frameId);
349
+ }));
350
+ it('Should be possible to apply the current image crop to the frame', () => __awaiter(void 0, void 0, void 0, function* () {
351
+ yield mockedFrameController.applyCropMode();
352
+ expect(mockedEditorApi.applyCropMode).toHaveBeenCalledTimes(1);
353
+ }));
354
+ it('Should be possible to reset cropping mode on a specific frame', () => __awaiter(void 0, void 0, void 0, function* () {
355
+ yield mockedFrameController.resetCropMode(frameId);
356
+ expect(mockedEditorApi.resetCropMode).toHaveBeenCalledTimes(1);
357
+ expect(mockedEditorApi.resetCropMode).toHaveBeenCalledWith(frameId);
358
+ }));
359
+ it('Should be possible to cancel the current image crop', () => __awaiter(void 0, void 0, void 0, function* () {
360
+ yield mockedFrameController.cancelCropMode();
361
+ expect(mockedEditorApi.cancelCropMode).toHaveBeenCalledTimes(1);
362
+ }));
363
+ });
364
+ describe('ImageFrameSource manipulations', () => {
365
+ beforeAll(() => {
366
+ jest.clearAllMocks();
367
+ });
368
+ afterEach(() => {
369
+ jest.clearAllMocks();
370
+ });
371
+ it('setImageFromConnector() redirects to EditorAPI.setImageSource() with ImageConnectorSource param', () => __awaiter(void 0, void 0, void 0, function* () {
372
+ const connectorId = mockImageConnectorSource.connectorId;
373
+ const assetId = mockImageConnectorSource.assetId;
374
+ yield mockedFrameController.setImageFromConnector(frameId, connectorId, assetId);
375
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledTimes(1);
376
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledWith(frameId, JSON.stringify(mockImageConnectorSource));
377
+ }));
378
+ it('setImageFromUrl() redirects to EditorAPI.setImageSource() with ImageUrlSource param', () => __awaiter(void 0, void 0, void 0, function* () {
379
+ const url = mockImageUrlSource.url;
380
+ yield mockedFrameController.setImageFromUrl(frameId, url);
381
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledTimes(1);
382
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledWith(frameId, JSON.stringify(mockImageUrlSource));
383
+ }));
384
+ it('removeImageSource() redirects to EditorAPI.setImageSource() with null param', () => __awaiter(void 0, void 0, void 0, function* () {
385
+ yield mockedFrameController.removeImageSource(frameId);
386
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledTimes(1);
387
+ expect(mockedEditorApi.setImageSource).toHaveBeenCalledWith(frameId, null);
388
+ }));
389
+ });
390
+ describe('User inputs for Frame Properties', () => {
391
+ it('Returns null when user input doesnt contain any number', () => __awaiter(void 0, void 0, void 0, function* () {
392
+ const responseX = yield mockedFrameController.setFrameX(frameId, 'dasdsa');
393
+ const responseY = yield mockedFrameController.setFrameY(frameId, 'sdsadas');
394
+ const responseWidth = yield mockedFrameController.setFrameWidth(frameId, 'sd');
395
+ const responseHeight = yield mockedFrameController.setFrameHeight(frameId, 'dds');
396
+ const responseRotation = yield mockedFrameController.setFrameRotation(frameId, 'dsdsd');
397
+ expect(responseX).toEqual(null);
398
+ expect(responseY).toEqual(null);
399
+ expect(responseWidth).toEqual(null);
400
+ expect(responseHeight).toEqual(null);
401
+ expect(responseRotation).toEqual(null);
402
+ }));
403
+ it('return null when the user input an infinite value', () => __awaiter(void 0, void 0, void 0, function* () {
404
+ const responseRotation = yield mockedFrameController.setFrameRotation(frameId, '20/0');
405
+ expect(responseRotation).toBeNull();
406
+ }));
407
+ });
408
+ //# sourceMappingURL=FrameController.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameController.test.js","sourceRoot":"","sources":["../../../../src/tests/controllers/FrameController.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { LayoutController } from '../../controllers/LayoutController';
11
+ import { castToEditorResponse, getEditorResponseData } from '../../utils/EditorResponseData';
12
+ import { mockSelectPage } from '../__mocks__/FrameProperties';
13
+ let mockedFontController;
14
+ let mockId;
15
+ const mockedEditorApi = {
16
+ getLayouts: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
17
+ getLayoutById: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
18
+ getLayoutByName: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
19
+ getSelectedLayout: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
20
+ removeLayout: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
21
+ addLayout: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
22
+ setLayoutName: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
23
+ selectLayout: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
24
+ duplicateLayout: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
25
+ resetLayout: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
26
+ setLayoutHeight: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
27
+ setLayoutWidth: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
28
+ resetLayoutHeight: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
29
+ resetLayoutWidth: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
30
+ getPageSnapshot: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
31
+ renameLayout: () => __awaiter(void 0, void 0, void 0, function* () { return getEditorResponseData(castToEditorResponse(null)); }),
32
+ };
33
+ beforeEach(() => {
34
+ mockedFontController = new LayoutController(mockedEditorApi);
35
+ jest.spyOn(mockedEditorApi, 'getLayouts');
36
+ jest.spyOn(mockedEditorApi, 'getLayoutById');
37
+ jest.spyOn(mockedEditorApi, 'getLayoutByName');
38
+ jest.spyOn(mockedEditorApi, 'getSelectedLayout');
39
+ jest.spyOn(mockedEditorApi, 'removeLayout');
40
+ jest.spyOn(mockedEditorApi, 'addLayout');
41
+ jest.spyOn(mockedEditorApi, 'setLayoutName');
42
+ jest.spyOn(mockedEditorApi, 'selectLayout');
43
+ jest.spyOn(mockedEditorApi, 'duplicateLayout');
44
+ jest.spyOn(mockedEditorApi, 'resetLayout');
45
+ jest.spyOn(mockedEditorApi, 'setLayoutHeight');
46
+ jest.spyOn(mockedEditorApi, 'setLayoutWidth');
47
+ jest.spyOn(mockedEditorApi, 'resetLayoutHeight');
48
+ jest.spyOn(mockedEditorApi, 'resetLayoutWidth');
49
+ jest.spyOn(mockedEditorApi, 'getPageSnapshot');
50
+ jest.spyOn(mockedEditorApi, 'renameLayout');
51
+ mockId = mockSelectPage.layoutId;
52
+ });
53
+ afterEach(() => {
54
+ jest.restoreAllMocks();
55
+ });
56
+ describe('LayoutController', () => {
57
+ it('Should be possible to get all layouts', () => __awaiter(void 0, void 0, void 0, function* () {
58
+ yield mockedFontController.getLayouts();
59
+ expect(mockedEditorApi.getLayouts).toHaveBeenCalledTimes(1);
60
+ }));
61
+ it("Should be possible to get a layout by it's ID", () => __awaiter(void 0, void 0, void 0, function* () {
62
+ yield mockedFontController.getLayoutById('1');
63
+ expect(mockedEditorApi.getLayoutById).toHaveBeenCalledTimes(1);
64
+ expect(mockedEditorApi.getLayoutById).toHaveBeenCalledWith('1');
65
+ }));
66
+ it("Should be possible to get a layout by it's name", () => __awaiter(void 0, void 0, void 0, function* () {
67
+ yield mockedFontController.getLayoutByName('layout');
68
+ expect(mockedEditorApi.getLayoutByName).toHaveBeenCalledTimes(1);
69
+ expect(mockedEditorApi.getLayoutByName).toHaveBeenCalledWith('layout');
70
+ }));
71
+ it('Should be possible to get the selected layout', () => __awaiter(void 0, void 0, void 0, function* () {
72
+ yield mockedFontController.getSelectedLayout();
73
+ expect(mockedEditorApi.getSelectedLayout).toHaveBeenCalledTimes(1);
74
+ }));
75
+ it('Should be possible to remove a layout', () => __awaiter(void 0, void 0, void 0, function* () {
76
+ yield mockedFontController.removeLayout('1');
77
+ expect(mockedEditorApi.removeLayout).toHaveBeenCalledTimes(1);
78
+ expect(mockedEditorApi.removeLayout).toHaveBeenCalledWith('1');
79
+ }));
80
+ it('Should be possible to add a layout', () => __awaiter(void 0, void 0, void 0, function* () {
81
+ yield mockedFontController.addLayout('1');
82
+ expect(mockedEditorApi.addLayout).toHaveBeenCalledTimes(1);
83
+ expect(mockedEditorApi.addLayout).toHaveBeenCalledWith('1');
84
+ }));
85
+ it('Should be possible to set the layout name', () => __awaiter(void 0, void 0, void 0, function* () {
86
+ yield mockedFontController.setLayoutName('1', 'TEST');
87
+ expect(mockedEditorApi.renameLayout).toHaveBeenCalledTimes(1);
88
+ expect(mockedEditorApi.renameLayout).toHaveBeenCalledWith('1', 'TEST');
89
+ }));
90
+ it('Should be possible to select a layout', () => __awaiter(void 0, void 0, void 0, function* () {
91
+ yield mockedFontController.selectLayout('1');
92
+ expect(mockedEditorApi.selectLayout).toHaveBeenCalledTimes(1);
93
+ expect(mockedEditorApi.selectLayout).toHaveBeenCalledWith('1');
94
+ }));
95
+ it('Should be possible to duplicate a layout', () => __awaiter(void 0, void 0, void 0, function* () {
96
+ yield mockedFontController.duplicateLayout('1');
97
+ expect(mockedEditorApi.duplicateLayout).toHaveBeenCalledTimes(1);
98
+ expect(mockedEditorApi.duplicateLayout).toHaveBeenCalledWith('1');
99
+ }));
100
+ it('Should be possible to reset a layout', () => __awaiter(void 0, void 0, void 0, function* () {
101
+ yield mockedFontController.resetLayout('1');
102
+ expect(mockedEditorApi.resetLayout).toHaveBeenCalledTimes(1);
103
+ expect(mockedEditorApi.resetLayout).toHaveBeenCalledWith('1');
104
+ }));
105
+ it('Should be possible to set the layout height', () => __awaiter(void 0, void 0, void 0, function* () {
106
+ yield mockedFontController.setLayoutHeight(mockId, '32');
107
+ expect(mockedEditorApi.setLayoutHeight).toHaveBeenCalledTimes(1);
108
+ expect(mockedEditorApi.setLayoutHeight).toHaveBeenCalledWith('1', 32);
109
+ }));
110
+ it('Should not be possible to set the layout height to null', () => __awaiter(void 0, void 0, void 0, function* () {
111
+ yield mockedFontController.setLayoutHeight(mockId, 'null');
112
+ expect(mockedEditorApi.setLayoutHeight).not.toHaveBeenCalled();
113
+ }));
114
+ it('Should be possible to set the layout width', () => __awaiter(void 0, void 0, void 0, function* () {
115
+ yield mockedFontController.setLayoutWidth(mockId, '34');
116
+ expect(mockedEditorApi.setLayoutWidth).toHaveBeenCalledTimes(1);
117
+ expect(mockedEditorApi.setLayoutWidth).toHaveBeenCalledWith('1', 34);
118
+ }));
119
+ it('Should not be possible to set the layout width to null', () => __awaiter(void 0, void 0, void 0, function* () {
120
+ yield mockedFontController.setLayoutWidth(mockId, 'null');
121
+ expect(mockedEditorApi.setLayoutWidth).not.toHaveBeenCalled();
122
+ }));
123
+ it('Should be possible to reset the layout height', () => __awaiter(void 0, void 0, void 0, function* () {
124
+ yield mockedFontController.resetLayoutHeight('1');
125
+ expect(mockedEditorApi.resetLayoutHeight).toHaveBeenCalledTimes(1);
126
+ }));
127
+ it('Should be possible to reset the layout width', () => __awaiter(void 0, void 0, void 0, function* () {
128
+ yield mockedFontController.resetLayoutWidth('1');
129
+ expect(mockedEditorApi.resetLayoutWidth).toHaveBeenCalledTimes(1);
130
+ }));
131
+ it('Should be possible to get the selected layout snapshot', () => __awaiter(void 0, void 0, void 0, function* () {
132
+ yield mockedFontController.getSelectedLayoutSnapshot();
133
+ expect(mockedEditorApi.getPageSnapshot).toHaveBeenCalledTimes(1);
134
+ }));
135
+ });
136
+ describe('User inputs for Layout Properties', () => {
137
+ it('Should calculate user Inputs and returns null when calculated value is null or same with selectedLayout property', () => __awaiter(void 0, void 0, void 0, function* () {
138
+ const responseHeight = yield mockedFontController.setLayoutHeight(mockId, 'fsadfafasf');
139
+ const responseWidth = yield mockedFontController.setLayoutWidth(mockId, '20/0');
140
+ expect(responseHeight).toEqual(null);
141
+ expect(responseWidth).toEqual(null);
142
+ }));
143
+ });
144
+ //# sourceMappingURL=LayoutController.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutController.test.js","sourceRoot":"","sources":["../../../../src/tests/controllers/LayoutController.test.ts"],"names":[],"mappings":"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"}