@griddo/ax 12.3.0 → 12.4.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 (288) 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/package.json +15 -29
  6. package/public/img/icons/markdown.svg +6 -0
  7. package/src/__tests__/components/ActionMenu/ActionMenu.test.tsx +12 -12
  8. package/src/__tests__/components/Breadcrumb/Breadcrumb.test.tsx +2 -2
  9. package/src/__tests__/components/Browser/Browser.test.tsx +17 -25
  10. package/src/__tests__/components/BulkSelectionOptions/BulkSelectionOptions.test.tsx +3 -3
  11. package/src/__tests__/components/CategoryCell/CategoryCell.test.tsx +3 -2
  12. package/src/__tests__/components/ConfigPanel/ConfigPanel.test.tsx +4 -4
  13. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/ConnectedField.test.tsx +2 -2
  14. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/NavConnectedField/NavConnectedField.test.tsx +2 -2
  15. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/Field/Field.test.tsx +3 -3
  16. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/PageConnectedField.test.tsx +17 -14
  17. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/TemplateManager/TemplateManager.test.tsx +4 -4
  18. package/src/__tests__/components/ConfigPanel/Form/Form.test.tsx +7 -6
  19. package/src/__tests__/components/ConfigPanel/GlobalPageForm/GlobalPageForm.test.tsx +11 -11
  20. package/src/__tests__/components/ConfigPanel/Header/Header.test.tsx +11 -10
  21. package/src/__tests__/components/ConfigPanel/NavigationForm/Field/Field.test.tsx +2 -2
  22. package/src/__tests__/components/ConfigPanel/NavigationForm/NavigationForm.test.tsx +2 -2
  23. package/src/__tests__/components/ConfigPanel/PreviewForm/PreviewForm.test.tsx +4 -3
  24. package/src/__tests__/components/ContextMenu/ContextMenu.test.tsx +24 -24
  25. package/src/__tests__/components/DragAndDrop/DragAndDrop.test.tsx +6 -5
  26. package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +1 -1
  27. package/src/__tests__/components/EmptyState/EmptyState.test.tsx +2 -2
  28. package/src/__tests__/components/ErrorCenter/ErrorCenter.test.tsx +11 -11
  29. package/src/__tests__/components/FieldContainer/FieldContainer.test.tsx +4 -4
  30. package/src/__tests__/components/Fields/AnalyticsField/AnalyticsField.test.tsx +3 -3
  31. package/src/__tests__/components/Fields/AnalyticsField/PageAnalytics/PageAnalytics.test.tsx +4 -4
  32. package/src/__tests__/components/Fields/AnalyticsField/StructuredDataAnalytics/StructuredDataAnalytics.test.tsx +3 -3
  33. package/src/__tests__/components/Fields/ArrayFieldGroup/ArrayFieldGroup.test.tsx +6 -5
  34. package/src/__tests__/components/Fields/AsyncCheckGroup/AsyncCheckGroup.test.tsx +19 -18
  35. package/src/__tests__/components/Fields/AsyncSelect/AsyncSelect.test.tsx +4 -3
  36. package/src/__tests__/components/Fields/Button/Button.test.tsx +4 -3
  37. package/src/__tests__/components/Fields/CheckField/CheckField.test.tsx +5 -5
  38. package/src/__tests__/components/Fields/CheckGroup/CheckGroup.test.tsx +10 -10
  39. package/src/__tests__/components/Fields/ColorPicker/ColorPicker.test.tsx +7 -6
  40. package/src/__tests__/components/Fields/ComponentArray/ComponentArray.test.tsx +3 -3
  41. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/MixableComponentArray.test.tsx +45 -45
  42. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/PasteModuleButton/PasteModuleButton.test.tsx +7 -6
  43. package/src/__tests__/components/Fields/ComponentArray/SameComponentArray/SameComponentArray.test.tsx +7 -7
  44. package/src/__tests__/components/Fields/ComponentContainer/ComponentContainer.test.tsx +55 -55
  45. package/src/__tests__/components/Fields/ConditionalField/ConditionalField.test.tsx +1 -1
  46. package/src/__tests__/components/Fields/DateField/DateField.test.tsx +6 -5
  47. package/src/__tests__/components/Fields/FieldGroup/FieldGroup.test.tsx +2 -2
  48. package/src/__tests__/components/Fields/FileField/FileField.test.tsx +4 -4
  49. package/src/__tests__/components/Fields/HeadingField/HeadingField.test.tsx +2 -2
  50. package/src/__tests__/components/Fields/HiddenField/HiddenField.test.tsx +3 -3
  51. package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +8 -7
  52. package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +9 -8
  53. package/src/__tests__/components/Fields/MultiCheckSelect/MultiCheckSelect.test.tsx +1 -1
  54. package/src/__tests__/components/Fields/MultiCheckSelectGroup/MultiCheckSelectGroup.test.tsx +7 -6
  55. package/src/__tests__/components/Fields/NoteField/NoteField.test.tsx +1 -1
  56. package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +8 -8
  57. package/src/__tests__/components/Fields/RadioField/RadioField.test.tsx +2 -2
  58. package/src/__tests__/components/Fields/ReferenceField/ReferenceField.test.tsx +17 -16
  59. package/src/__tests__/components/Fields/RichText/RichText.test.tsx +1 -1
  60. package/src/__tests__/components/Fields/Select/Select.test.tsx +1 -1
  61. package/src/__tests__/components/Fields/SliderField/SliderField.test.tsx +5 -4
  62. package/src/__tests__/components/Fields/SummaryButton/SummaryButton.test.tsx +2 -2
  63. package/src/__tests__/components/Fields/TagField/TagField.test.tsx +9 -9
  64. package/src/__tests__/components/Fields/TextArea/TextArea.test.tsx +13 -9
  65. package/src/__tests__/components/Fields/TextField/TextField.test.tsx +8 -8
  66. package/src/__tests__/components/Fields/TimeField/HourInput/HourInput.test.tsx +7 -6
  67. package/src/__tests__/components/Fields/TimeField/TimeField.test.tsx +4 -3
  68. package/src/__tests__/components/Fields/ToggleField/ToggleField.test.tsx +2 -2
  69. package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +6 -6
  70. package/src/__tests__/components/Fields/TranslateButton/TranslateButton.test.tsx +13 -13
  71. package/src/__tests__/components/Fields/UniqueCheck/UniqueCheck.test.tsx +1 -1
  72. package/src/__tests__/components/Fields/UrlField/UrlField.test.tsx +20 -19
  73. package/src/__tests__/components/Fields/VisualUniqueSelection/ImageSelection/ImageSelection.test.tsx +3 -2
  74. package/src/__tests__/components/Fields/VisualUniqueSelection/ScrollableSelection/ScrollableSelection.test.tsx +4 -3
  75. package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx +1 -1
  76. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.atoms.test.tsx +11 -11
  77. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.helpers.test.tsx +13 -14
  78. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.test.tsx +28 -28
  79. package/src/__tests__/components/FieldsBehavior/FieldsBehavior.test.tsx +15 -14
  80. package/src/__tests__/components/FloatingMenu/FloatingMenu.test.tsx +36 -35
  81. package/src/__tests__/components/FloatingPanel/FloatingPanel.test.tsx +10 -10
  82. package/src/__tests__/components/GuardModal/GuardModal.test.tsx +1 -1
  83. package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorItem/ErrorItem.test.tsx +11 -11
  84. package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorsBanner.test.tsx +4 -4
  85. package/src/__tests__/components/HeadingsPreviewModal/HeadingsPreviewModal.test.tsx +15 -14
  86. package/src/__tests__/components/IconAction/IconAction.test.tsx +2 -2
  87. package/src/__tests__/components/ImageDragAndDrop/CropStep/CropStep.test.tsx +3 -3
  88. package/src/__tests__/components/ImageDragAndDrop/ImageDragAndDrop.test.tsx +7 -7
  89. package/src/__tests__/components/KeywordsPreviewModal/KeywordItem/KeywordItem.test.tsx +5 -5
  90. package/src/__tests__/components/KeywordsPreviewModal/KeywordsPreviewModal.test.tsx +14 -13
  91. package/src/__tests__/components/KeywordsPreviewModal/atoms.test.tsx +13 -13
  92. package/src/__tests__/components/LanguageMenu/LanguageMenu.test.tsx +6 -6
  93. package/src/__tests__/components/Lists/Lists.test.tsx +1 -1
  94. package/src/__tests__/components/Loader/Loader.test.tsx +1 -1
  95. package/src/__tests__/components/Login/Login.test.tsx +32 -32
  96. package/src/__tests__/components/Login/RecoveryModal/RecoveryModal.test.tsx +10 -9
  97. package/src/__tests__/components/MainWrapper/AppBar/AppBar.test.tsx +21 -21
  98. package/src/__tests__/components/MenuItem/MenuItem.test.tsx +5 -5
  99. package/src/__tests__/components/Modal/Modal.test.tsx +20 -20
  100. package/src/__tests__/components/Nav/Nav.test.tsx +2 -2
  101. package/src/__tests__/components/Notification/Notification.test.tsx +2 -2
  102. package/src/__tests__/components/Pagination/Pagination.test.tsx +13 -14
  103. package/src/__tests__/components/ProfileImage/ProfileImage.test.tsx +6 -7
  104. package/src/__tests__/components/ReorderArrows/ReorderArrows.test.tsx +4 -3
  105. package/src/__tests__/components/ResizePanel/ResizePanel.test.tsx +10 -11
  106. package/src/__tests__/components/RestrictionsModal/CurrentAccessList/CurrentAccessList.test.tsx +7 -6
  107. package/src/__tests__/components/RestrictionsModal/OptionsStep/OptionsStep.test.tsx +12 -11
  108. package/src/__tests__/components/RestrictionsModal/RestrictionsModal.test.tsx +11 -10
  109. package/src/__tests__/components/RestrictionsModal/RolesList/RolesList.test.tsx +8 -8
  110. package/src/__tests__/components/RestrictionsModal/UsersList/UsersList.test.tsx +16 -15
  111. package/src/__tests__/components/SearchField/SearchField.test.tsx +13 -13
  112. package/src/__tests__/components/SideModal/SideModal.test.tsx +25 -23
  113. package/src/__tests__/components/SubNav/SubNav.test.tsx +1 -1
  114. package/src/__tests__/components/TableFilters/CategoryFilter/CategoryFilter.test.tsx +9 -8
  115. package/src/__tests__/components/TableFilters/CustomizeFilters/CustomizeFilters.test.tsx +5 -5
  116. package/src/__tests__/components/TableFilters/DateFilter/DateFilter.test.tsx +8 -8
  117. package/src/__tests__/components/TableFilters/LiveFilter/LiveFilter.test.tsx +11 -10
  118. package/src/__tests__/components/TableFilters/NameFilter/NameFilter.test.tsx +10 -10
  119. package/src/__tests__/components/TableFilters/RoleFilter/RoleFilter.test.tsx +5 -5
  120. package/src/__tests__/components/TableFilters/SiteFilter/SiteFilter.test.tsx +10 -9
  121. package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +9 -9
  122. package/src/__tests__/components/TableFilters/TranslationsFilter/TranslationsFilter.test.tsx +8 -8
  123. package/src/__tests__/components/TableFilters/TypeFilter/TypeFilter.test.tsx +5 -5
  124. package/src/__tests__/components/TableFilters/UsersFilter/UsersFilter.test.tsx +8 -8
  125. package/src/__tests__/components/TableList/TableList.test.tsx +4 -4
  126. package/src/__tests__/components/Tabs/Tabs.test.tsx +8 -9
  127. package/src/__tests__/components/Tag/Tag.test.tsx +3 -3
  128. package/src/__tests__/components/Toast/Toast.test.tsx +6 -6
  129. package/src/__tests__/hooks/modals.test.tsx +4 -4
  130. package/src/__tests__/hooks/users.test.tsx +6 -5
  131. package/src/__tests__/modules/FileDrive/MarkdownFormat.test.tsx +58 -0
  132. package/src/__tests__/modules/FramePreview/FramePreview.test.tsx +40 -39
  133. package/src/__tests__/modules/FramePreview/HeadingsOverlay/HeadingsOverlay.test.tsx +11 -11
  134. package/src/__tests__/modules/Settings/Integrations/Integrations.test.tsx +2 -2
  135. package/src/__tests__/modules/Settings/Social/Social.test.tsx +4 -3
  136. package/src/__tests__/modules/Sites/Sites.test.tsx +5 -4
  137. package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +2 -2
  138. package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +7 -6
  139. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/DataStep/DataStep.test.tsx +6 -6
  140. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/FinalStep/FinalStep.test.tsx +4 -4
  141. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/CropView/CropView.test.tsx +3 -3
  142. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/ImageStep.test.tsx +9 -5
  143. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/UploadView/UploadView.test.tsx +8 -6
  144. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/TimezoneStep/TimezoneStep.test.tsx +7 -7
  145. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeModal.test.tsx +1 -1
  146. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeStep/WelcomeStep.test.tsx +3 -3
  147. package/src/__tests__/modules/Users/Roles/BulkHeader/BulkHeader.test.tsx +3 -3
  148. package/src/__tests__/modules/Users/Roles/Roles.test.tsx +11 -10
  149. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/RoleItem.test.tsx +3 -3
  150. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RolesModal.test.tsx +3 -3
  151. package/src/__tests__/modules/Users/UserCreate/SiteItem/SiteItem.test.tsx +3 -3
  152. package/src/__tests__/modules/Users/UserCreate/UserCreate.test.tsx +6 -5
  153. package/src/__tests__/modules/Users/UserList/UserItem/UserItem.test.tsx +9 -9
  154. package/src/__tests__/modules/Users/UserList/UserList.test.tsx +4 -4
  155. package/src/components/Flag/components/index.ts +30 -0
  156. package/src/components/Flag/index.tsx +3 -5
  157. package/src/components/Icon/components/index.ts +229 -0
  158. package/src/components/Icon/index.tsx +3 -7
  159. package/src/constants/index.ts +1 -1
  160. package/src/helpers/files.tsx +2 -0
  161. package/src/modules/FileDrive/FileFilters/Type/index.tsx +1 -0
  162. package/tsconfig.json +1 -1
  163. package/config/jest/cssTransform.js +0 -14
  164. package/config/jest/fileMock.js +0 -1
  165. package/config/jest/fileTransform.js +0 -40
  166. package/config/jest/reactEasyCropMock.js +0 -15
  167. package/config/jest/reactTimezoneMock.js +0 -13
  168. package/config/jest/setup.js +0 -31
  169. package/config/jest/styleMock.js +0 -1
  170. /package/config/{jest/test-utils.js → tests/test-utils.jsx} +0 -0
  171. /package/src/components/Flag/components/{Ca_ES.js → Ca_ES.jsx} +0 -0
  172. /package/src/components/Flag/components/{De_DE.js → De_DE.jsx} +0 -0
  173. /package/src/components/Flag/components/{En_GB.js → En_GB.jsx} +0 -0
  174. /package/src/components/Flag/components/{Es_ES.js → Es_ES.jsx} +0 -0
  175. /package/src/components/Flag/components/{Eu_ES.js → Eu_ES.jsx} +0 -0
  176. /package/src/components/Flag/components/{Fr_FR.js → Fr_FR.jsx} +0 -0
  177. /package/src/components/Flag/components/{It_IT.js → It_IT.jsx} +0 -0
  178. /package/src/components/Flag/components/{Pt_PT.js → Pt_PT.jsx} +0 -0
  179. /package/src/components/Icon/components/{Active.js → Active.jsx} +0 -0
  180. /package/src/components/Icon/components/{Add.js → Add.jsx} +0 -0
  181. /package/src/components/Icon/components/{AddCircle.js → AddCircle.jsx} +0 -0
  182. /package/src/components/Icon/components/{Alert.js → Alert.jsx} +0 -0
  183. /package/src/components/Icon/components/{AlignLeft.js → AlignLeft.jsx} +0 -0
  184. /package/src/components/Icon/components/{Back.js → Back.jsx} +0 -0
  185. /package/src/components/Icon/components/{BulletList.js → BulletList.jsx} +0 -0
  186. /package/src/components/Icon/components/{Button.js → Button.jsx} +0 -0
  187. /package/src/components/Icon/components/{Calendar.js → Calendar.jsx} +0 -0
  188. /package/src/components/Icon/components/{CancelEvent.js → CancelEvent.jsx} +0 -0
  189. /package/src/components/Icon/components/{Category.js → Category.jsx} +0 -0
  190. /package/src/components/Icon/components/{Change.js → Change.jsx} +0 -0
  191. /package/src/components/Icon/components/{Close.js → Close.jsx} +0 -0
  192. /package/src/components/Icon/components/{ClosePanel.js → ClosePanel.jsx} +0 -0
  193. /package/src/components/Icon/components/{CodeBody.js → CodeBody.jsx} +0 -0
  194. /package/src/components/Icon/components/{CodeHead.js → CodeHead.jsx} +0 -0
  195. /package/src/components/Icon/components/{CodeHeadBody.js → CodeHeadBody.jsx} +0 -0
  196. /package/src/components/Icon/components/{Collapsed.js → Collapsed.jsx} +0 -0
  197. /package/src/components/Icon/components/{ColorPicker.js → ColorPicker.jsx} +0 -0
  198. /package/src/components/Icon/components/{Compose.js → Compose.jsx} +0 -0
  199. /package/src/components/Icon/components/{Copy.js → Copy.jsx} +0 -0
  200. /package/src/components/Icon/components/{Copy2.js → Copy2.jsx} +0 -0
  201. /package/src/components/Icon/components/{Data.js → Data.jsx} +0 -0
  202. /package/src/components/Icon/components/{DataAdd.js → DataAdd.jsx} +0 -0
  203. /package/src/components/Icon/components/{Deactivate.js → Deactivate.jsx} +0 -0
  204. /package/src/components/Icon/components/{Delete.js → Delete.jsx} +0 -0
  205. /package/src/components/Icon/components/{Desktop.js → Desktop.jsx} +0 -0
  206. /package/src/components/Icon/components/{Disabled.js → Disabled.jsx} +0 -0
  207. /package/src/components/Icon/components/{Done.js → Done.jsx} +0 -0
  208. /package/src/components/Icon/components/{DownArrow.js → DownArrow.jsx} +0 -0
  209. /package/src/components/Icon/components/{Download.js → Download.jsx} +0 -0
  210. /package/src/components/Icon/components/{Drag.js → Drag.jsx} +0 -0
  211. /package/src/components/Icon/components/{Duplicate.js → Duplicate.jsx} +0 -0
  212. /package/src/components/Icon/components/{Edit.js → Edit.jsx} +0 -0
  213. /package/src/components/Icon/components/{Empty.js → Empty.jsx} +0 -0
  214. /package/src/components/Icon/components/{EmptyCheck.js → EmptyCheck.jsx} +0 -0
  215. /package/src/components/Icon/components/{Extend.js → Extend.jsx} +0 -0
  216. /package/src/components/Icon/components/{File.js → File.jsx} +0 -0
  217. /package/src/components/Icon/components/{Filter.js → Filter.jsx} +0 -0
  218. /package/src/components/Icon/components/{Form.js → Form.jsx} +0 -0
  219. /package/src/components/Icon/components/{FullArrowDown.js → FullArrowDown.jsx} +0 -0
  220. /package/src/components/Icon/components/{FullArrowLeft.js → FullArrowLeft.jsx} +0 -0
  221. /package/src/components/Icon/components/{FullArrowRight.js → FullArrowRight.jsx} +0 -0
  222. /package/src/components/Icon/components/{FullArrowUp.js → FullArrowUp.jsx} +0 -0
  223. /package/src/components/Icon/components/{Grid.js → Grid.jsx} +0 -0
  224. /package/src/components/Icon/components/{Grid2.js → Grid2.jsx} +0 -0
  225. /package/src/components/Icon/components/{GriddoLogo.js → GriddoLogo.jsx} +0 -0
  226. /package/src/components/Icon/components/{HeroCard.js → HeroCard.jsx} +0 -0
  227. /package/src/components/Icon/components/{Hide.js → Hide.jsx} +0 -0
  228. /package/src/components/Icon/components/{History.js → History.jsx} +0 -0
  229. /package/src/components/Icon/components/{Home.js → Home.jsx} +0 -0
  230. /package/src/components/Icon/components/{Ia.js → Ia.jsx} +0 -0
  231. /package/src/components/Icon/components/{Image.js → Image.jsx} +0 -0
  232. /package/src/components/Icon/components/{Info.js → Info.jsx} +0 -0
  233. /package/src/components/Icon/components/{Laptop.js → Laptop.jsx} +0 -0
  234. /package/src/components/Icon/components/{LeftArrow.js → LeftArrow.jsx} +0 -0
  235. /package/src/components/Icon/components/{Link.js → Link.jsx} +0 -0
  236. /package/src/components/Icon/components/{Lock.js → Lock.jsx} +0 -0
  237. /package/src/components/Icon/components/{Log.js → Log.jsx} +0 -0
  238. /package/src/components/Icon/components/{Map.js → Map.jsx} +0 -0
  239. /package/src/components/Icon/components/{Menu.js → Menu.jsx} +0 -0
  240. /package/src/components/Icon/components/{Microsoft.js → Microsoft.jsx} +0 -0
  241. /package/src/components/Icon/components/{Modified.js → Modified.jsx} +0 -0
  242. /package/src/components/Icon/components/{Modules.js → Modules.jsx} +0 -0
  243. /package/src/components/Icon/components/{More.js → More.jsx} +0 -0
  244. /package/src/components/Icon/components/{NewFolder.js → NewFolder.jsx} +0 -0
  245. /package/src/components/Icon/components/{Offline.js → Offline.jsx} +0 -0
  246. /package/src/components/Icon/components/{OfflinePending.js → OfflinePending.jsx} +0 -0
  247. /package/src/components/Icon/components/{OpenOutside.js → OpenOutside.jsx} +0 -0
  248. /package/src/components/Icon/components/{OpenPanel.js → OpenPanel.jsx} +0 -0
  249. /package/src/components/Icon/components/{OutOfSection.js → OutOfSection.jsx} +0 -0
  250. /package/src/components/Icon/components/{Page.js → Page.jsx} +0 -0
  251. /package/src/components/Icon/components/{Party.js → Party.jsx} +0 -0
  252. /package/src/components/Icon/components/{Paste.js → Paste.jsx} +0 -0
  253. /package/src/components/Icon/components/{Phone.js → Phone.jsx} +0 -0
  254. /package/src/components/Icon/components/{PhotoLibrary.js → PhotoLibrary.jsx} +0 -0
  255. /package/src/components/Icon/components/{Power.js → Power.jsx} +0 -0
  256. /package/src/components/Icon/components/{Preview.js → Preview.jsx} +0 -0
  257. /package/src/components/Icon/components/{Project.js → Project.jsx} +0 -0
  258. /package/src/components/Icon/components/{QrCode.js → QrCode.jsx} +0 -0
  259. /package/src/components/Icon/components/{Question.js → Question.jsx} +0 -0
  260. /package/src/components/Icon/components/{Refresh.js → Refresh.jsx} +0 -0
  261. /package/src/components/Icon/components/{Republish.js → Republish.jsx} +0 -0
  262. /package/src/components/Icon/components/{RightArrow.js → RightArrow.jsx} +0 -0
  263. /package/src/components/Icon/components/{Scheduled.js → Scheduled.jsx} +0 -0
  264. /package/src/components/Icon/components/{Search.js → Search.jsx} +0 -0
  265. /package/src/components/Icon/components/{SendEmail.js → SendEmail.jsx} +0 -0
  266. /package/src/components/Icon/components/{Settings.js → Settings.jsx} +0 -0
  267. /package/src/components/Icon/components/{Share.js → Share.jsx} +0 -0
  268. /package/src/components/Icon/components/{Subsection.js → Subsection.jsx} +0 -0
  269. /package/src/components/Icon/components/{Success.js → Success.jsx} +0 -0
  270. /package/src/components/Icon/components/{SuccessSolid.js → SuccessSolid.jsx} +0 -0
  271. /package/src/components/Icon/components/{Sync.js → Sync.jsx} +0 -0
  272. /package/src/components/Icon/components/{Tablet.js → Tablet.jsx} +0 -0
  273. /package/src/components/Icon/components/{Translate.js → Translate.jsx} +0 -0
  274. /package/src/components/Icon/components/{Unlink.js → Unlink.jsx} +0 -0
  275. /package/src/components/Icon/components/{UpArrow.js → UpArrow.jsx} +0 -0
  276. /package/src/components/Icon/components/{UploadFile.js → UploadFile.jsx} +0 -0
  277. /package/src/components/Icon/components/{UploadPending.js → UploadPending.jsx} +0 -0
  278. /package/src/components/Icon/components/{UrlLink.js → UrlLink.jsx} +0 -0
  279. /package/src/components/Icon/components/{User.js → User.jsx} +0 -0
  280. /package/src/components/Icon/components/{Users.js → Users.jsx} +0 -0
  281. /package/src/components/Icon/components/{Video.js → Video.jsx} +0 -0
  282. /package/src/components/Icon/components/{View.js → View.jsx} +0 -0
  283. /package/src/components/Icon/components/{Warning.js → Warning.jsx} +0 -0
  284. /package/src/components/Icon/components/{Web.js → Web.jsx} +0 -0
  285. /package/src/components/Icon/components/{Working.js → Working.jsx} +0 -0
  286. /package/src/components/Loader/components/{Circle.js → Circle.jsx} +0 -0
  287. /package/src/components/Loader/components/{Dots.js → Dots.jsx} +0 -0
  288. /package/src/components/Loader/components/{SmallCircle.js → SmallCircle.jsx} +0 -0
@@ -327,7 +327,7 @@ describe("useContextMenu hook", () => {
327
327
 
328
328
  it("should prevent default when handleContextMenu is called", () => {
329
329
  const { result } = renderHook(() => useContextMenu());
330
- const preventDefaultSpy = jest.fn();
330
+ const preventDefaultSpy = vi.fn();
331
331
 
332
332
  const mouseEvent = {
333
333
  preventDefault: preventDefaultSpy,
@@ -347,7 +347,7 @@ describe("useContextMenu hook", () => {
347
347
 
348
348
  act(() => {
349
349
  result.current.handleContextMenu({
350
- preventDefault: jest.fn(),
350
+ preventDefault: vi.fn(),
351
351
  clientX: 100,
352
352
  clientY: 200,
353
353
  } as any);
@@ -367,7 +367,7 @@ describe("useContextMenu hook", () => {
367
367
 
368
368
  act(() => {
369
369
  result.current.handleContextMenu({
370
- preventDefault: jest.fn(),
370
+ preventDefault: vi.fn(),
371
371
  clientX: 100,
372
372
  clientY: 200,
373
373
  } as any);
@@ -377,7 +377,7 @@ describe("useContextMenu hook", () => {
377
377
 
378
378
  act(() => {
379
379
  result.current.handleContextMenu({
380
- preventDefault: jest.fn(),
380
+ preventDefault: vi.fn(),
381
381
  clientX: 300,
382
382
  clientY: 400,
383
383
  } as any);
@@ -1,3 +1,4 @@
1
+ import type { MockedFunction } from "vitest";
1
2
  import "@testing-library/jest-dom";
2
3
 
3
4
  import * as reactRedux from "react-redux";
@@ -7,11 +8,11 @@ import type { PageAccessGrantsSummary } from "@ax/types";
7
8
 
8
9
  import { renderHook } from "@testing-library/react";
9
10
 
10
- jest.mock("react-redux", () => {
11
- const actual = jest.requireActual("react-redux");
11
+ vi.mock("react-redux", async () => {
12
+ const actual = await vi.importActual("react-redux");
12
13
  return {
13
14
  ...actual,
14
- useSelector: jest.fn(),
15
+ useSelector: vi.fn(),
15
16
  };
16
17
  });
17
18
 
@@ -40,14 +41,14 @@ describe("usePermissionsForPage hook", () => {
40
41
  isSuperAdmin: true,
41
42
  };
42
43
 
43
- const mockUseSelector = useSelector as jest.MockedFunction<typeof useSelector>;
44
+ const mockUseSelector = useSelector as MockedFunction<typeof useSelector>;
44
45
 
45
46
  const setupMockState = (state: any) => {
46
47
  mockUseSelector.mockImplementation((selector: any) => selector(state));
47
48
  };
48
49
 
49
50
  beforeEach(() => {
50
- jest.clearAllMocks();
51
+ vi.clearAllMocks();
51
52
  });
52
53
 
53
54
  describe("1. User authentication", () => {
@@ -0,0 +1,58 @@
1
+ import "@testing-library/jest-dom";
2
+
3
+ import { getFileIcon, parseTheme } from "@ax/helpers";
4
+ import globalTheme from "@ax/themes/theme.json";
5
+
6
+ import userEvent from "@testing-library/user-event";
7
+ import type { Middleware } from "redux";
8
+ import configureStore from "redux-mock-store";
9
+ import thunk from "redux-thunk";
10
+ import { ThemeProvider } from "styled-components";
11
+
12
+ import { cleanup, render, screen } from "./../../../../config/tests/test-utils";
13
+ import FileDragAndDrop from "./../../../modules/FileDrive/FileDragAndDrop";
14
+ import Type from "./../../../modules/FileDrive/FileFilters/Type";
15
+
16
+ const middlewares: Middleware[] = [thunk];
17
+ const mockStore = configureStore(middlewares);
18
+
19
+ const store = mockStore({
20
+ fileDrive: { isUploading: false, isSuccess: false, isError: false, errorMsg: "" },
21
+ });
22
+
23
+ const renderDragAndDrop = () =>
24
+ render(
25
+ <ThemeProvider theme={parseTheme(globalTheme)}>
26
+ <FileDragAndDrop siteID="global" handleUpload={vi.fn()} />
27
+ </ThemeProvider>,
28
+ { store },
29
+ );
30
+
31
+ afterEach(cleanup);
32
+
33
+ describe("[UC-AX-manage-filedrive-files] Markdown entre los formatos del File Drive", () => {
34
+ it("AC7 · la zona de subida admite markdown y lo anuncia entre los formatos válidos", () => {
35
+ const { container } = renderDragAndDrop();
36
+
37
+ const fileInput = container.querySelector('input[type="file"]');
38
+
39
+ expect(fileInput?.getAttribute("accept")).toContain(".md");
40
+ expect(container.textContent).toContain("txt, md");
41
+ });
42
+
43
+ it("AC8 · un markdown se representa con su icono propio y se puede filtrar por tipo", async () => {
44
+ expect(getFileIcon("md")).toBe("markdown.svg");
45
+ expect(getFileIcon("md")).not.toBe(getFileIcon("unknown-format"));
46
+
47
+ render(
48
+ <ThemeProvider theme={parseTheme(globalTheme)}>
49
+ <Type filterItems={vi.fn()} />
50
+ </ThemeProvider>,
51
+ { store },
52
+ );
53
+
54
+ await userEvent.click(screen.getByTestId("type-wrapper"));
55
+
56
+ expect(screen.getByText("MD")).toBeInTheDocument();
57
+ });
58
+ });
@@ -1,3 +1,4 @@
1
+ import type { Mock } from "vitest";
1
2
  import { parseTheme } from "@ax/helpers";
2
3
  import * as hooks from "@ax/hooks";
3
4
  import FramePreview from "@ax/modules/FramePreview";
@@ -9,24 +10,24 @@ import configureStore from "redux-mock-store";
9
10
  import thunk from "redux-thunk";
10
11
  import { ThemeProvider } from "styled-components";
11
12
 
12
- import { act, cleanup, render, screen } from "../../../../config/jest/test-utils";
13
+ import { act, cleanup, render, screen } from "../../../../config/tests/test-utils";
13
14
 
14
15
  // Capture BrowserContent props so individual callback functions can be tested
15
16
  const capturedBrowserContentProps: { current: Record<string, any> | null } = { current: null };
16
17
 
17
- jest.mock("@ax/hooks", () => ({
18
- ...jest.requireActual("@ax/hooks"),
19
- useURLSearchParam: jest.fn().mockReturnValue(null),
20
- useOnMessageReceivedFromOutside: jest.fn(),
21
- useToast: jest.fn().mockReturnValue({
18
+ vi.mock("@ax/hooks", async () => ({
19
+ ...(await vi.importActual("@ax/hooks")),
20
+ useURLSearchParam: vi.fn().mockReturnValue(null),
21
+ useOnMessageReceivedFromOutside: vi.fn(),
22
+ useToast: vi.fn().mockReturnValue({
22
23
  isVisible: false,
23
- toggleToast: jest.fn(),
24
- setIsVisible: jest.fn(),
24
+ toggleToast: vi.fn(),
25
+ setIsVisible: vi.fn(),
25
26
  state: "",
26
27
  }),
27
28
  }));
28
29
 
29
- jest.mock("@ax/components", () => {
30
+ vi.mock("@ax/components", async () => {
30
31
  const React = require("react");
31
32
  return {
32
33
  BrowserContent: (props: any) => {
@@ -38,20 +39,20 @@ jest.mock("@ax/components", () => {
38
39
  };
39
40
  });
40
41
 
41
- jest.mock("@ax/modules/FramePreview/utils", () => ({
42
- observeAndAddIdsToHeadings: jest.fn().mockReturnValue(jest.fn()),
43
- observeAndHighlightKeywords: jest.fn().mockReturnValue(jest.fn()),
42
+ vi.mock("@ax/modules/FramePreview/utils", async () => ({
43
+ observeAndAddIdsToHeadings: vi.fn().mockReturnValue(vi.fn()),
44
+ observeAndHighlightKeywords: vi.fn().mockReturnValue(vi.fn()),
44
45
  }));
45
46
 
46
- jest.mock("@ax/forms", () => ({
47
- findByEditorID: jest.fn().mockReturnValue({
47
+ vi.mock("@ax/forms", async () => ({
48
+ findByEditorID: vi.fn().mockReturnValue({
48
49
  element: { component: "Page", editorID: 5 },
49
50
  parent: { parentEditorID: 0 },
50
51
  }),
51
52
  }));
52
53
 
53
54
  // Mock action creators as plain functions to avoid thunk side-effects
54
- jest.mock("@ax/containers/PageEditor", () => ({
55
+ vi.mock("@ax/containers/PageEditor", async () => ({
55
56
  pageEditorActions: {
56
57
  setSelectedContent: (id: number) => ({ type: "SET_SELECTED_CONTENT", payload: id }),
57
58
  setEditorContent: (content: any) => ({ type: "SET_EDITOR_CONTENT", payload: content }),
@@ -61,7 +62,7 @@ jest.mock("@ax/containers/PageEditor", () => ({
61
62
  },
62
63
  }));
63
64
 
64
- jest.mock("@ax/containers/Forms", () => ({
65
+ vi.mock("@ax/containers/Forms", async () => ({
65
66
  formsActions: {
66
67
  setSelectedContent: (id: number) => ({ type: "SET_FORM_SELECTED_CONTENT", payload: id }),
67
68
  setFormContent: (content: any) => ({ type: "SET_FORM_CONTENT", payload: content }),
@@ -99,7 +100,7 @@ const renderFramePreview = async (store = buildStore()) => {
99
100
  afterEach(() => {
100
101
  cleanup();
101
102
  capturedBrowserContentProps.current = null;
102
- jest.restoreAllMocks();
103
+ vi.restoreAllMocks();
103
104
  });
104
105
 
105
106
  describe("FramePreview rendering", () => {
@@ -122,7 +123,7 @@ describe("FramePreview rendering", () => {
122
123
  });
123
124
 
124
125
  it("should render HeadingsOverlay when type is 'headings'", async () => {
125
- (hooks.useURLSearchParam as jest.Mock).mockImplementation((param: string) => {
126
+ (hooks.useURLSearchParam as Mock).mockImplementation((param: string) => {
126
127
  if (param === "type") return "headings";
127
128
  return null;
128
129
  });
@@ -135,7 +136,7 @@ describe("FramePreview rendering", () => {
135
136
 
136
137
  describe("FramePreview effects", () => {
137
138
  it("should post iframe-mousemove message to parent on window mousemove", async () => {
138
- const postMessageSpy = jest.spyOn(window, "postMessage");
139
+ const postMessageSpy = vi.spyOn(window, "postMessage");
139
140
 
140
141
  await renderFramePreview();
141
142
 
@@ -150,7 +151,7 @@ describe("FramePreview effects", () => {
150
151
  });
151
152
 
152
153
  it("should set selectedID to '0' in localStorage when disabled param is true", async () => {
153
- (hooks.useURLSearchParam as jest.Mock).mockImplementation((param: string) => {
154
+ (hooks.useURLSearchParam as Mock).mockImplementation((param: string) => {
154
155
  if (param === "disabled") return "true";
155
156
  return null;
156
157
  });
@@ -161,7 +162,7 @@ describe("FramePreview effects", () => {
161
162
  });
162
163
 
163
164
  it("should call observeAndAddIdsToHeadings when type is 'headings'", async () => {
164
- (hooks.useURLSearchParam as jest.Mock).mockImplementation((param: string) => {
165
+ (hooks.useURLSearchParam as Mock).mockImplementation((param: string) => {
165
166
  if (param === "type") return "headings";
166
167
  return null;
167
168
  });
@@ -172,7 +173,7 @@ describe("FramePreview effects", () => {
172
173
  });
173
174
 
174
175
  it("should call observeAndHighlightKeywords when type is 'keywords'", async () => {
175
- (hooks.useURLSearchParam as jest.Mock).mockImplementation((param: string) => {
176
+ (hooks.useURLSearchParam as Mock).mockImplementation((param: string) => {
176
177
  if (param === "type") return "keywords";
177
178
  return null;
178
179
  });
@@ -185,7 +186,7 @@ describe("FramePreview effects", () => {
185
186
 
186
187
  describe("FramePreview module actions", () => {
187
188
  it("should post module-delete and dispatch deleteModule when deleteModuleAction is called", async () => {
188
- const postMessageSpy = jest.spyOn(window, "postMessage");
189
+ const postMessageSpy = vi.spyOn(window, "postMessage");
189
190
 
190
191
  await renderFramePreview();
191
192
 
@@ -195,7 +196,7 @@ describe("FramePreview module actions", () => {
195
196
  });
196
197
 
197
198
  it("should post module-duplicate when duplicateModuleAction is called", async () => {
198
- const postMessageSpy = jest.spyOn(window, "postMessage");
199
+ const postMessageSpy = vi.spyOn(window, "postMessage");
199
200
 
200
201
  await renderFramePreview();
201
202
 
@@ -205,14 +206,14 @@ describe("FramePreview module actions", () => {
205
206
  });
206
207
 
207
208
  it("should post module-copy and call toggleToast when copyModuleAction is called", async () => {
208
- const toggleToastMock = jest.fn();
209
- (hooks.useToast as jest.Mock).mockReturnValue({
209
+ const toggleToastMock = vi.fn();
210
+ (hooks.useToast as Mock).mockReturnValue({
210
211
  isVisible: false,
211
212
  toggleToast: toggleToastMock,
212
- setIsVisible: jest.fn(),
213
+ setIsVisible: vi.fn(),
213
214
  state: "",
214
215
  });
215
- const postMessageSpy = jest.spyOn(window, "postMessage");
216
+ const postMessageSpy = vi.spyOn(window, "postMessage");
216
217
 
217
218
  await renderFramePreview();
218
219
 
@@ -225,19 +226,19 @@ describe("FramePreview module actions", () => {
225
226
 
226
227
  describe("FramePreview editor ID selection", () => {
227
228
  it("should post module-click when selectEditorID is called", async () => {
228
- const postMessageSpy = jest.spyOn(window, "postMessage");
229
+ const postMessageSpy = vi.spyOn(window, "postMessage");
229
230
 
230
231
  await renderFramePreview();
231
232
 
232
233
  const { selectEditorID } = capturedBrowserContentProps.current!;
233
- const mockEvent = { stopPropagation: jest.fn() };
234
+ const mockEvent = { stopPropagation: vi.fn() };
234
235
  selectEditorID({ editorID: 1, component: "Page", type: "content", parentEditorID: 0 }, null, mockEvent);
235
236
 
236
237
  expect(postMessageSpy).toHaveBeenCalledWith({ type: "module-click", message: 1 }, "*");
237
238
  });
238
239
 
239
240
  it("should post module-scroll when selectHoverEditorID is called and parent meets condition", async () => {
240
- const postMessageSpy = jest.spyOn(window, "postMessage");
241
+ const postMessageSpy = vi.spyOn(window, "postMessage");
241
242
 
242
243
  await renderFramePreview();
243
244
 
@@ -248,16 +249,16 @@ describe("FramePreview editor ID selection", () => {
248
249
  });
249
250
 
250
251
  it("should not post module-click when preview mode is active", async () => {
251
- (hooks.useURLSearchParam as jest.Mock).mockImplementation((param: string) => {
252
+ (hooks.useURLSearchParam as Mock).mockImplementation((param: string) => {
252
253
  if (param === "preview") return "true";
253
254
  return null;
254
255
  });
255
- const postMessageSpy = jest.spyOn(window, "postMessage");
256
+ const postMessageSpy = vi.spyOn(window, "postMessage");
256
257
 
257
258
  await renderFramePreview();
258
259
 
259
260
  const { selectEditorID } = capturedBrowserContentProps.current!;
260
- const mockEvent = { stopPropagation: jest.fn() };
261
+ const mockEvent = { stopPropagation: vi.fn() };
261
262
  selectEditorID({ editorID: 1, component: "Page", type: "content", parentEditorID: 0 }, null, mockEvent);
262
263
 
263
264
  expect(postMessageSpy).not.toHaveBeenCalledWith(expect.objectContaining({ type: "module-click" }), "*");
@@ -266,10 +267,10 @@ describe("FramePreview editor ID selection", () => {
266
267
 
267
268
  describe("FramePreview content modes", () => {
268
269
  it("should render Toast when isVisible is true", async () => {
269
- (hooks.useToast as jest.Mock).mockReturnValueOnce({
270
+ (hooks.useToast as Mock).mockReturnValueOnce({
270
271
  isVisible: true,
271
- toggleToast: jest.fn(),
272
- setIsVisible: jest.fn(),
272
+ toggleToast: vi.fn(),
273
+ setIsVisible: vi.fn(),
273
274
  state: "1 module copied to clipboard",
274
275
  });
275
276
 
@@ -279,7 +280,7 @@ describe("FramePreview content modes", () => {
279
280
  });
280
281
 
281
282
  it("should use 'preview' renderer when preview param is true", async () => {
282
- (hooks.useURLSearchParam as jest.Mock).mockImplementation((param: string) => {
283
+ (hooks.useURLSearchParam as Mock).mockImplementation((param: string) => {
283
284
  if (param === "preview") return "true";
284
285
  return null;
285
286
  });
@@ -290,7 +291,7 @@ describe("FramePreview content modes", () => {
290
291
  });
291
292
 
292
293
  it("should pass filtered keywords to observeAndHighlightKeywords when keywordFilter param is set", async () => {
293
- (hooks.useURLSearchParam as jest.Mock).mockImplementation((param: string) => {
294
+ (hooks.useURLSearchParam as Mock).mockImplementation((param: string) => {
294
295
  if (param === "type") return "keywords";
295
296
  if (param === "keywordFilter") return "seo";
296
297
  return null;
@@ -13,7 +13,7 @@ beforeEach(() => {
13
13
  let rafId = 0;
14
14
  let processingRaf = false;
15
15
 
16
- jest.spyOn(window, "requestAnimationFrame").mockImplementation((cb) => {
16
+ vi.spyOn(window, "requestAnimationFrame").mockImplementation((cb) => {
17
17
  // Avoid infinite recursion by checking if we're already processing
18
18
  if (!processingRaf) {
19
19
  processingRaf = true;
@@ -26,13 +26,13 @@ beforeEach(() => {
26
26
  return ++rafId;
27
27
  });
28
28
 
29
- jest.spyOn(window, "cancelAnimationFrame").mockImplementation(() => {});
29
+ vi.spyOn(window, "cancelAnimationFrame").mockImplementation(() => {});
30
30
  });
31
31
 
32
32
  afterEach(() => {
33
33
  cleanup();
34
34
  for (const el of document.querySelectorAll("h1, h2, h3, h4, h5, h6")) el.remove();
35
- jest.restoreAllMocks();
35
+ vi.restoreAllMocks();
36
36
  });
37
37
 
38
38
  describe("HeadingsOverlay rendering", () => {
@@ -47,7 +47,7 @@ describe("HeadingsOverlay rendering", () => {
47
47
  const h1 = document.createElement("h1");
48
48
  h1.dataset.griddoid = "heading-1";
49
49
  document.body.appendChild(h1);
50
- jest.spyOn(h1, "getBoundingClientRect").mockReturnValue({
50
+ vi.spyOn(h1, "getBoundingClientRect").mockReturnValue({
51
51
  top: 10,
52
52
  left: 10,
53
53
  width: 200,
@@ -70,7 +70,7 @@ describe("HeadingsOverlay rendering", () => {
70
70
  const h2 = document.createElement("h2");
71
71
  h2.dataset.griddoid = "heading-1";
72
72
  document.body.appendChild(h2);
73
- jest.spyOn(h2, "getBoundingClientRect").mockReturnValue({
73
+ vi.spyOn(h2, "getBoundingClientRect").mockReturnValue({
74
74
  top: 10,
75
75
  left: 10,
76
76
  width: 200,
@@ -103,7 +103,7 @@ describe("HeadingsOverlay rendering", () => {
103
103
  const h1 = document.createElement("h1");
104
104
  h1.dataset.griddoid = "heading-1";
105
105
  document.body.appendChild(h1);
106
- jest.spyOn(h1, "getBoundingClientRect").mockReturnValue({
106
+ vi.spyOn(h1, "getBoundingClientRect").mockReturnValue({
107
107
  top: 10,
108
108
  left: 10,
109
109
  width: 200,
@@ -116,7 +116,7 @@ describe("HeadingsOverlay rendering", () => {
116
116
  } as DOMRect);
117
117
 
118
118
  const originalGetComputedStyle = window.getComputedStyle.bind(window);
119
- jest.spyOn(window, "getComputedStyle").mockImplementation((el) => {
119
+ vi.spyOn(window, "getComputedStyle").mockImplementation((el) => {
120
120
  if (el === h1) return { display: "none", visibility: "", opacity: "1" } as CSSStyleDeclaration;
121
121
  return originalGetComputedStyle(el);
122
122
  });
@@ -132,7 +132,7 @@ describe("HeadingsOverlay rendering", () => {
132
132
  const h1 = document.createElement("h1");
133
133
  h1.dataset.griddoid = "heading-1";
134
134
  document.body.appendChild(h1);
135
- jest.spyOn(h1, "getBoundingClientRect").mockReturnValue({
135
+ vi.spyOn(h1, "getBoundingClientRect").mockReturnValue({
136
136
  top: 10,
137
137
  left: 10,
138
138
  width: 200,
@@ -145,7 +145,7 @@ describe("HeadingsOverlay rendering", () => {
145
145
  } as DOMRect);
146
146
 
147
147
  const originalGetComputedStyle = window.getComputedStyle.bind(window);
148
- jest.spyOn(window, "getComputedStyle").mockImplementation((el) => {
148
+ vi.spyOn(window, "getComputedStyle").mockImplementation((el) => {
149
149
  if (el === h1) return { display: "block", visibility: "visible", opacity: "0" } as CSSStyleDeclaration;
150
150
  return originalGetComputedStyle(el);
151
151
  });
@@ -161,7 +161,7 @@ describe("HeadingsOverlay rendering", () => {
161
161
  const h1 = document.createElement("h1");
162
162
  h1.dataset.griddoid = "heading-1";
163
163
  document.body.appendChild(h1);
164
- jest.spyOn(h1, "getBoundingClientRect").mockReturnValue({
164
+ vi.spyOn(h1, "getBoundingClientRect").mockReturnValue({
165
165
  top: 10,
166
166
  left: 10,
167
167
  width: 200,
@@ -176,7 +176,7 @@ describe("HeadingsOverlay rendering", () => {
176
176
  const h2 = document.createElement("h2");
177
177
  h2.dataset.griddoid = "heading-2";
178
178
  document.body.appendChild(h2);
179
- jest.spyOn(h2, "getBoundingClientRect").mockReturnValue({
179
+ vi.spyOn(h2, "getBoundingClientRect").mockReturnValue({
180
180
  top: 60,
181
181
  left: 10,
182
182
  width: 200,
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { ThemeProvider } from "styled-components";
3
3
  import { parseTheme } from "@ax/helpers";
4
- import { mock } from "jest-mock-extended";
4
+ import { mock } from "vitest-mock-extended";
5
5
  import configureStore from "redux-mock-store";
6
6
  import thunk from "redux-thunk";
7
7
  import { Router } from "react-router-dom";
@@ -9,7 +9,7 @@ import { Router } from "react-router-dom";
9
9
  import history from "@ax/routes/history";
10
10
  import globalTheme from "@ax/themes/theme.json";
11
11
  import Integrations, { IIntegrationsProps } from "@ax/modules/Settings/Integrations";
12
- import { render, cleanup, screen, act } from "../../../../../config/jest/test-utils";
12
+ import { render, cleanup, screen, act } from "../../../../../config/tests/test-utils";
13
13
 
14
14
  afterEach(cleanup);
15
15
 
@@ -1,3 +1,4 @@
1
+ import type { MockedFunction } from "vitest";
1
2
  import axios from "axios";
2
3
  import { Router } from "react-router-dom";
3
4
 
@@ -10,10 +11,10 @@ import Social from "@ax/modules/Settings/Social";
10
11
  import history from "@ax/routes/history";
11
12
  import globalTheme from "@ax/themes/theme.json";
12
13
 
13
- import { act, cleanup, render, screen } from "../../../../../config/jest/test-utils";
14
+ import { act, cleanup, render, screen } from "../../../../../config/tests/test-utils";
14
15
 
15
- jest.mock("axios");
16
- const mockedAxios = axios as jest.MockedFunction<typeof axios>;
16
+ vi.mock("axios");
17
+ const mockedAxios = axios as MockedFunction<typeof axios>;
17
18
 
18
19
  beforeEach(() => {
19
20
  mockedAxios.mockResolvedValue({ status: 200, data: {}, statusText: "OK", headers: {}, config: {} as any });
@@ -1,3 +1,4 @@
1
+ import type { MockedFunction } from "vitest";
1
2
  import { Router } from "react-router-dom";
2
3
 
3
4
  import { parseTheme } from "@ax/helpers";
@@ -6,18 +7,18 @@ import { history } from "@ax/routes";
6
7
  import globalTheme from "@ax/themes/theme.json";
7
8
 
8
9
  import axios from "axios";
9
- import { mock } from "jest-mock-extended";
10
+ import { mock } from "vitest-mock-extended";
10
11
  import configureStore from "redux-mock-store";
11
12
  import thunk from "redux-thunk";
12
13
  import { ThemeProvider } from "styled-components";
13
14
 
14
- import { act, cleanup, render, screen } from "../../../../config/jest/test-utils";
15
+ import { act, cleanup, render, screen } from "../../../../config/tests/test-utils";
15
16
  import { structuredDataResponse } from "./../../../__mocks__/axios/SitesList";
16
17
  import { sitesDataMock, userDataMock } from "./../../../__mocks__/store/SitesList";
17
18
 
18
19
  afterEach(cleanup);
19
- jest.mock("axios");
20
- const mockedAxios = axios as jest.MockedFunction<typeof axios>;
20
+ vi.mock("axios");
21
+ const mockedAxios = axios as MockedFunction<typeof axios>;
21
22
 
22
23
  const mockStore = configureStore([thunk]);
23
24
  const defaultProps = mock<ISitesProps>();
@@ -6,12 +6,12 @@ import BulkHeader from "@ax/modules/Sites/SitesList/ListView/BulkHeader";
6
6
  import globalTheme from "@ax/themes/theme.json";
7
7
 
8
8
  import { act, cleanup, screen } from "@testing-library/react";
9
- import { mock } from "jest-mock-extended";
9
+ import { mock } from "vitest-mock-extended";
10
10
  import configureStore from "redux-mock-store";
11
11
  import thunk from "redux-thunk";
12
12
  import { ThemeProvider } from "styled-components";
13
13
 
14
- import { render } from "../../../../../../../config/jest/test-utils";
14
+ import { render } from "../../../../../../../config/tests/test-utils";
15
15
  import { defaultStore } from "./../../../../../../__mocks__/store/GenericStore";
16
16
 
17
17
  afterEach(cleanup);
@@ -1,3 +1,4 @@
1
+ import type { MockedFunction } from "vitest";
1
2
  import { Router } from "react-router-dom";
2
3
 
3
4
  import { parseTheme } from "@ax/helpers";
@@ -6,12 +7,12 @@ import { history } from "@ax/routes";
6
7
  import globalTheme from "@ax/themes/theme.json";
7
8
 
8
9
  import axios from "axios";
9
- import { mock } from "jest-mock-extended";
10
+ import { mock } from "vitest-mock-extended";
10
11
  import configureStore from "redux-mock-store";
11
12
  import thunk from "redux-thunk";
12
13
  import { ThemeProvider } from "styled-components";
13
14
 
14
- import { act, cleanup, fireEvent, render, screen, waitFor } from "./../../../../../config/jest/test-utils";
15
+ import { act, cleanup, fireEvent, render, screen, waitFor } from "./../../../../../config/tests/test-utils";
15
16
  import { sitesResponse } from "./../../../../__mocks__/axios/SitesList";
16
17
  import { sitesOptions } from "./../../../../__mocks__/axios/SitesListOptions";
17
18
  import { sitesDataMock, sitesDataNoThumbnailMock, userDataMock } from "./../../../../__mocks__/store/SitesList";
@@ -19,8 +20,8 @@ import { sitesDataMock, sitesDataNoThumbnailMock, userDataMock } from "./../../.
19
20
  afterEach(cleanup);
20
21
 
21
22
  const defaultProps = mock<ISitesListProps>();
22
- jest.mock("axios");
23
- const mockedAxios = axios as jest.MockedFunction<typeof axios>;
23
+ vi.mock("axios");
24
+ const mockedAxios = axios as MockedFunction<typeof axios>;
24
25
 
25
26
  const mockStore = configureStore([thunk]);
26
27
 
@@ -197,7 +198,7 @@ describe("Sites module events", () => {
197
198
  });
198
199
 
199
200
  it("should go to site on click recent site item", async () => {
200
- window.HTMLElement.prototype.scrollTo = jest.fn();
201
+ window.HTMLElement.prototype.scrollTo = vi.fn();
201
202
 
202
203
  await renderSitesList();
203
204
 
@@ -223,7 +224,7 @@ describe("Sites module events", () => {
223
224
  });
224
225
 
225
226
  it("should go to site on click list site item", async () => {
226
- window.HTMLElement.prototype.scrollTo = jest.fn();
227
+ window.HTMLElement.prototype.scrollTo = vi.fn();
227
228
 
228
229
  await renderSitesList();
229
230
 
@@ -21,9 +21,9 @@ const renderDataStep = (props = {}) =>
21
21
  <ThemeProvider theme={parseTheme(globalTheme)}>
22
22
  <DataStep
23
23
  form={defaultForm}
24
- setForm={jest.fn()}
25
- onClickNext={jest.fn()}
26
- onClickBack={jest.fn()}
24
+ setForm={vi.fn()}
25
+ onClickNext={vi.fn()}
26
+ onClickBack={vi.fn()}
27
27
  croppedImageUrl={null}
28
28
  {...props}
29
29
  />
@@ -66,21 +66,21 @@ describe("DataStep rendering", () => {
66
66
 
67
67
  describe("DataStep events", () => {
68
68
  it("should call onClickBack when Back button is clicked", () => {
69
- const onClickBack = jest.fn();
69
+ const onClickBack = vi.fn();
70
70
  renderDataStep({ onClickBack });
71
71
  fireEvent.click(screen.getByText("Back"));
72
72
  expect(onClickBack).toHaveBeenCalledTimes(1);
73
73
  });
74
74
 
75
75
  it("should call onClickNext when Next step button is clicked", () => {
76
- const onClickNext = jest.fn();
76
+ const onClickNext = vi.fn();
77
77
  renderDataStep({ onClickNext });
78
78
  fireEvent.click(screen.getByText("Next step"));
79
79
  expect(onClickNext).toHaveBeenCalledTimes(1);
80
80
  });
81
81
 
82
82
  it("should not call onClickNext when username is empty", () => {
83
- const onClickNext = jest.fn();
83
+ const onClickNext = vi.fn();
84
84
  renderDataStep({ onClickNext, form: { ...defaultForm, username: "" } });
85
85
  const nextButton = screen.getByText("Next step").closest("button");
86
86
  nextButton && fireEvent.click(nextButton);
@@ -68,8 +68,8 @@ const renderFinalStep = (props = {}) =>
68
68
  userRoles={[]}
69
69
  roles={mockRoles}
70
70
  sites={mockSites}
71
- onClose={jest.fn()}
72
- onViewProfile={jest.fn()}
71
+ onClose={vi.fn()}
72
+ onViewProfile={vi.fn()}
73
73
  {...props}
74
74
  />
75
75
  </ThemeProvider>,
@@ -142,14 +142,14 @@ describe("FinalStep learn items", () => {
142
142
 
143
143
  describe("FinalStep events", () => {
144
144
  it("should call onClose when Start Using Griddo is clicked", () => {
145
- const onClose = jest.fn();
145
+ const onClose = vi.fn();
146
146
  renderFinalStep({ onClose });
147
147
  fireEvent.click(screen.getByText("Start Using Griddo"));
148
148
  expect(onClose).toHaveBeenCalledTimes(1);
149
149
  });
150
150
 
151
151
  it("should call onViewProfile when View profile is clicked", () => {
152
- const onViewProfile = jest.fn();
152
+ const onViewProfile = vi.fn();
153
153
  renderFinalStep({ onViewProfile });
154
154
  fireEvent.click(screen.getByText("View profile"));
155
155
  expect(onViewProfile).toHaveBeenCalledTimes(1);