@griddo/ax 12.3.0 → 12.5.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 (294) hide show
  1. package/config/{jest/componentsMock.js → tests/componentsMock.cjs} +4 -1
  2. package/config/tests/reactEasyCropMock.js +15 -0
  3. package/config/tests/reactTimezoneMock.js +14 -0
  4. package/config/tests/setup.ts +41 -0
  5. package/config/webpack.config.js +5 -0
  6. package/package.json +15 -29
  7. package/public/img/icons/markdown.svg +6 -0
  8. package/src/__tests__/components/ActionMenu/ActionMenu.test.tsx +12 -12
  9. package/src/__tests__/components/Breadcrumb/Breadcrumb.test.tsx +2 -2
  10. package/src/__tests__/components/Browser/Browser.test.tsx +17 -25
  11. package/src/__tests__/components/BulkSelectionOptions/BulkSelectionOptions.test.tsx +3 -3
  12. package/src/__tests__/components/CategoryCell/CategoryCell.test.tsx +3 -2
  13. package/src/__tests__/components/ConfigPanel/ConfigPanel.test.tsx +4 -4
  14. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/ConnectedField.test.tsx +2 -2
  15. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/NavConnectedField/NavConnectedField.test.tsx +2 -2
  16. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/Field/Field.test.tsx +3 -3
  17. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/PageConnectedField.test.tsx +17 -14
  18. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/TemplateManager/TemplateManager.test.tsx +4 -4
  19. package/src/__tests__/components/ConfigPanel/Form/Form.test.tsx +49 -58
  20. package/src/__tests__/components/ConfigPanel/GlobalPageForm/GlobalPageForm.test.tsx +11 -11
  21. package/src/__tests__/components/ConfigPanel/Header/Header.test.tsx +51 -46
  22. package/src/__tests__/components/ConfigPanel/NavigationForm/Field/Field.test.tsx +2 -2
  23. package/src/__tests__/components/ConfigPanel/NavigationForm/NavigationForm.test.tsx +2 -2
  24. package/src/__tests__/components/ConfigPanel/PreviewForm/PreviewForm.test.tsx +4 -3
  25. package/src/__tests__/components/ContextMenu/ContextMenu.test.tsx +24 -24
  26. package/src/__tests__/components/DragAndDrop/DragAndDrop.test.tsx +6 -5
  27. package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +7 -18
  28. package/src/__tests__/components/EmptyState/EmptyState.test.tsx +11 -11
  29. package/src/__tests__/components/ErrorCenter/ErrorCenter.test.tsx +11 -11
  30. package/src/__tests__/components/FieldContainer/FieldContainer.test.tsx +4 -4
  31. package/src/__tests__/components/Fields/AnalyticsField/AnalyticsField.test.tsx +3 -3
  32. package/src/__tests__/components/Fields/AnalyticsField/PageAnalytics/PageAnalytics.test.tsx +4 -4
  33. package/src/__tests__/components/Fields/AnalyticsField/StructuredDataAnalytics/StructuredDataAnalytics.test.tsx +3 -3
  34. package/src/__tests__/components/Fields/ArrayFieldGroup/ArrayFieldGroup.test.tsx +6 -5
  35. package/src/__tests__/components/Fields/AsyncCheckGroup/AsyncCheckGroup.test.tsx +19 -18
  36. package/src/__tests__/components/Fields/AsyncSelect/AsyncSelect.test.tsx +64 -53
  37. package/src/__tests__/components/Fields/Button/Button.test.tsx +4 -3
  38. package/src/__tests__/components/Fields/CheckField/CheckField.test.tsx +5 -5
  39. package/src/__tests__/components/Fields/CheckGroup/CheckGroup.test.tsx +10 -10
  40. package/src/__tests__/components/Fields/ColorPicker/ColorPicker.test.tsx +67 -58
  41. package/src/__tests__/components/Fields/ComponentArray/ComponentArray.test.tsx +3 -3
  42. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/MixableComponentArray.test.tsx +45 -45
  43. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/PasteModuleButton/PasteModuleButton.test.tsx +7 -6
  44. package/src/__tests__/components/Fields/ComponentArray/SameComponentArray/SameComponentArray.test.tsx +7 -7
  45. package/src/__tests__/components/Fields/ComponentContainer/ComponentContainer.test.tsx +223 -426
  46. package/src/__tests__/components/Fields/ConditionalField/ConditionalField.test.tsx +1 -1
  47. package/src/__tests__/components/Fields/DateField/DateField.test.tsx +6 -5
  48. package/src/__tests__/components/Fields/FieldGroup/FieldGroup.test.tsx +2 -2
  49. package/src/__tests__/components/Fields/FileField/FileField.test.tsx +17 -18
  50. package/src/__tests__/components/Fields/HeadingField/HeadingField.test.tsx +2 -2
  51. package/src/__tests__/components/Fields/HiddenField/HiddenField.test.tsx +3 -3
  52. package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +280 -263
  53. package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +60 -57
  54. package/src/__tests__/components/Fields/MultiCheckSelect/MultiCheckSelect.test.tsx +1 -1
  55. package/src/__tests__/components/Fields/MultiCheckSelectGroup/MultiCheckSelectGroup.test.tsx +7 -6
  56. package/src/__tests__/components/Fields/NoteField/NoteField.test.tsx +10 -9
  57. package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +16 -20
  58. package/src/__tests__/components/Fields/RadioField/RadioField.test.tsx +2 -2
  59. package/src/__tests__/components/Fields/ReferenceField/ReferenceField.test.tsx +17 -16
  60. package/src/__tests__/components/Fields/RichText/RichText.test.tsx +1 -1
  61. package/src/__tests__/components/Fields/Select/Select.test.tsx +1 -1
  62. package/src/__tests__/components/Fields/SliderField/SliderField.test.tsx +5 -4
  63. package/src/__tests__/components/Fields/SummaryButton/SummaryButton.test.tsx +2 -2
  64. package/src/__tests__/components/Fields/TagField/TagField.test.tsx +9 -9
  65. package/src/__tests__/components/Fields/TextArea/TextArea.test.tsx +17 -9
  66. package/src/__tests__/components/Fields/TextField/TextField.test.tsx +8 -8
  67. package/src/__tests__/components/Fields/TimeField/HourInput/HourInput.test.tsx +7 -6
  68. package/src/__tests__/components/Fields/TimeField/TimeField.test.tsx +4 -3
  69. package/src/__tests__/components/Fields/ToggleField/ToggleField.test.tsx +16 -24
  70. package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +12 -6
  71. package/src/__tests__/components/Fields/TranslateButton/TranslateButton.test.tsx +13 -13
  72. package/src/__tests__/components/Fields/UniqueCheck/UniqueCheck.test.tsx +1 -1
  73. package/src/__tests__/components/Fields/UrlField/UrlField.test.tsx +20 -19
  74. package/src/__tests__/components/Fields/VisualUniqueSelection/ImageSelection/ImageSelection.test.tsx +3 -2
  75. package/src/__tests__/components/Fields/VisualUniqueSelection/ScrollableSelection/ScrollableSelection.test.tsx +4 -3
  76. package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx +30 -22
  77. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.atoms.test.tsx +11 -11
  78. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.config.test.tsx +103 -0
  79. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.helpers.test.tsx +13 -14
  80. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.test.tsx +28 -28
  81. package/src/__tests__/components/FieldsBehavior/FieldsBehavior.test.tsx +22 -16
  82. package/src/__tests__/components/FloatingMenu/FloatingMenu.test.tsx +36 -35
  83. package/src/__tests__/components/FloatingPanel/FloatingPanel.test.tsx +10 -10
  84. package/src/__tests__/components/GuardModal/GuardModal.test.tsx +1 -1
  85. package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorItem/ErrorItem.test.tsx +11 -11
  86. package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorsBanner.test.tsx +4 -4
  87. package/src/__tests__/components/HeadingsPreviewModal/HeadingsPreviewModal.test.tsx +15 -14
  88. package/src/__tests__/components/IconAction/IconAction.test.tsx +2 -2
  89. package/src/__tests__/components/ImageDragAndDrop/CropStep/CropStep.test.tsx +3 -3
  90. package/src/__tests__/components/ImageDragAndDrop/ImageDragAndDrop.test.tsx +7 -7
  91. package/src/__tests__/components/KeywordsPreviewModal/KeywordItem/KeywordItem.test.tsx +5 -5
  92. package/src/__tests__/components/KeywordsPreviewModal/KeywordsPreviewModal.test.tsx +14 -13
  93. package/src/__tests__/components/KeywordsPreviewModal/atoms.test.tsx +13 -13
  94. package/src/__tests__/components/LanguageMenu/LanguageMenu.test.tsx +6 -6
  95. package/src/__tests__/components/Lists/Lists.test.tsx +1 -1
  96. package/src/__tests__/components/Loader/Loader.test.tsx +1 -1
  97. package/src/__tests__/components/Login/Login.test.tsx +32 -32
  98. package/src/__tests__/components/Login/RecoveryModal/RecoveryModal.test.tsx +10 -9
  99. package/src/__tests__/components/MainWrapper/AppBar/AppBar.test.tsx +21 -21
  100. package/src/__tests__/components/MenuItem/MenuItem.test.tsx +5 -5
  101. package/src/__tests__/components/Modal/Modal.test.tsx +20 -20
  102. package/src/__tests__/components/Nav/Nav.test.tsx +2 -2
  103. package/src/__tests__/components/Notification/Notification.test.tsx +2 -2
  104. package/src/__tests__/components/Pagination/Pagination.test.tsx +13 -14
  105. package/src/__tests__/components/ProfileImage/ProfileImage.test.tsx +6 -7
  106. package/src/__tests__/components/ReorderArrows/ReorderArrows.test.tsx +4 -3
  107. package/src/__tests__/components/ResizePanel/ResizePanel.test.tsx +18 -17
  108. package/src/__tests__/components/RestrictionsModal/CurrentAccessList/CurrentAccessList.test.tsx +7 -6
  109. package/src/__tests__/components/RestrictionsModal/OptionsStep/OptionsStep.test.tsx +12 -11
  110. package/src/__tests__/components/RestrictionsModal/RestrictionsModal.test.tsx +11 -10
  111. package/src/__tests__/components/RestrictionsModal/RolesList/RolesList.test.tsx +8 -8
  112. package/src/__tests__/components/RestrictionsModal/UsersList/UsersList.test.tsx +16 -15
  113. package/src/__tests__/components/SearchField/SearchField.test.tsx +13 -13
  114. package/src/__tests__/components/SideModal/SideModal.test.tsx +175 -127
  115. package/src/__tests__/components/SubNav/SubNav.test.tsx +1 -1
  116. package/src/__tests__/components/TableFilters/CategoryFilter/CategoryFilter.test.tsx +9 -8
  117. package/src/__tests__/components/TableFilters/CustomizeFilters/CustomizeFilters.test.tsx +5 -5
  118. package/src/__tests__/components/TableFilters/DateFilter/DateFilter.test.tsx +8 -8
  119. package/src/__tests__/components/TableFilters/LiveFilter/LiveFilter.test.tsx +26 -39
  120. package/src/__tests__/components/TableFilters/NameFilter/NameFilter.test.tsx +10 -10
  121. package/src/__tests__/components/TableFilters/RoleFilter/RoleFilter.test.tsx +5 -5
  122. package/src/__tests__/components/TableFilters/SiteFilter/SiteFilter.test.tsx +10 -9
  123. package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +70 -45
  124. package/src/__tests__/components/TableFilters/TranslationsFilter/TranslationsFilter.test.tsx +8 -8
  125. package/src/__tests__/components/TableFilters/TypeFilter/TypeFilter.test.tsx +5 -5
  126. package/src/__tests__/components/TableFilters/UsersFilter/UsersFilter.test.tsx +8 -8
  127. package/src/__tests__/components/TableList/TableList.test.tsx +4 -4
  128. package/src/__tests__/components/Tabs/Tabs.test.tsx +73 -70
  129. package/src/__tests__/components/Tag/Tag.test.tsx +3 -3
  130. package/src/__tests__/components/Toast/Toast.test.tsx +24 -26
  131. package/src/__tests__/hooks/modals.test.tsx +4 -4
  132. package/src/__tests__/hooks/users.test.tsx +6 -5
  133. package/src/__tests__/modules/FileDrive/MarkdownFormat.test.tsx +58 -0
  134. package/src/__tests__/modules/FramePreview/FramePreview.test.tsx +56 -39
  135. package/src/__tests__/modules/FramePreview/HeadingsOverlay/HeadingsOverlay.test.tsx +11 -11
  136. package/src/__tests__/modules/Settings/Integrations/Integrations.test.tsx +2 -2
  137. package/src/__tests__/modules/Settings/Social/Social.test.tsx +4 -3
  138. package/src/__tests__/modules/Sites/Sites.test.tsx +5 -4
  139. package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +26 -21
  140. package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +19 -9
  141. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/DataStep/DataStep.test.tsx +6 -6
  142. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/FinalStep/FinalStep.test.tsx +4 -4
  143. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/CropView/CropView.test.tsx +3 -3
  144. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/ImageStep.test.tsx +9 -5
  145. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/UploadView/UploadView.test.tsx +8 -6
  146. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/TimezoneStep/TimezoneStep.test.tsx +7 -7
  147. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeModal.test.tsx +1 -1
  148. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeStep/WelcomeStep.test.tsx +3 -3
  149. package/src/__tests__/modules/Users/Roles/BulkHeader/BulkHeader.test.tsx +72 -67
  150. package/src/__tests__/modules/Users/Roles/Roles.test.tsx +14 -10
  151. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/RoleItem.test.tsx +3 -3
  152. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RolesModal.test.tsx +3 -3
  153. package/src/__tests__/modules/Users/UserCreate/SiteItem/SiteItem.test.tsx +3 -3
  154. package/src/__tests__/modules/Users/UserCreate/UserCreate.test.tsx +6 -5
  155. package/src/__tests__/modules/Users/UserList/UserItem/UserItem.test.tsx +9 -9
  156. package/src/__tests__/modules/Users/UserList/UserList.test.tsx +4 -4
  157. package/src/components/Fields/Wysiwyg/config.tsx +68 -17
  158. package/src/components/Fields/Wysiwyg/helpers.tsx +2 -0
  159. package/src/components/Fields/Wysiwyg/index.tsx +41 -10
  160. package/src/components/Flag/components/index.ts +30 -0
  161. package/src/components/Flag/index.tsx +3 -5
  162. package/src/components/Icon/components/index.ts +229 -0
  163. package/src/components/Icon/index.tsx +3 -7
  164. package/src/components/ResizePanel/index.tsx +7 -2
  165. package/src/constants/index.ts +1 -1
  166. package/src/helpers/files.tsx +2 -0
  167. package/src/modules/FileDrive/FileFilters/Type/index.tsx +1 -0
  168. package/tsconfig.json +1 -1
  169. package/config/jest/cssTransform.js +0 -14
  170. package/config/jest/fileMock.js +0 -1
  171. package/config/jest/fileTransform.js +0 -40
  172. package/config/jest/reactEasyCropMock.js +0 -15
  173. package/config/jest/reactTimezoneMock.js +0 -13
  174. package/config/jest/setup.js +0 -31
  175. package/config/jest/styleMock.js +0 -1
  176. /package/config/{jest/test-utils.js → tests/test-utils.jsx} +0 -0
  177. /package/src/components/Flag/components/{Ca_ES.js → Ca_ES.jsx} +0 -0
  178. /package/src/components/Flag/components/{De_DE.js → De_DE.jsx} +0 -0
  179. /package/src/components/Flag/components/{En_GB.js → En_GB.jsx} +0 -0
  180. /package/src/components/Flag/components/{Es_ES.js → Es_ES.jsx} +0 -0
  181. /package/src/components/Flag/components/{Eu_ES.js → Eu_ES.jsx} +0 -0
  182. /package/src/components/Flag/components/{Fr_FR.js → Fr_FR.jsx} +0 -0
  183. /package/src/components/Flag/components/{It_IT.js → It_IT.jsx} +0 -0
  184. /package/src/components/Flag/components/{Pt_PT.js → Pt_PT.jsx} +0 -0
  185. /package/src/components/Icon/components/{Active.js → Active.jsx} +0 -0
  186. /package/src/components/Icon/components/{Add.js → Add.jsx} +0 -0
  187. /package/src/components/Icon/components/{AddCircle.js → AddCircle.jsx} +0 -0
  188. /package/src/components/Icon/components/{Alert.js → Alert.jsx} +0 -0
  189. /package/src/components/Icon/components/{AlignLeft.js → AlignLeft.jsx} +0 -0
  190. /package/src/components/Icon/components/{Back.js → Back.jsx} +0 -0
  191. /package/src/components/Icon/components/{BulletList.js → BulletList.jsx} +0 -0
  192. /package/src/components/Icon/components/{Button.js → Button.jsx} +0 -0
  193. /package/src/components/Icon/components/{Calendar.js → Calendar.jsx} +0 -0
  194. /package/src/components/Icon/components/{CancelEvent.js → CancelEvent.jsx} +0 -0
  195. /package/src/components/Icon/components/{Category.js → Category.jsx} +0 -0
  196. /package/src/components/Icon/components/{Change.js → Change.jsx} +0 -0
  197. /package/src/components/Icon/components/{Close.js → Close.jsx} +0 -0
  198. /package/src/components/Icon/components/{ClosePanel.js → ClosePanel.jsx} +0 -0
  199. /package/src/components/Icon/components/{CodeBody.js → CodeBody.jsx} +0 -0
  200. /package/src/components/Icon/components/{CodeHead.js → CodeHead.jsx} +0 -0
  201. /package/src/components/Icon/components/{CodeHeadBody.js → CodeHeadBody.jsx} +0 -0
  202. /package/src/components/Icon/components/{Collapsed.js → Collapsed.jsx} +0 -0
  203. /package/src/components/Icon/components/{ColorPicker.js → ColorPicker.jsx} +0 -0
  204. /package/src/components/Icon/components/{Compose.js → Compose.jsx} +0 -0
  205. /package/src/components/Icon/components/{Copy.js → Copy.jsx} +0 -0
  206. /package/src/components/Icon/components/{Copy2.js → Copy2.jsx} +0 -0
  207. /package/src/components/Icon/components/{Data.js → Data.jsx} +0 -0
  208. /package/src/components/Icon/components/{DataAdd.js → DataAdd.jsx} +0 -0
  209. /package/src/components/Icon/components/{Deactivate.js → Deactivate.jsx} +0 -0
  210. /package/src/components/Icon/components/{Delete.js → Delete.jsx} +0 -0
  211. /package/src/components/Icon/components/{Desktop.js → Desktop.jsx} +0 -0
  212. /package/src/components/Icon/components/{Disabled.js → Disabled.jsx} +0 -0
  213. /package/src/components/Icon/components/{Done.js → Done.jsx} +0 -0
  214. /package/src/components/Icon/components/{DownArrow.js → DownArrow.jsx} +0 -0
  215. /package/src/components/Icon/components/{Download.js → Download.jsx} +0 -0
  216. /package/src/components/Icon/components/{Drag.js → Drag.jsx} +0 -0
  217. /package/src/components/Icon/components/{Duplicate.js → Duplicate.jsx} +0 -0
  218. /package/src/components/Icon/components/{Edit.js → Edit.jsx} +0 -0
  219. /package/src/components/Icon/components/{Empty.js → Empty.jsx} +0 -0
  220. /package/src/components/Icon/components/{EmptyCheck.js → EmptyCheck.jsx} +0 -0
  221. /package/src/components/Icon/components/{Extend.js → Extend.jsx} +0 -0
  222. /package/src/components/Icon/components/{File.js → File.jsx} +0 -0
  223. /package/src/components/Icon/components/{Filter.js → Filter.jsx} +0 -0
  224. /package/src/components/Icon/components/{Form.js → Form.jsx} +0 -0
  225. /package/src/components/Icon/components/{FullArrowDown.js → FullArrowDown.jsx} +0 -0
  226. /package/src/components/Icon/components/{FullArrowLeft.js → FullArrowLeft.jsx} +0 -0
  227. /package/src/components/Icon/components/{FullArrowRight.js → FullArrowRight.jsx} +0 -0
  228. /package/src/components/Icon/components/{FullArrowUp.js → FullArrowUp.jsx} +0 -0
  229. /package/src/components/Icon/components/{Grid.js → Grid.jsx} +0 -0
  230. /package/src/components/Icon/components/{Grid2.js → Grid2.jsx} +0 -0
  231. /package/src/components/Icon/components/{GriddoLogo.js → GriddoLogo.jsx} +0 -0
  232. /package/src/components/Icon/components/{HeroCard.js → HeroCard.jsx} +0 -0
  233. /package/src/components/Icon/components/{Hide.js → Hide.jsx} +0 -0
  234. /package/src/components/Icon/components/{History.js → History.jsx} +0 -0
  235. /package/src/components/Icon/components/{Home.js → Home.jsx} +0 -0
  236. /package/src/components/Icon/components/{Ia.js → Ia.jsx} +0 -0
  237. /package/src/components/Icon/components/{Image.js → Image.jsx} +0 -0
  238. /package/src/components/Icon/components/{Info.js → Info.jsx} +0 -0
  239. /package/src/components/Icon/components/{Laptop.js → Laptop.jsx} +0 -0
  240. /package/src/components/Icon/components/{LeftArrow.js → LeftArrow.jsx} +0 -0
  241. /package/src/components/Icon/components/{Link.js → Link.jsx} +0 -0
  242. /package/src/components/Icon/components/{Lock.js → Lock.jsx} +0 -0
  243. /package/src/components/Icon/components/{Log.js → Log.jsx} +0 -0
  244. /package/src/components/Icon/components/{Map.js → Map.jsx} +0 -0
  245. /package/src/components/Icon/components/{Menu.js → Menu.jsx} +0 -0
  246. /package/src/components/Icon/components/{Microsoft.js → Microsoft.jsx} +0 -0
  247. /package/src/components/Icon/components/{Modified.js → Modified.jsx} +0 -0
  248. /package/src/components/Icon/components/{Modules.js → Modules.jsx} +0 -0
  249. /package/src/components/Icon/components/{More.js → More.jsx} +0 -0
  250. /package/src/components/Icon/components/{NewFolder.js → NewFolder.jsx} +0 -0
  251. /package/src/components/Icon/components/{Offline.js → Offline.jsx} +0 -0
  252. /package/src/components/Icon/components/{OfflinePending.js → OfflinePending.jsx} +0 -0
  253. /package/src/components/Icon/components/{OpenOutside.js → OpenOutside.jsx} +0 -0
  254. /package/src/components/Icon/components/{OpenPanel.js → OpenPanel.jsx} +0 -0
  255. /package/src/components/Icon/components/{OutOfSection.js → OutOfSection.jsx} +0 -0
  256. /package/src/components/Icon/components/{Page.js → Page.jsx} +0 -0
  257. /package/src/components/Icon/components/{Party.js → Party.jsx} +0 -0
  258. /package/src/components/Icon/components/{Paste.js → Paste.jsx} +0 -0
  259. /package/src/components/Icon/components/{Phone.js → Phone.jsx} +0 -0
  260. /package/src/components/Icon/components/{PhotoLibrary.js → PhotoLibrary.jsx} +0 -0
  261. /package/src/components/Icon/components/{Power.js → Power.jsx} +0 -0
  262. /package/src/components/Icon/components/{Preview.js → Preview.jsx} +0 -0
  263. /package/src/components/Icon/components/{Project.js → Project.jsx} +0 -0
  264. /package/src/components/Icon/components/{QrCode.js → QrCode.jsx} +0 -0
  265. /package/src/components/Icon/components/{Question.js → Question.jsx} +0 -0
  266. /package/src/components/Icon/components/{Refresh.js → Refresh.jsx} +0 -0
  267. /package/src/components/Icon/components/{Republish.js → Republish.jsx} +0 -0
  268. /package/src/components/Icon/components/{RightArrow.js → RightArrow.jsx} +0 -0
  269. /package/src/components/Icon/components/{Scheduled.js → Scheduled.jsx} +0 -0
  270. /package/src/components/Icon/components/{Search.js → Search.jsx} +0 -0
  271. /package/src/components/Icon/components/{SendEmail.js → SendEmail.jsx} +0 -0
  272. /package/src/components/Icon/components/{Settings.js → Settings.jsx} +0 -0
  273. /package/src/components/Icon/components/{Share.js → Share.jsx} +0 -0
  274. /package/src/components/Icon/components/{Subsection.js → Subsection.jsx} +0 -0
  275. /package/src/components/Icon/components/{Success.js → Success.jsx} +0 -0
  276. /package/src/components/Icon/components/{SuccessSolid.js → SuccessSolid.jsx} +0 -0
  277. /package/src/components/Icon/components/{Sync.js → Sync.jsx} +0 -0
  278. /package/src/components/Icon/components/{Tablet.js → Tablet.jsx} +0 -0
  279. /package/src/components/Icon/components/{Translate.js → Translate.jsx} +0 -0
  280. /package/src/components/Icon/components/{Unlink.js → Unlink.jsx} +0 -0
  281. /package/src/components/Icon/components/{UpArrow.js → UpArrow.jsx} +0 -0
  282. /package/src/components/Icon/components/{UploadFile.js → UploadFile.jsx} +0 -0
  283. /package/src/components/Icon/components/{UploadPending.js → UploadPending.jsx} +0 -0
  284. /package/src/components/Icon/components/{UrlLink.js → UrlLink.jsx} +0 -0
  285. /package/src/components/Icon/components/{User.js → User.jsx} +0 -0
  286. /package/src/components/Icon/components/{Users.js → Users.jsx} +0 -0
  287. /package/src/components/Icon/components/{Video.js → Video.jsx} +0 -0
  288. /package/src/components/Icon/components/{View.js → View.jsx} +0 -0
  289. /package/src/components/Icon/components/{Warning.js → Warning.jsx} +0 -0
  290. /package/src/components/Icon/components/{Web.js → Web.jsx} +0 -0
  291. /package/src/components/Icon/components/{Working.js → Working.jsx} +0 -0
  292. /package/src/components/Loader/components/{Circle.js → Circle.jsx} +0 -0
  293. /package/src/components/Loader/components/{Dots.js → Dots.jsx} +0 -0
  294. /package/src/components/Loader/components/{SmallCircle.js → SmallCircle.jsx} +0 -0
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { render, cleanup, screen, fireEvent } from "../../../../../config/jest/test-utils";
5
- import { mock } from "jest-mock-extended";
4
+ import { render, cleanup, screen, fireEvent } from "../../../../../config/tests/test-utils";
5
+ import { mock } from "vitest-mock-extended";
6
6
  import configureStore from "redux-mock-store";
7
7
  import "@testing-library/jest-dom";
8
8
 
@@ -112,49 +112,49 @@ const initialStore = {
112
112
  };
113
113
  const store = mockStore(initialStore);
114
114
 
115
- const defaultProps = mock<IFormProps>();
116
-
117
- defaultProps.schema = {
118
- title: "Header",
119
- component: "Header",
120
- type: "header",
121
- configTabs: [
115
+ // Props por test. Los tres `const ...Mock = defaultProps.x as MockedFunction<>`
116
+ // que había aquí no se usaban en ningún assert: solo servían, sin querer, para
117
+ // materializar esas props en el proxy de `mock<T>()` y que el spread de JSX las
118
+ // llevara al componente. Ahora van declaradas en la factoría.
119
+ const makeProps = (overrides: Partial<IFormProps> = {}): IFormProps =>
120
+ Object.assign(
121
+ mock<IFormProps>(),
122
122
  {
123
- title: "content",
124
- fields: [
125
- {
126
- title: "Name",
127
- key: "title",
128
- type: "TextField",
129
- mandatory: true,
130
- },
131
- ],
123
+ schema: {
124
+ title: "Header",
125
+ component: "Header",
126
+ type: "header",
127
+ configTabs: [
128
+ {
129
+ title: "content",
130
+ fields: [
131
+ {
132
+ title: "Name",
133
+ key: "title",
134
+ type: "TextField",
135
+ mandatory: true,
136
+ },
137
+ ],
138
+ },
139
+ ],
140
+ schemaType: "module",
141
+ },
142
+ selectedTab: "content",
143
+ isPage: false,
144
+ isGlobal: false,
145
+ theme: "default-theme",
146
+ setSelectedContent: vi.fn(),
147
+ setSelectedTab: vi.fn(),
148
+ setHistoryPush: vi.fn(),
132
149
  },
133
- ],
134
- schemaType: "module",
135
- };
136
- const restorePageNavigationActionMock = jest.fn();
137
- defaultProps.actions = {
138
- restorePageNavigationAction: restorePageNavigationActionMock,
139
- };
140
- const setSelectedContentMock = defaultProps.setSelectedContent as jest.MockedFunction<(editorID: number) => void>;
141
- const setSelectedTabMocked = defaultProps.setSelectedTab as jest.MockedFunction<(tab: string) => void>;
142
- const setHistoryPushMocked = defaultProps.setHistoryPush as jest.MockedFunction<
143
- (path: string, isEditor: boolean) => void
144
- >;
145
- defaultProps.selectedTab = "content";
146
- defaultProps.isPage = false;
147
- defaultProps.isGlobal = false;
148
- defaultProps.theme = "default-theme";
150
+ overrides,
151
+ );
149
152
 
150
153
  describe("Form component rendering", () => {
151
154
  it("should render the component", () => {
152
- defaultProps.isPage = true;
153
- defaultProps.isGlobal = true;
154
-
155
155
  render(
156
156
  <ThemeProvider theme={parseTheme(globalTheme)}>
157
- <Form {...defaultProps} />
157
+ <Form {...makeProps({ isPage: true, isGlobal: true })} />
158
158
  </ThemeProvider>,
159
159
  { store },
160
160
  );
@@ -162,13 +162,9 @@ describe("Form component rendering", () => {
162
162
  });
163
163
 
164
164
  it("should render the component with no header warning text", () => {
165
- defaultProps.isPage = false;
166
- defaultProps.isGlobal = false;
167
- defaultProps.header = 0;
168
-
169
165
  render(
170
166
  <ThemeProvider theme={parseTheme(globalTheme)}>
171
- <Form {...defaultProps} />
167
+ <Form {...makeProps({ header: 0 })} />
172
168
  </ThemeProvider>,
173
169
  { store },
174
170
  );
@@ -177,11 +173,11 @@ describe("Form component rendering", () => {
177
173
  });
178
174
 
179
175
  it("should call the function to restore the header", () => {
180
- defaultProps.header = 0;
176
+ const restorePageNavigationAction = vi.fn();
181
177
 
182
178
  render(
183
179
  <ThemeProvider theme={parseTheme(globalTheme)}>
184
- <Form {...defaultProps} />
180
+ <Form {...makeProps({ header: 0, actions: { restorePageNavigationAction } })} />
185
181
  </ThemeProvider>,
186
182
  { store },
187
183
  );
@@ -189,16 +185,14 @@ describe("Form component rendering", () => {
189
185
  expect(screen.getByText(/This page doesn\'t have a header. Click/i)).toBeInTheDocument();
190
186
  const headerLink = screen.getByTestId("header-link");
191
187
  fireEvent.click(headerLink);
192
- expect(restorePageNavigationActionMock).toBeCalled();
193
- expect(restorePageNavigationActionMock).toBeCalledWith("header");
188
+ expect(restorePageNavigationAction).toBeCalled();
189
+ expect(restorePageNavigationAction).toBeCalledWith("header");
194
190
  });
195
191
 
196
192
  it("should render the component with no footer warning text", () => {
197
- defaultProps.footer = 0;
198
-
199
193
  render(
200
194
  <ThemeProvider theme={parseTheme(globalTheme)}>
201
- <Form {...defaultProps} />
195
+ <Form {...makeProps({ header: 0, footer: 0 })} />
202
196
  </ThemeProvider>,
203
197
  { store },
204
198
  );
@@ -207,11 +201,11 @@ describe("Form component rendering", () => {
207
201
  });
208
202
 
209
203
  it("should call the function to restore the header", () => {
210
- defaultProps.header = 0;
204
+ const restorePageNavigationAction = vi.fn();
211
205
 
212
206
  render(
213
207
  <ThemeProvider theme={parseTheme(globalTheme)}>
214
- <Form {...defaultProps} />
208
+ <Form {...makeProps({ header: 0, footer: 0, actions: { restorePageNavigationAction } })} />
215
209
  </ThemeProvider>,
216
210
  { store },
217
211
  );
@@ -219,17 +213,14 @@ describe("Form component rendering", () => {
219
213
  expect(screen.getByText(/This page doesn\'t have a header. Click/i)).toBeInTheDocument();
220
214
  const footerLink = screen.getByTestId("footer-link");
221
215
  fireEvent.click(footerLink);
222
- expect(restorePageNavigationActionMock).toBeCalled();
223
- expect(restorePageNavigationActionMock).toBeCalledWith("footer");
216
+ expect(restorePageNavigationAction).toBeCalled();
217
+ expect(restorePageNavigationAction).toBeCalledWith("footer");
224
218
  });
225
219
 
226
220
  it("should render the tabs", () => {
227
- defaultProps.isPage = true;
228
- defaultProps.isGlobal = true;
229
-
230
221
  render(
231
222
  <ThemeProvider theme={parseTheme(globalTheme)}>
232
- <Form {...defaultProps} />
223
+ <Form {...makeProps({ isPage: true, isGlobal: true, header: 0, footer: 0 })} />
233
224
  </ThemeProvider>,
234
225
  { store },
235
226
  );
@@ -1,8 +1,8 @@
1
- import { mock } from "jest-mock-extended";
1
+ import { mock } from "vitest-mock-extended";
2
2
  import configureStore from "redux-mock-store";
3
3
  import { ThemeProvider } from "styled-components";
4
4
 
5
- import { cleanup, fireEvent, render, screen, waitFor } from "../../../../../config/jest/test-utils";
5
+ import { cleanup, fireEvent, render, screen, waitFor } from "../../../../../config/tests/test-utils";
6
6
  import "@testing-library/jest-dom";
7
7
 
8
8
  import GlobalPageForm, { type IGlobalPageFormProps } from "@ax/components/ConfigPanel/GlobalPageForm";
@@ -11,9 +11,9 @@ import globalTheme from "@ax/themes/theme.json";
11
11
 
12
12
  import thunk from "redux-thunk";
13
13
 
14
- jest.mock("@ax/hooks", () => ({
15
- ...jest.requireActual("@ax/hooks"),
16
- useGlobalPermission: jest.fn(() => true),
14
+ vi.mock("@ax/hooks", async () => ({
15
+ ...(await vi.importActual("@ax/hooks")),
16
+ useGlobalPermission: vi.fn(() => true),
17
17
  }));
18
18
 
19
19
  beforeEach(() => {
@@ -22,7 +22,7 @@ beforeEach(() => {
22
22
 
23
23
  const middlewares: any = [thunk];
24
24
  const mockStore = configureStore(middlewares);
25
- const updateEditorContentMock = jest.fn();
25
+ const updateEditorContentMock = vi.fn();
26
26
  const initialStore = {
27
27
  pageEditor: {
28
28
  selectedContent: {
@@ -105,7 +105,7 @@ const initialStore = {
105
105
  const store = mockStore(initialStore);
106
106
 
107
107
  const defaultProps = mock<IGlobalPageFormProps>();
108
- const setNotificationActionMock = jest.fn();
108
+ const setNotificationActionMock = vi.fn();
109
109
  defaultProps.actions.setNotificationAction = setNotificationActionMock;
110
110
 
111
111
  describe("GlobalPageForm component rendering", () => {
@@ -173,8 +173,8 @@ describe("GlobalPageForm component rendering", () => {
173
173
  describe("GlobalPageForm component rendering", () => {
174
174
  it("should trigger handleClick", async () => {
175
175
  defaultProps.selectedTab = "content";
176
- const getGlobalFromLocalPageActionMock = jest.fn(() => Promise.resolve());
177
- const saveCurrentSiteInfoActionMock = jest.fn();
176
+ const getGlobalFromLocalPageActionMock = vi.fn(() => Promise.resolve());
177
+ const saveCurrentSiteInfoActionMock = vi.fn();
178
178
  defaultProps.actions.saveCurrentSiteInfoAction = saveCurrentSiteInfoActionMock;
179
179
  defaultProps.actions.getGlobalFromLocalPageAction = getGlobalFromLocalPageActionMock;
180
180
 
@@ -199,7 +199,7 @@ describe("GlobalPageForm component rendering", () => {
199
199
  it("should trigger handleRestoreHeader", () => {
200
200
  defaultProps.selectedTab = "content";
201
201
  defaultProps.header = 0;
202
- const restorePageNavigationActionMock = jest.fn();
202
+ const restorePageNavigationActionMock = vi.fn();
203
203
  defaultProps.actions.restorePageNavigationAction = restorePageNavigationActionMock;
204
204
 
205
205
  render(
@@ -219,7 +219,7 @@ describe("GlobalPageForm component rendering", () => {
219
219
  it("should trigger handleRestoreFooter", () => {
220
220
  defaultProps.selectedTab = "content";
221
221
  defaultProps.footer = 0;
222
- const restorePageNavigationActionMock = jest.fn();
222
+ const restorePageNavigationActionMock = vi.fn();
223
223
  defaultProps.actions.restorePageNavigationAction = restorePageNavigationActionMock;
224
224
 
225
225
  render(
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { render, cleanup, screen, fireEvent } from "../../../../../config/jest/test-utils";
5
- import { mock } from "jest-mock-extended";
4
+ import { render, cleanup, screen, fireEvent } from "../../../../../config/tests/test-utils";
5
+ import { mock } from "vitest-mock-extended";
6
6
  import configureStore from "redux-mock-store";
7
7
  import "@testing-library/jest-dom";
8
8
 
@@ -10,19 +10,19 @@ import { parseTheme } from "@ax/helpers";
10
10
  import Header, { IHeaderProps } from "@ax/components/ConfigPanel/Header";
11
11
  import globalTheme from "@ax/themes/theme.json";
12
12
 
13
- window.scrollTo = jest.fn();
13
+ window.scrollTo = vi.fn();
14
14
 
15
15
  beforeEach(() => {
16
16
  cleanup();
17
17
  });
18
18
 
19
19
  afterAll(() => {
20
- jest.clearAllMocks();
20
+ vi.clearAllMocks();
21
21
  });
22
22
 
23
23
  const middlewares: any = [];
24
24
  const mockStore = configureStore(middlewares);
25
- const updateEditorContentMock = jest.fn();
25
+ const updateEditorContentMock = vi.fn();
26
26
  const initialStore = {
27
27
  pageEditor: {
28
28
  selectedContent: {
@@ -72,52 +72,57 @@ const initialStore = {
72
72
 
73
73
  const store = mockStore(initialStore);
74
74
 
75
- const defaultProps = mock<IHeaderProps>();
76
- defaultProps.actions = {
77
- duplicateModuleAction: jest.fn(),
78
- deleteModuleAction: jest.fn(),
79
- copyModuleAction: jest.fn(),
80
- };
81
- const setSelectedContentMock = defaultProps.setSelectedContent as jest.MockedFunction<(editorID: number) => void>;
82
-
83
- defaultProps.schema = {
84
- title: "Header",
85
- component: "Header",
86
- type: "header",
87
- configTabs: [
75
+ const makeProps = (overrides: Partial<IHeaderProps> = {}): IHeaderProps =>
76
+ Object.assign(
77
+ mock<IHeaderProps>(),
88
78
  {
89
- title: "content",
90
- fields: [
79
+ actions: {
80
+ duplicateModuleAction: vi.fn(),
81
+ deleteModuleAction: vi.fn(),
82
+ copyModuleAction: vi.fn(),
83
+ },
84
+ schema: {
85
+ title: "Header",
86
+ component: "Header",
87
+ type: "header",
88
+ configTabs: [
89
+ {
90
+ title: "content",
91
+ fields: [
92
+ {
93
+ title: "Name",
94
+ key: "title",
95
+ type: "TextField",
96
+ mandatory: true,
97
+ },
98
+ ],
99
+ },
100
+ ],
101
+ schemaType: "module",
102
+ },
103
+ breadcrumb: [
91
104
  {
92
- title: "Name",
93
- key: "title",
94
- type: "TextField",
95
- mandatory: true,
105
+ editorID: 0,
106
+ component: "TextField",
107
+ displayName: "Texto",
96
108
  },
97
109
  ],
110
+ activatedModules: ["TextField"],
111
+ headerRef: { current: { offsetHeight: 63, offsetTop: 24 } } as React.RefObject<HTMLDivElement>,
112
+ // El proxy de `mock<T>()` solo materializa una prop cuando se accede a
113
+ // ella, y el spread de JSX únicamente copia las propias: los callbacks
114
+ // que el componente invoca tienen que estar puestos aquí.
115
+ setSelectedContent: vi.fn(),
116
+ setHeaderHeight: vi.fn(),
98
117
  },
99
- ],
100
- schemaType: "module",
101
- };
102
-
103
- defaultProps.breadcrumb = [
104
- {
105
- editorID: 0,
106
- component: "TextField",
107
- displayName: "Texto",
108
- },
109
- ];
110
-
111
- defaultProps.activatedModules = ["TextField"];
112
-
113
- defaultProps.headerRef = { current: { offsetHeight: 63, offsetTop: 24 } } as React.RefObject<HTMLDivElement>;
114
- const setHeaderHeightMock = defaultProps.setHeaderHeight as jest.MockedFunction<(height: number) => void>;
118
+ overrides,
119
+ );
115
120
 
116
121
  describe("Header component rendering", () => {
117
122
  it("should render component", () => {
118
123
  render(
119
124
  <ThemeProvider theme={parseTheme(globalTheme)}>
120
- <Header {...defaultProps} />
125
+ <Header {...makeProps()} />
121
126
  </ThemeProvider>,
122
127
  { store },
123
128
  );
@@ -128,11 +133,9 @@ describe("Header component rendering", () => {
128
133
  });
129
134
 
130
135
  it("should render the actions menu when clicking the more info button", () => {
131
- defaultProps.selectedParent = [];
132
-
133
136
  render(
134
137
  <ThemeProvider theme={parseTheme(globalTheme)}>
135
- <Header {...defaultProps} />
138
+ <Header {...makeProps({ selectedParent: [] })} />
136
139
  </ThemeProvider>,
137
140
  { store },
138
141
  );
@@ -144,9 +147,11 @@ describe("Header component rendering", () => {
144
147
  });
145
148
 
146
149
  it("should trigger the duplicate action", () => {
150
+ const setSelectedContent = vi.fn();
151
+
147
152
  render(
148
153
  <ThemeProvider theme={parseTheme(globalTheme)}>
149
- <Header {...defaultProps} />
154
+ <Header {...makeProps({ selectedParent: [], setSelectedContent })} />
150
155
  </ThemeProvider>,
151
156
  { store },
152
157
  );
@@ -156,6 +161,6 @@ describe("Header component rendering", () => {
156
161
  const listItem = screen.getAllByTestId("action-menu-item");
157
162
  expect(listItem).toHaveLength(3);
158
163
  fireEvent.click(listItem[0]);
159
- expect(setSelectedContentMock).toBeCalled();
164
+ expect(setSelectedContent).toBeCalled();
160
165
  });
161
166
  });
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { render, cleanup, screen, fireEvent } from "../../../../../../config/jest/test-utils";
5
- import { mock } from "jest-mock-extended";
4
+ import { render, cleanup, screen, fireEvent } from "../../../../../../config/tests/test-utils";
5
+ import { mock } from "vitest-mock-extended";
6
6
  import configureStore from "redux-mock-store";
7
7
  import "@testing-library/jest-dom";
8
8
  import thunk from "redux-thunk";
@@ -1,8 +1,8 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { render, cleanup, screen } from "../../../../../config/jest/test-utils";
5
- import { mock } from "jest-mock-extended";
4
+ import { render, cleanup, screen } from "../../../../../config/tests/test-utils";
5
+ import { mock } from "vitest-mock-extended";
6
6
  import configureStore from "redux-mock-store";
7
7
  import "@testing-library/jest-dom";
8
8
  import thunk from "redux-thunk";
@@ -1,8 +1,9 @@
1
+ import type { MockedFunction } from "vitest";
1
2
  import * as React from "react";
2
3
 
3
4
  import { ThemeProvider } from "styled-components";
4
- import { render, cleanup, screen, fireEvent } from "../../../../../config/jest/test-utils";
5
- import { mock } from "jest-mock-extended";
5
+ import { render, cleanup, screen, fireEvent } from "../../../../../config/tests/test-utils";
6
+ import { mock } from "vitest-mock-extended";
6
7
  import configureStore from "redux-mock-store";
7
8
  import "@testing-library/jest-dom";
8
9
  import thunk from "redux-thunk";
@@ -50,7 +51,7 @@ const store = mockStore(initialStore);
50
51
  const defaultProps = mock<IPreviewFormProps>();
51
52
 
52
53
  defaultProps.selectedTab = "content";
53
- const setSelectedTabMock = defaultProps.setSelectedTab as jest.MockedFunction<(tab: string) => void>;
54
+ const setSelectedTabMock = defaultProps.setSelectedTab as MockedFunction<(tab: string) => void>;
54
55
 
55
56
  describe("PreviewForm component rendering", () => {
56
57
  it("should render component", () => {
@@ -27,7 +27,7 @@ describe("ContextMenu component rendering", () => {
27
27
  });
28
28
 
29
29
  it("should render menu container when position is provided", () => {
30
- const options: IActionMenuOption[] = [{ label: "Edit", action: jest.fn(), icon: "edit" }];
30
+ const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
31
31
 
32
32
  const props = {
33
33
  position: { x: 100, y: 200 },
@@ -46,9 +46,9 @@ describe("ContextMenu component rendering", () => {
46
46
 
47
47
  it("should render all provided options", () => {
48
48
  const options: IActionMenuOption[] = [
49
- { label: "Edit", action: jest.fn(), icon: "edit" },
50
- { label: "Delete", action: jest.fn(), icon: "delete" },
51
- { label: "Duplicate", action: jest.fn(), icon: "duplicate" },
49
+ { label: "Edit", action: vi.fn(), icon: "edit" },
50
+ { label: "Delete", action: vi.fn(), icon: "delete" },
51
+ { label: "Duplicate", action: vi.fn(), icon: "duplicate" },
52
52
  ];
53
53
 
54
54
  const props = {
@@ -69,10 +69,10 @@ describe("ContextMenu component rendering", () => {
69
69
 
70
70
  it("should handle null and undefined options in array", () => {
71
71
  const options: (IActionMenuOption | undefined | null)[] = [
72
- { label: "Edit", action: jest.fn(), icon: "edit" },
72
+ { label: "Edit", action: vi.fn(), icon: "edit" },
73
73
  null,
74
74
  undefined,
75
- { label: "Delete", action: jest.fn(), icon: "delete" },
75
+ { label: "Delete", action: vi.fn(), icon: "delete" },
76
76
  ];
77
77
 
78
78
  const props = {
@@ -93,7 +93,7 @@ describe("ContextMenu component rendering", () => {
93
93
 
94
94
  describe("ContextMenu component positioning", () => {
95
95
  it("should apply correct position coordinates", () => {
96
- const options: IActionMenuOption[] = [{ label: "Edit", action: jest.fn(), icon: "edit" }];
96
+ const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
97
97
 
98
98
  const props = {
99
99
  position: { x: 150, y: 250 },
@@ -112,7 +112,7 @@ describe("ContextMenu component positioning", () => {
112
112
  });
113
113
 
114
114
  it("should adjust position when menu would overflow viewport right edge", () => {
115
- const options: IActionMenuOption[] = [{ label: "Edit", action: jest.fn(), icon: "edit" }];
115
+ const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
116
116
 
117
117
  // Position near right edge with large X coordinate
118
118
  const props = {
@@ -131,7 +131,7 @@ describe("ContextMenu component positioning", () => {
131
131
  });
132
132
 
133
133
  it("should adjust position when menu would overflow viewport bottom edge", () => {
134
- const options: IActionMenuOption[] = [{ label: "Edit", action: jest.fn(), icon: "edit" }];
134
+ const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
135
135
 
136
136
  // Position near bottom edge with large Y coordinate
137
137
  const props = {
@@ -152,7 +152,7 @@ describe("ContextMenu component positioning", () => {
152
152
 
153
153
  describe("ContextMenu component events", () => {
154
154
  it("should call action when option is clicked", () => {
155
- const actionSpy = jest.fn();
155
+ const actionSpy = vi.fn();
156
156
  const options: IActionMenuOption[] = [{ label: "Edit", action: actionSpy, icon: "edit" }];
157
157
 
158
158
  const props = {
@@ -173,8 +173,8 @@ describe("ContextMenu component events", () => {
173
173
  });
174
174
 
175
175
  it("should close menu and call onClose when option is clicked", () => {
176
- const actionSpy = jest.fn();
177
- const onCloseSpy = jest.fn();
176
+ const actionSpy = vi.fn();
177
+ const onCloseSpy = vi.fn();
178
178
  const options: IActionMenuOption[] = [{ label: "Edit", action: actionSpy, icon: "edit" }];
179
179
 
180
180
  const props = {
@@ -197,8 +197,8 @@ describe("ContextMenu component events", () => {
197
197
  });
198
198
 
199
199
  it("should call onClose when clicking outside the menu", () => {
200
- const onCloseSpy = jest.fn();
201
- const options: IActionMenuOption[] = [{ label: "Edit", action: jest.fn(), icon: "edit" }];
200
+ const onCloseSpy = vi.fn();
201
+ const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
202
202
 
203
203
  const props = {
204
204
  position: { x: 100, y: 200 },
@@ -220,8 +220,8 @@ describe("ContextMenu component events", () => {
220
220
  });
221
221
 
222
222
  it("should not call onClose when clicking inside the menu", () => {
223
- const onCloseSpy = jest.fn();
224
- const options: IActionMenuOption[] = [{ label: "Edit", action: jest.fn(), icon: "edit" }];
223
+ const onCloseSpy = vi.fn();
224
+ const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
225
225
 
226
226
  const props = {
227
227
  position: { x: 100, y: 200 },
@@ -244,9 +244,9 @@ describe("ContextMenu component events", () => {
244
244
  });
245
245
 
246
246
  it("should handle multiple actions independently", () => {
247
- const editSpy = jest.fn();
248
- const deleteSpy = jest.fn();
249
- const onCloseSpy = jest.fn();
247
+ const editSpy = vi.fn();
248
+ const deleteSpy = vi.fn();
249
+ const onCloseSpy = vi.fn();
250
250
  const options: IActionMenuOption[] = [
251
251
  { label: "Edit", action: editSpy, icon: "edit" },
252
252
  { label: "Delete", action: deleteSpy, icon: "delete" },
@@ -289,7 +289,7 @@ describe("ContextMenu component events", () => {
289
289
 
290
290
  describe("ContextMenu component state transitions", () => {
291
291
  it("should hide menu when position changes to null", () => {
292
- const options: IActionMenuOption[] = [{ label: "Edit", action: jest.fn(), icon: "edit" }];
292
+ const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
293
293
 
294
294
  const { rerender, container } = render(
295
295
  <ThemeProvider theme={parseTheme(globalTheme)}>
@@ -309,7 +309,7 @@ describe("ContextMenu component state transitions", () => {
309
309
  });
310
310
 
311
311
  it("should reopen menu at new position", () => {
312
- const options: IActionMenuOption[] = [{ label: "Edit", action: jest.fn(), icon: "edit" }];
312
+ const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
313
313
 
314
314
  const { rerender } = render(
315
315
  <ThemeProvider theme={parseTheme(globalTheme)}>
@@ -339,7 +339,7 @@ describe("ContextMenu component state transitions", () => {
339
339
  it("should update options without closing menu", () => {
340
340
  const { rerender } = render(
341
341
  <ThemeProvider theme={parseTheme(globalTheme)}>
342
- <ContextMenu position={{ x: 100, y: 200 }} options={[{ label: "Edit", action: jest.fn(), icon: "edit" }]} />
342
+ <ContextMenu position={{ x: 100, y: 200 }} options={[{ label: "Edit", action: vi.fn(), icon: "edit" }]} />
343
343
  </ThemeProvider>,
344
344
  );
345
345
 
@@ -350,8 +350,8 @@ describe("ContextMenu component state transitions", () => {
350
350
  <ContextMenu
351
351
  position={{ x: 100, y: 200 }}
352
352
  options={[
353
- { label: "Edit", action: jest.fn(), icon: "edit" },
354
- { label: "Delete", action: jest.fn(), icon: "delete" },
353
+ { label: "Edit", action: vi.fn(), icon: "edit" },
354
+ { label: "Delete", action: vi.fn(), icon: "delete" },
355
355
  ]}
356
356
  />
357
357
  </ThemeProvider>,
@@ -1,8 +1,9 @@
1
+ import type { MockedFunction } from "vitest";
1
2
  import * as React from "react";
2
3
 
3
4
  import { ThemeProvider } from "styled-components";
4
5
  import { render, cleanup, screen, fireEvent } from "@testing-library/react";
5
- import { mock } from "jest-mock-extended";
6
+ import { mock } from "vitest-mock-extended";
6
7
  import "@testing-library/jest-dom";
7
8
 
8
9
  import { parseTheme } from "@ax/helpers";
@@ -12,10 +13,10 @@ import globalTheme from "@ax/themes/theme.json";
12
13
  afterEach(cleanup);
13
14
 
14
15
  const defaultProps = mock<IDragAndDropProps>();
15
- const onDropMock = defaultProps.onDrop as jest.MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
16
- const onDragOverMock = defaultProps.onDragOver as jest.MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
17
- const onDragEnterMock = defaultProps.onDragEnter as jest.MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
18
- const onDragLeaveMock = defaultProps.onDragLeave as jest.MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
16
+ const onDropMock = defaultProps.onDrop as MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
17
+ const onDragOverMock = defaultProps.onDragOver as MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
18
+ const onDragEnterMock = defaultProps.onDragEnter as MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
19
+ const onDragLeaveMock = defaultProps.onDragLeave as MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
19
20
  defaultProps.children = React.createElement("button", null, "back button");
20
21
 
21
22
  describe("ErrorCenter component rendering", () => {