@griddo/ax 12.3.0-beta.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 (298) hide show
  1. package/config/__tests__/webpack5-migration.test.js +442 -0
  2. package/config/{jest/componentsMock.js → tests/componentsMock.cjs} +4 -1
  3. package/config/tests/reactEasyCropMock.js +15 -0
  4. package/config/tests/reactTimezoneMock.js +14 -0
  5. package/config/tests/setup.ts +41 -0
  6. package/config/webpack.config.js +183 -189
  7. package/config/webpackDevServer.config.js +63 -93
  8. package/config/webpackSchemas.config.js +6 -1
  9. package/package.json +33 -53
  10. package/public/img/icons/markdown.svg +6 -0
  11. package/scripts/build.js +4 -0
  12. package/scripts/start.js +38 -9
  13. package/src/__tests__/components/ActionMenu/ActionMenu.test.tsx +12 -12
  14. package/src/__tests__/components/Breadcrumb/Breadcrumb.test.tsx +2 -2
  15. package/src/__tests__/components/Browser/Browser.test.tsx +17 -25
  16. package/src/__tests__/components/BulkSelectionOptions/BulkSelectionOptions.test.tsx +3 -3
  17. package/src/__tests__/components/CategoryCell/CategoryCell.test.tsx +3 -2
  18. package/src/__tests__/components/ConfigPanel/ConfigPanel.test.tsx +4 -4
  19. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/ConnectedField.test.tsx +2 -2
  20. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/NavConnectedField/NavConnectedField.test.tsx +2 -2
  21. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/Field/Field.test.tsx +3 -3
  22. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/PageConnectedField.test.tsx +17 -14
  23. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/TemplateManager/TemplateManager.test.tsx +4 -4
  24. package/src/__tests__/components/ConfigPanel/Form/Form.test.tsx +7 -6
  25. package/src/__tests__/components/ConfigPanel/GlobalPageForm/GlobalPageForm.test.tsx +11 -11
  26. package/src/__tests__/components/ConfigPanel/Header/Header.test.tsx +11 -10
  27. package/src/__tests__/components/ConfigPanel/NavigationForm/Field/Field.test.tsx +2 -2
  28. package/src/__tests__/components/ConfigPanel/NavigationForm/NavigationForm.test.tsx +2 -2
  29. package/src/__tests__/components/ConfigPanel/PreviewForm/PreviewForm.test.tsx +4 -3
  30. package/src/__tests__/components/ContextMenu/ContextMenu.test.tsx +24 -24
  31. package/src/__tests__/components/DragAndDrop/DragAndDrop.test.tsx +6 -5
  32. package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +1 -1
  33. package/src/__tests__/components/EmptyState/EmptyState.test.tsx +2 -2
  34. package/src/__tests__/components/ErrorCenter/ErrorCenter.test.tsx +11 -11
  35. package/src/__tests__/components/FieldContainer/FieldContainer.test.tsx +4 -4
  36. package/src/__tests__/components/Fields/AnalyticsField/AnalyticsField.test.tsx +3 -3
  37. package/src/__tests__/components/Fields/AnalyticsField/PageAnalytics/PageAnalytics.test.tsx +4 -4
  38. package/src/__tests__/components/Fields/AnalyticsField/StructuredDataAnalytics/StructuredDataAnalytics.test.tsx +3 -3
  39. package/src/__tests__/components/Fields/ArrayFieldGroup/ArrayFieldGroup.test.tsx +6 -5
  40. package/src/__tests__/components/Fields/AsyncCheckGroup/AsyncCheckGroup.test.tsx +19 -18
  41. package/src/__tests__/components/Fields/AsyncSelect/AsyncSelect.test.tsx +4 -3
  42. package/src/__tests__/components/Fields/Button/Button.test.tsx +4 -3
  43. package/src/__tests__/components/Fields/CheckField/CheckField.test.tsx +5 -5
  44. package/src/__tests__/components/Fields/CheckGroup/CheckGroup.test.tsx +10 -10
  45. package/src/__tests__/components/Fields/ColorPicker/ColorPicker.test.tsx +7 -6
  46. package/src/__tests__/components/Fields/ComponentArray/ComponentArray.test.tsx +3 -3
  47. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/MixableComponentArray.test.tsx +45 -45
  48. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/PasteModuleButton/PasteModuleButton.test.tsx +7 -6
  49. package/src/__tests__/components/Fields/ComponentArray/SameComponentArray/SameComponentArray.test.tsx +7 -7
  50. package/src/__tests__/components/Fields/ComponentContainer/ComponentContainer.test.tsx +55 -55
  51. package/src/__tests__/components/Fields/ConditionalField/ConditionalField.test.tsx +1 -1
  52. package/src/__tests__/components/Fields/DateField/DateField.test.tsx +6 -5
  53. package/src/__tests__/components/Fields/FieldGroup/FieldGroup.test.tsx +2 -2
  54. package/src/__tests__/components/Fields/FileField/FileField.test.tsx +4 -4
  55. package/src/__tests__/components/Fields/HeadingField/HeadingField.test.tsx +2 -2
  56. package/src/__tests__/components/Fields/HiddenField/HiddenField.test.tsx +3 -3
  57. package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +8 -7
  58. package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +9 -8
  59. package/src/__tests__/components/Fields/MultiCheckSelect/MultiCheckSelect.test.tsx +1 -1
  60. package/src/__tests__/components/Fields/MultiCheckSelectGroup/MultiCheckSelectGroup.test.tsx +7 -6
  61. package/src/__tests__/components/Fields/NoteField/NoteField.test.tsx +1 -1
  62. package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +8 -8
  63. package/src/__tests__/components/Fields/RadioField/RadioField.test.tsx +2 -2
  64. package/src/__tests__/components/Fields/ReferenceField/ReferenceField.test.tsx +17 -16
  65. package/src/__tests__/components/Fields/RichText/RichText.test.tsx +1 -1
  66. package/src/__tests__/components/Fields/Select/Select.test.tsx +1 -1
  67. package/src/__tests__/components/Fields/SliderField/SliderField.test.tsx +5 -4
  68. package/src/__tests__/components/Fields/SummaryButton/SummaryButton.test.tsx +2 -2
  69. package/src/__tests__/components/Fields/TagField/TagField.test.tsx +9 -9
  70. package/src/__tests__/components/Fields/TextArea/TextArea.test.tsx +13 -9
  71. package/src/__tests__/components/Fields/TextField/TextField.test.tsx +8 -8
  72. package/src/__tests__/components/Fields/TimeField/HourInput/HourInput.test.tsx +7 -6
  73. package/src/__tests__/components/Fields/TimeField/TimeField.test.tsx +4 -3
  74. package/src/__tests__/components/Fields/ToggleField/ToggleField.test.tsx +2 -2
  75. package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +6 -6
  76. package/src/__tests__/components/Fields/TranslateButton/TranslateButton.test.tsx +13 -13
  77. package/src/__tests__/components/Fields/UniqueCheck/UniqueCheck.test.tsx +1 -1
  78. package/src/__tests__/components/Fields/UrlField/UrlField.test.tsx +20 -19
  79. package/src/__tests__/components/Fields/VisualUniqueSelection/ImageSelection/ImageSelection.test.tsx +3 -2
  80. package/src/__tests__/components/Fields/VisualUniqueSelection/ScrollableSelection/ScrollableSelection.test.tsx +4 -3
  81. package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx +1 -1
  82. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.atoms.test.tsx +11 -11
  83. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.helpers.test.tsx +13 -14
  84. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.test.tsx +28 -28
  85. package/src/__tests__/components/FieldsBehavior/FieldsBehavior.test.tsx +15 -14
  86. package/src/__tests__/components/FloatingMenu/FloatingMenu.test.tsx +36 -35
  87. package/src/__tests__/components/FloatingPanel/FloatingPanel.test.tsx +10 -10
  88. package/src/__tests__/components/GuardModal/GuardModal.test.tsx +1 -1
  89. package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorItem/ErrorItem.test.tsx +11 -11
  90. package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorsBanner.test.tsx +4 -4
  91. package/src/__tests__/components/HeadingsPreviewModal/HeadingsPreviewModal.test.tsx +15 -14
  92. package/src/__tests__/components/IconAction/IconAction.test.tsx +2 -2
  93. package/src/__tests__/components/ImageDragAndDrop/CropStep/CropStep.test.tsx +3 -3
  94. package/src/__tests__/components/ImageDragAndDrop/ImageDragAndDrop.test.tsx +7 -7
  95. package/src/__tests__/components/KeywordsPreviewModal/KeywordItem/KeywordItem.test.tsx +5 -5
  96. package/src/__tests__/components/KeywordsPreviewModal/KeywordsPreviewModal.test.tsx +14 -13
  97. package/src/__tests__/components/KeywordsPreviewModal/atoms.test.tsx +13 -13
  98. package/src/__tests__/components/LanguageMenu/LanguageMenu.test.tsx +6 -6
  99. package/src/__tests__/components/Lists/Lists.test.tsx +1 -1
  100. package/src/__tests__/components/Loader/Loader.test.tsx +1 -1
  101. package/src/__tests__/components/Login/Login.test.tsx +32 -32
  102. package/src/__tests__/components/Login/RecoveryModal/RecoveryModal.test.tsx +10 -9
  103. package/src/__tests__/components/MainWrapper/AppBar/AppBar.test.tsx +21 -21
  104. package/src/__tests__/components/MenuItem/MenuItem.test.tsx +5 -5
  105. package/src/__tests__/components/Modal/Modal.test.tsx +20 -20
  106. package/src/__tests__/components/Nav/Nav.test.tsx +2 -2
  107. package/src/__tests__/components/Notification/Notification.test.tsx +2 -2
  108. package/src/__tests__/components/Pagination/Pagination.test.tsx +13 -14
  109. package/src/__tests__/components/ProfileImage/ProfileImage.test.tsx +6 -7
  110. package/src/__tests__/components/ReorderArrows/ReorderArrows.test.tsx +4 -3
  111. package/src/__tests__/components/ResizePanel/ResizePanel.test.tsx +10 -11
  112. package/src/__tests__/components/RestrictionsModal/CurrentAccessList/CurrentAccessList.test.tsx +7 -6
  113. package/src/__tests__/components/RestrictionsModal/OptionsStep/OptionsStep.test.tsx +12 -11
  114. package/src/__tests__/components/RestrictionsModal/RestrictionsModal.test.tsx +11 -10
  115. package/src/__tests__/components/RestrictionsModal/RolesList/RolesList.test.tsx +8 -8
  116. package/src/__tests__/components/RestrictionsModal/UsersList/UsersList.test.tsx +16 -15
  117. package/src/__tests__/components/SearchField/SearchField.test.tsx +13 -13
  118. package/src/__tests__/components/SideModal/SideModal.test.tsx +25 -23
  119. package/src/__tests__/components/SubNav/SubNav.test.tsx +1 -1
  120. package/src/__tests__/components/TableFilters/CategoryFilter/CategoryFilter.test.tsx +9 -8
  121. package/src/__tests__/components/TableFilters/CustomizeFilters/CustomizeFilters.test.tsx +5 -5
  122. package/src/__tests__/components/TableFilters/DateFilter/DateFilter.test.tsx +8 -8
  123. package/src/__tests__/components/TableFilters/LiveFilter/LiveFilter.test.tsx +11 -10
  124. package/src/__tests__/components/TableFilters/NameFilter/NameFilter.test.tsx +10 -10
  125. package/src/__tests__/components/TableFilters/RoleFilter/RoleFilter.test.tsx +5 -5
  126. package/src/__tests__/components/TableFilters/SiteFilter/SiteFilter.test.tsx +10 -9
  127. package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +9 -9
  128. package/src/__tests__/components/TableFilters/TranslationsFilter/TranslationsFilter.test.tsx +8 -8
  129. package/src/__tests__/components/TableFilters/TypeFilter/TypeFilter.test.tsx +5 -5
  130. package/src/__tests__/components/TableFilters/UsersFilter/UsersFilter.test.tsx +8 -8
  131. package/src/__tests__/components/TableList/TableList.test.tsx +4 -4
  132. package/src/__tests__/components/Tabs/Tabs.test.tsx +8 -9
  133. package/src/__tests__/components/Tag/Tag.test.tsx +3 -3
  134. package/src/__tests__/components/Toast/Toast.test.tsx +6 -6
  135. package/src/__tests__/gainup-trace.test.ts +67 -0
  136. package/src/__tests__/hooks/modals.test.tsx +4 -4
  137. package/src/__tests__/hooks/users.test.tsx +6 -5
  138. package/src/__tests__/modules/FileDrive/MarkdownFormat.test.tsx +58 -0
  139. package/src/__tests__/modules/FramePreview/FramePreview.test.tsx +40 -39
  140. package/src/__tests__/modules/FramePreview/HeadingsOverlay/HeadingsOverlay.test.tsx +11 -11
  141. package/src/__tests__/modules/Settings/Integrations/Integrations.test.tsx +2 -2
  142. package/src/__tests__/modules/Settings/Social/Social.test.tsx +4 -3
  143. package/src/__tests__/modules/Sites/Sites.test.tsx +5 -4
  144. package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +2 -2
  145. package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +7 -6
  146. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/DataStep/DataStep.test.tsx +6 -6
  147. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/FinalStep/FinalStep.test.tsx +4 -4
  148. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/CropView/CropView.test.tsx +3 -3
  149. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/ImageStep.test.tsx +9 -5
  150. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/UploadView/UploadView.test.tsx +8 -6
  151. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/TimezoneStep/TimezoneStep.test.tsx +7 -7
  152. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeModal.test.tsx +1 -1
  153. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeStep/WelcomeStep.test.tsx +3 -3
  154. package/src/__tests__/modules/Users/Roles/BulkHeader/BulkHeader.test.tsx +3 -3
  155. package/src/__tests__/modules/Users/Roles/Roles.test.tsx +11 -10
  156. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/RoleItem.test.tsx +3 -3
  157. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RolesModal.test.tsx +3 -3
  158. package/src/__tests__/modules/Users/UserCreate/SiteItem/SiteItem.test.tsx +3 -3
  159. package/src/__tests__/modules/Users/UserCreate/UserCreate.test.tsx +6 -5
  160. package/src/__tests__/modules/Users/UserList/UserItem/UserItem.test.tsx +9 -9
  161. package/src/__tests__/modules/Users/UserList/UserList.test.tsx +4 -4
  162. package/src/components/Flag/components/index.ts +30 -0
  163. package/src/components/Flag/index.tsx +3 -5
  164. package/src/components/Icon/components/index.ts +229 -0
  165. package/src/components/Icon/index.tsx +3 -7
  166. package/src/constants/index.ts +1 -1
  167. package/src/helpers/files.tsx +2 -0
  168. package/src/modules/App/Routing/NavMenu/index.tsx +4 -2
  169. package/src/modules/FileDrive/FileFilters/Type/index.tsx +1 -0
  170. package/tsconfig.json +1 -1
  171. package/config/jest/cssTransform.js +0 -14
  172. package/config/jest/fileMock.js +0 -1
  173. package/config/jest/fileTransform.js +0 -40
  174. package/config/jest/reactEasyCropMock.js +0 -15
  175. package/config/jest/reactTimezoneMock.js +0 -13
  176. package/config/jest/setup.js +0 -31
  177. package/config/jest/styleMock.js +0 -1
  178. package/config/pnpTs.js +0 -15
  179. package/src/__tests__/aiup-trace.test.ts +0 -23
  180. /package/config/{jest/test-utils.js → tests/test-utils.jsx} +0 -0
  181. /package/src/components/Flag/components/{Ca_ES.js → Ca_ES.jsx} +0 -0
  182. /package/src/components/Flag/components/{De_DE.js → De_DE.jsx} +0 -0
  183. /package/src/components/Flag/components/{En_GB.js → En_GB.jsx} +0 -0
  184. /package/src/components/Flag/components/{Es_ES.js → Es_ES.jsx} +0 -0
  185. /package/src/components/Flag/components/{Eu_ES.js → Eu_ES.jsx} +0 -0
  186. /package/src/components/Flag/components/{Fr_FR.js → Fr_FR.jsx} +0 -0
  187. /package/src/components/Flag/components/{It_IT.js → It_IT.jsx} +0 -0
  188. /package/src/components/Flag/components/{Pt_PT.js → Pt_PT.jsx} +0 -0
  189. /package/src/components/Icon/components/{Active.js → Active.jsx} +0 -0
  190. /package/src/components/Icon/components/{Add.js → Add.jsx} +0 -0
  191. /package/src/components/Icon/components/{AddCircle.js → AddCircle.jsx} +0 -0
  192. /package/src/components/Icon/components/{Alert.js → Alert.jsx} +0 -0
  193. /package/src/components/Icon/components/{AlignLeft.js → AlignLeft.jsx} +0 -0
  194. /package/src/components/Icon/components/{Back.js → Back.jsx} +0 -0
  195. /package/src/components/Icon/components/{BulletList.js → BulletList.jsx} +0 -0
  196. /package/src/components/Icon/components/{Button.js → Button.jsx} +0 -0
  197. /package/src/components/Icon/components/{Calendar.js → Calendar.jsx} +0 -0
  198. /package/src/components/Icon/components/{CancelEvent.js → CancelEvent.jsx} +0 -0
  199. /package/src/components/Icon/components/{Category.js → Category.jsx} +0 -0
  200. /package/src/components/Icon/components/{Change.js → Change.jsx} +0 -0
  201. /package/src/components/Icon/components/{Close.js → Close.jsx} +0 -0
  202. /package/src/components/Icon/components/{ClosePanel.js → ClosePanel.jsx} +0 -0
  203. /package/src/components/Icon/components/{CodeBody.js → CodeBody.jsx} +0 -0
  204. /package/src/components/Icon/components/{CodeHead.js → CodeHead.jsx} +0 -0
  205. /package/src/components/Icon/components/{CodeHeadBody.js → CodeHeadBody.jsx} +0 -0
  206. /package/src/components/Icon/components/{Collapsed.js → Collapsed.jsx} +0 -0
  207. /package/src/components/Icon/components/{ColorPicker.js → ColorPicker.jsx} +0 -0
  208. /package/src/components/Icon/components/{Compose.js → Compose.jsx} +0 -0
  209. /package/src/components/Icon/components/{Copy.js → Copy.jsx} +0 -0
  210. /package/src/components/Icon/components/{Copy2.js → Copy2.jsx} +0 -0
  211. /package/src/components/Icon/components/{Data.js → Data.jsx} +0 -0
  212. /package/src/components/Icon/components/{DataAdd.js → DataAdd.jsx} +0 -0
  213. /package/src/components/Icon/components/{Deactivate.js → Deactivate.jsx} +0 -0
  214. /package/src/components/Icon/components/{Delete.js → Delete.jsx} +0 -0
  215. /package/src/components/Icon/components/{Desktop.js → Desktop.jsx} +0 -0
  216. /package/src/components/Icon/components/{Disabled.js → Disabled.jsx} +0 -0
  217. /package/src/components/Icon/components/{Done.js → Done.jsx} +0 -0
  218. /package/src/components/Icon/components/{DownArrow.js → DownArrow.jsx} +0 -0
  219. /package/src/components/Icon/components/{Download.js → Download.jsx} +0 -0
  220. /package/src/components/Icon/components/{Drag.js → Drag.jsx} +0 -0
  221. /package/src/components/Icon/components/{Duplicate.js → Duplicate.jsx} +0 -0
  222. /package/src/components/Icon/components/{Edit.js → Edit.jsx} +0 -0
  223. /package/src/components/Icon/components/{Empty.js → Empty.jsx} +0 -0
  224. /package/src/components/Icon/components/{EmptyCheck.js → EmptyCheck.jsx} +0 -0
  225. /package/src/components/Icon/components/{Extend.js → Extend.jsx} +0 -0
  226. /package/src/components/Icon/components/{File.js → File.jsx} +0 -0
  227. /package/src/components/Icon/components/{Filter.js → Filter.jsx} +0 -0
  228. /package/src/components/Icon/components/{Form.js → Form.jsx} +0 -0
  229. /package/src/components/Icon/components/{FullArrowDown.js → FullArrowDown.jsx} +0 -0
  230. /package/src/components/Icon/components/{FullArrowLeft.js → FullArrowLeft.jsx} +0 -0
  231. /package/src/components/Icon/components/{FullArrowRight.js → FullArrowRight.jsx} +0 -0
  232. /package/src/components/Icon/components/{FullArrowUp.js → FullArrowUp.jsx} +0 -0
  233. /package/src/components/Icon/components/{Grid.js → Grid.jsx} +0 -0
  234. /package/src/components/Icon/components/{Grid2.js → Grid2.jsx} +0 -0
  235. /package/src/components/Icon/components/{GriddoLogo.js → GriddoLogo.jsx} +0 -0
  236. /package/src/components/Icon/components/{HeroCard.js → HeroCard.jsx} +0 -0
  237. /package/src/components/Icon/components/{Hide.js → Hide.jsx} +0 -0
  238. /package/src/components/Icon/components/{History.js → History.jsx} +0 -0
  239. /package/src/components/Icon/components/{Home.js → Home.jsx} +0 -0
  240. /package/src/components/Icon/components/{Ia.js → Ia.jsx} +0 -0
  241. /package/src/components/Icon/components/{Image.js → Image.jsx} +0 -0
  242. /package/src/components/Icon/components/{Info.js → Info.jsx} +0 -0
  243. /package/src/components/Icon/components/{Laptop.js → Laptop.jsx} +0 -0
  244. /package/src/components/Icon/components/{LeftArrow.js → LeftArrow.jsx} +0 -0
  245. /package/src/components/Icon/components/{Link.js → Link.jsx} +0 -0
  246. /package/src/components/Icon/components/{Lock.js → Lock.jsx} +0 -0
  247. /package/src/components/Icon/components/{Log.js → Log.jsx} +0 -0
  248. /package/src/components/Icon/components/{Map.js → Map.jsx} +0 -0
  249. /package/src/components/Icon/components/{Menu.js → Menu.jsx} +0 -0
  250. /package/src/components/Icon/components/{Microsoft.js → Microsoft.jsx} +0 -0
  251. /package/src/components/Icon/components/{Modified.js → Modified.jsx} +0 -0
  252. /package/src/components/Icon/components/{Modules.js → Modules.jsx} +0 -0
  253. /package/src/components/Icon/components/{More.js → More.jsx} +0 -0
  254. /package/src/components/Icon/components/{NewFolder.js → NewFolder.jsx} +0 -0
  255. /package/src/components/Icon/components/{Offline.js → Offline.jsx} +0 -0
  256. /package/src/components/Icon/components/{OfflinePending.js → OfflinePending.jsx} +0 -0
  257. /package/src/components/Icon/components/{OpenOutside.js → OpenOutside.jsx} +0 -0
  258. /package/src/components/Icon/components/{OpenPanel.js → OpenPanel.jsx} +0 -0
  259. /package/src/components/Icon/components/{OutOfSection.js → OutOfSection.jsx} +0 -0
  260. /package/src/components/Icon/components/{Page.js → Page.jsx} +0 -0
  261. /package/src/components/Icon/components/{Party.js → Party.jsx} +0 -0
  262. /package/src/components/Icon/components/{Paste.js → Paste.jsx} +0 -0
  263. /package/src/components/Icon/components/{Phone.js → Phone.jsx} +0 -0
  264. /package/src/components/Icon/components/{PhotoLibrary.js → PhotoLibrary.jsx} +0 -0
  265. /package/src/components/Icon/components/{Power.js → Power.jsx} +0 -0
  266. /package/src/components/Icon/components/{Preview.js → Preview.jsx} +0 -0
  267. /package/src/components/Icon/components/{Project.js → Project.jsx} +0 -0
  268. /package/src/components/Icon/components/{QrCode.js → QrCode.jsx} +0 -0
  269. /package/src/components/Icon/components/{Question.js → Question.jsx} +0 -0
  270. /package/src/components/Icon/components/{Refresh.js → Refresh.jsx} +0 -0
  271. /package/src/components/Icon/components/{Republish.js → Republish.jsx} +0 -0
  272. /package/src/components/Icon/components/{RightArrow.js → RightArrow.jsx} +0 -0
  273. /package/src/components/Icon/components/{Scheduled.js → Scheduled.jsx} +0 -0
  274. /package/src/components/Icon/components/{Search.js → Search.jsx} +0 -0
  275. /package/src/components/Icon/components/{SendEmail.js → SendEmail.jsx} +0 -0
  276. /package/src/components/Icon/components/{Settings.js → Settings.jsx} +0 -0
  277. /package/src/components/Icon/components/{Share.js → Share.jsx} +0 -0
  278. /package/src/components/Icon/components/{Subsection.js → Subsection.jsx} +0 -0
  279. /package/src/components/Icon/components/{Success.js → Success.jsx} +0 -0
  280. /package/src/components/Icon/components/{SuccessSolid.js → SuccessSolid.jsx} +0 -0
  281. /package/src/components/Icon/components/{Sync.js → Sync.jsx} +0 -0
  282. /package/src/components/Icon/components/{Tablet.js → Tablet.jsx} +0 -0
  283. /package/src/components/Icon/components/{Translate.js → Translate.jsx} +0 -0
  284. /package/src/components/Icon/components/{Unlink.js → Unlink.jsx} +0 -0
  285. /package/src/components/Icon/components/{UpArrow.js → UpArrow.jsx} +0 -0
  286. /package/src/components/Icon/components/{UploadFile.js → UploadFile.jsx} +0 -0
  287. /package/src/components/Icon/components/{UploadPending.js → UploadPending.jsx} +0 -0
  288. /package/src/components/Icon/components/{UrlLink.js → UrlLink.jsx} +0 -0
  289. /package/src/components/Icon/components/{User.js → User.jsx} +0 -0
  290. /package/src/components/Icon/components/{Users.js → Users.jsx} +0 -0
  291. /package/src/components/Icon/components/{Video.js → Video.jsx} +0 -0
  292. /package/src/components/Icon/components/{View.js → View.jsx} +0 -0
  293. /package/src/components/Icon/components/{Warning.js → Warning.jsx} +0 -0
  294. /package/src/components/Icon/components/{Web.js → Web.jsx} +0 -0
  295. /package/src/components/Icon/components/{Working.js → Working.jsx} +0 -0
  296. /package/src/components/Loader/components/{Circle.js → Circle.jsx} +0 -0
  297. /package/src/components/Loader/components/{Dots.js → Dots.jsx} +0 -0
  298. /package/src/components/Loader/components/{SmallCircle.js → SmallCircle.jsx} +0 -0
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { CalledWithMock, mock } from "jest-mock-extended";
4
+ import { CalledWithMock, mock } from "vitest-mock-extended";
5
5
  import { render, screen, cleanup, fireEvent } from "@testing-library/react";
6
6
 
7
7
  import { parseTheme } from "@ax/helpers";
@@ -13,7 +13,7 @@ afterEach(cleanup);
13
13
  const defaultProps = mock<IStatusFilterProps>();
14
14
  describe("StatusFilter component rendering", () => {
15
15
  it("should render date filter", () => {
16
- const onClickMock = jest.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
16
+ const onClickMock = vi.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
17
17
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
18
18
  defaultProps.sortedState = { isAscending: false, sortedByDate: false, sortedByTitle: false, sortedByURL: false };
19
19
  defaultProps.sortItems = onClickMock;
@@ -31,7 +31,7 @@ describe("StatusFilter component rendering", () => {
31
31
  });
32
32
 
33
33
  it("should render interactive arrow if not filter selected", () => {
34
- const onClickMock = jest.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
34
+ const onClickMock = vi.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
35
35
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
36
36
  defaultProps.sortedState = { isAscending: false, sortedByDate: false, sortedByTitle: false, sortedByURL: false };
37
37
  defaultProps.sortItems = onClickMock;
@@ -48,7 +48,7 @@ describe("StatusFilter component rendering", () => {
48
48
  });
49
49
 
50
50
  it("should render FullArrowDown icon if is filtered by most recent", () => {
51
- const onClickMock = jest.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
51
+ const onClickMock = vi.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
52
52
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
53
53
  defaultProps.sortedState = { isAscending: false, sortedByDate: true, sortedByTitle: false, sortedByURL: false };
54
54
  defaultProps.sortItems = onClickMock;
@@ -67,7 +67,7 @@ describe("StatusFilter component rendering", () => {
67
67
 
68
68
  describe("StatusFilter events", () => {
69
69
  it("should render check group on click", () => {
70
- const onClickMock = jest.fn();
70
+ const onClickMock = vi.fn();
71
71
  defaultProps.sortedState = { isAscending: false, sortedByDate: false };
72
72
  defaultProps.sortItems = onClickMock as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
73
73
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
@@ -87,7 +87,7 @@ describe("StatusFilter events", () => {
87
87
  });
88
88
 
89
89
  it("should call sortItems function with 'modified, true' as param when it's not structured data and is ascending", async () => {
90
- const onClickMock = jest.fn();
90
+ const onClickMock = vi.fn();
91
91
  defaultProps.sortedState = { isAscending: false, sortedByDate: false };
92
92
  defaultProps.sortItems = onClickMock as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
93
93
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
@@ -113,7 +113,7 @@ describe("StatusFilter events", () => {
113
113
  });
114
114
 
115
115
  it("should call sortItems function with 'date, true' as param when it's not structured data and is asceding", async () => {
116
- const onClickMock = jest.fn();
116
+ const onClickMock = vi.fn();
117
117
  defaultProps.sortedState = { isAscending: false, sortedByDate: false };
118
118
  defaultProps.sortItems = onClickMock as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
119
119
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
@@ -140,7 +140,7 @@ describe("StatusFilter events", () => {
140
140
  });
141
141
 
142
142
  it("should call sortItems function with 'modified, false' as param when it's not structured data and is not ascending", async () => {
143
- const onClickMock = jest.fn();
143
+ const onClickMock = vi.fn();
144
144
  defaultProps.sortedState = { isAscending: false, sortedByDate: false };
145
145
  defaultProps.sortItems = onClickMock as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
146
146
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
@@ -168,7 +168,7 @@ describe("StatusFilter events", () => {
168
168
  });
169
169
 
170
170
  it("should call sortItems function with 'date, false' as param when it's not structured data and is not asceding", async () => {
171
- const onClickMock = jest.fn();
171
+ const onClickMock = vi.fn();
172
172
  defaultProps.sortedState = { isAscending: false, sortedByDate: false };
173
173
  defaultProps.sortItems = onClickMock as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
174
174
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { CalledWithMock, mock } from "jest-mock-extended";
4
+ import { CalledWithMock, mock } from "vitest-mock-extended";
5
5
 
6
6
  import { render, screen, cleanup, fireEvent } from "@testing-library/react";
7
7
 
@@ -15,7 +15,7 @@ afterEach(cleanup);
15
15
  const defaultProps = mock<ITranslationsFilterProps>();
16
16
  describe("TranslationsFilter component rendering", () => {
17
17
  it("should render name filter", () => {
18
- const onClickMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
18
+ const onClickMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
19
19
  ((pointer: string, filter: IQueryValue[]) => void);
20
20
  defaultProps.value = [{ value: "all", label: "All" }];
21
21
  defaultProps.filterItems = onClickMock;
@@ -32,7 +32,7 @@ describe("TranslationsFilter component rendering", () => {
32
32
  });
33
33
 
34
34
  it("should render icon's wrapper", () => {
35
- const onClickMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
35
+ const onClickMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
36
36
  ((pointer: string, filter: IQueryValue[]) => void);
37
37
  defaultProps.value = [{ value: "all", label: "All" }];
38
38
  defaultProps.filterItems = onClickMock;
@@ -47,7 +47,7 @@ describe("TranslationsFilter component rendering", () => {
47
47
  });
48
48
 
49
49
  it("should render options", async () => {
50
- const onClickMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
50
+ const onClickMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
51
51
  ((pointer: string, filter: IQueryValue[]) => void);
52
52
  defaultProps.value = [{ value: "all", label: "All" }];
53
53
  defaultProps.filterItems = onClickMock;
@@ -71,7 +71,7 @@ describe("TranslationsFilter component rendering", () => {
71
71
 
72
72
  describe("TranslationsFilter events", () => {
73
73
  it("should render check group on click", () => {
74
- const onClickMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
74
+ const onClickMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
75
75
  ((pointer: string, filter: IQueryValue[]) => void);
76
76
  defaultProps.value = [{ value: "all", label: "All" }];
77
77
  defaultProps.filterItems = onClickMock;
@@ -91,7 +91,7 @@ describe("TranslationsFilter events", () => {
91
91
  });
92
92
 
93
93
  it("should call filterItems with 'all' on click 'All' option", async () => {
94
- const onClickMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
94
+ const onClickMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
95
95
  ((pointer: string, filter: IQueryValue[]) => void);
96
96
  defaultProps.value = [{ value: "all", label: "All" }];
97
97
  defaultProps.filterItems = onClickMock;
@@ -113,7 +113,7 @@ describe("TranslationsFilter events", () => {
113
113
  });
114
114
 
115
115
  it("should call filterItems with 'no' on click 'Not translated content' option", async () => {
116
- const onClickMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
116
+ const onClickMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
117
117
  ((pointer: string, filter: IQueryValue[]) => void);
118
118
  defaultProps.value = [{ value: "all", label: "All" }];
119
119
  defaultProps.filterItems = onClickMock;
@@ -135,7 +135,7 @@ describe("TranslationsFilter events", () => {
135
135
  });
136
136
 
137
137
  it("should close floating menu when option is checked", async () => {
138
- const onClickMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
138
+ const onClickMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]> &
139
139
  ((pointer: string, filter: IQueryValue[]) => void);
140
140
  defaultProps.value = [{ value: "all", label: "All" }];
141
141
  defaultProps.filterItems = onClickMock;
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { CalledWithMock, mock } from "jest-mock-extended";
4
+ import { CalledWithMock, mock } from "vitest-mock-extended";
5
5
  import { render, screen, cleanup, fireEvent } from "@testing-library/react";
6
6
 
7
7
  import TypeFilter, { ITypeFilterProps } from "@ax/components/TableFilters/TypeFilter";
@@ -32,7 +32,7 @@ describe("TypeFilter component rendering", () => {
32
32
  },
33
33
  ];
34
34
  defaultProps.pointer = "type";
35
- defaultProps.filterItems = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]>;
35
+ defaultProps.filterItems = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]>;
36
36
 
37
37
  render(
38
38
  <ThemeProvider theme={parseTheme(globalTheme)}>
@@ -66,7 +66,7 @@ describe("TypeFilter events", () => {
66
66
  },
67
67
  ];
68
68
  defaultProps.pointer = "type";
69
- defaultProps.filterItems = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]>;
69
+ defaultProps.filterItems = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]>;
70
70
 
71
71
  render(
72
72
  <ThemeProvider theme={parseTheme(globalTheme)}>
@@ -104,7 +104,7 @@ describe("TypeFilter events", () => {
104
104
  },
105
105
  ];
106
106
  defaultProps.pointer = "type";
107
- const onChangeMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]>;
107
+ const onChangeMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]>;
108
108
  defaultProps.filterItems = onChangeMock;
109
109
 
110
110
  render(
@@ -145,7 +145,7 @@ describe("TypeFilter events", () => {
145
145
  },
146
146
  ];
147
147
  defaultProps.pointer = "type";
148
- const onChangeMock = jest.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]>;
148
+ const onChangeMock = vi.fn() as CalledWithMock<void, [pointer: string, filter: IQueryValue[]]>;
149
149
  defaultProps.filterItems = onChangeMock;
150
150
 
151
151
  render(
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { CalledWithMock, mock } from "jest-mock-extended";
4
+ import { CalledWithMock, mock } from "vitest-mock-extended";
5
5
 
6
6
  import { render, screen, cleanup, fireEvent } from "@testing-library/react";
7
7
 
@@ -14,7 +14,7 @@ afterEach(cleanup);
14
14
  const defaultProps = mock<IUsersFilterProps>();
15
15
  describe("UsersFilter component rendering", () => {
16
16
  it("should render users filter", () => {
17
- const onClickMock = jest.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
17
+ const onClickMock = vi.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
18
18
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
19
19
  defaultProps.sortedState = { isAscending: true, sortedByTitle: false, sortedByUsers: true };
20
20
 
@@ -32,7 +32,7 @@ describe("UsersFilter component rendering", () => {
32
32
  });
33
33
 
34
34
  it("should render interactive arrow if not filter selected", () => {
35
- const onClickMock = jest.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
35
+ const onClickMock = vi.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
36
36
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
37
37
  defaultProps.sortedState = { isAscending: true, sortedByTitle: false, sortedByUsers: false };
38
38
  defaultProps.sortItems = onClickMock;
@@ -48,7 +48,7 @@ describe("UsersFilter component rendering", () => {
48
48
  });
49
49
 
50
50
  it("should not render interactive arrow if filter selected", () => {
51
- const onClickMock = jest.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
51
+ const onClickMock = vi.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
52
52
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
53
53
  defaultProps.sortedState = { isAscending: false, sortedByTitle: false, sortedByUsers: true };
54
54
  defaultProps.sortItems = onClickMock;
@@ -64,7 +64,7 @@ describe("UsersFilter component rendering", () => {
64
64
  });
65
65
 
66
66
  it("should render FullArrowUp icon if is filtered by ascending users", () => {
67
- const onClickMock = jest.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
67
+ const onClickMock = vi.fn() as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
68
68
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
69
69
  defaultProps.sortedState = { isAscending: true, sortedByTitle: false, sortedByUsers: true };
70
70
  defaultProps.sortItems = onClickMock;
@@ -82,7 +82,7 @@ describe("UsersFilter component rendering", () => {
82
82
 
83
83
  describe("UsersFilter events", () => {
84
84
  it("should render check group on click", () => {
85
- const onClickMock = jest.fn();
85
+ const onClickMock = vi.fn();
86
86
  defaultProps.sortedState = { isAscending: true, sortedByTitle: false, sortedByUsers: true };
87
87
  defaultProps.sortItems = onClickMock as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
88
88
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
@@ -105,7 +105,7 @@ describe("UsersFilter events", () => {
105
105
  });
106
106
 
107
107
  it("should call filterItems with isAscending on click 'Ascendent' option", async () => {
108
- const onClickMock = jest.fn();
108
+ const onClickMock = vi.fn();
109
109
  defaultProps.sortedState = { isAscending: true, sortedByTitle: false, sortedByUsers: true };
110
110
  defaultProps.sortItems = onClickMock as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
111
111
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
@@ -129,7 +129,7 @@ describe("UsersFilter events", () => {
129
129
  });
130
130
 
131
131
  it("should call filterItems with isAscending false on click 'Descendent' option", async () => {
132
- const onClickMock = jest.fn();
132
+ const onClickMock = vi.fn();
133
133
  defaultProps.sortedState = { isAscending: true, sortedByTitle: false, sortedByUsers: true };
134
134
  defaultProps.sortItems = onClickMock as CalledWithMock<any, [orderPointer: IQueryValue[], isAscendent: boolean]> &
135
135
  ((orderPointer: IQueryValue[], isAscendent: boolean) => any);
@@ -1,16 +1,16 @@
1
1
  import * as 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
 
7
7
  import globalTheme from "@ax/themes/theme.json";
8
8
  import TableList, { ITableListProps } from "@ax/components/TableList";
9
- import { render, cleanup, screen } from "../../../../config/jest/test-utils";
9
+ import { render, cleanup, screen } from "../../../../config/tests/test-utils";
10
10
 
11
11
  afterEach(() => {
12
12
  cleanup();
13
- jest.resetAllMocks();
13
+ vi.resetAllMocks();
14
14
  });
15
15
 
16
16
  const initialStore = {
@@ -21,7 +21,7 @@ const initialStore = {
21
21
 
22
22
  const mockStore = configureStore();
23
23
  const defaultProps = mock<ITableListProps>();
24
- const setPage = jest.fn();
24
+ const setPage = vi.fn();
25
25
 
26
26
  const pagination = { currPage: 1, itemsPerPage: 50, setPage: setPage, totalItems: 3 };
27
27
 
@@ -1,8 +1,7 @@
1
1
  import * as React from "react";
2
2
 
3
- import "jest-styled-components";
4
3
  import { ThemeProvider } from "styled-components";
5
- import { mock } from "jest-mock-extended";
4
+ import { mock } from "vitest-mock-extended";
6
5
 
7
6
  import { render, screen, cleanup, fireEvent } from "@testing-library/react";
8
7
 
@@ -18,7 +17,7 @@ describe("Tabs component rendering", () => {
18
17
  it("should render tabs", () => {
19
18
  defaultProps.tabs = ["tab1", "tab2"];
20
19
  defaultProps.active = "tab1";
21
- const setSelectedTabAction = jest.fn();
20
+ const setSelectedTabAction = vi.fn();
22
21
  defaultProps.setSelectedTab = setSelectedTabAction;
23
22
 
24
23
  render(
@@ -38,7 +37,7 @@ describe("Tabs component rendering", () => {
38
37
  defaultProps.tabs = undefined;
39
38
  defaultProps.icons = undefined;
40
39
  defaultProps.active = "tab1";
41
- const setSelectedTabAction = jest.fn();
40
+ const setSelectedTabAction = vi.fn();
42
41
  defaultProps.setSelectedTab = setSelectedTabAction;
43
42
 
44
43
  render(
@@ -55,7 +54,7 @@ describe("Tabs component rendering", () => {
55
54
  it("should call set selected tab action on click", async () => {
56
55
  defaultProps.tabs = ["tab1", "tab2"];
57
56
  defaultProps.active = "tab1";
58
- const setSelectedTabAction = jest.fn();
57
+ const setSelectedTabAction = vi.fn();
59
58
  defaultProps.setSelectedTab = setSelectedTabAction;
60
59
 
61
60
  render(
@@ -130,7 +129,7 @@ describe("Tabs component rendering", () => {
130
129
  { name: "view", text: "Preview mode" },
131
130
  ];
132
131
  defaultProps.active = "edit";
133
- const setSelectedTabAction = jest.fn();
132
+ const setSelectedTabAction = vi.fn();
134
133
  defaultProps.setSelectedTab = setSelectedTabAction;
135
134
 
136
135
  render(
@@ -150,7 +149,7 @@ describe("Tabs component events", () => {
150
149
  it("should set tab as active on click", async () => {
151
150
  defaultProps.tabs = ["tab1", "tab2"];
152
151
  defaultProps.active = "tab1";
153
- const setSelectedTabAction = jest.fn();
152
+ const setSelectedTabAction = vi.fn();
154
153
  defaultProps.setSelectedTab = setSelectedTabAction;
155
154
 
156
155
  render(
@@ -172,7 +171,7 @@ describe("Tabs component events", () => {
172
171
  { name: "view", text: "Preview mode" },
173
172
  ];
174
173
  defaultProps.active = "edit";
175
- const setSelectedTabAction = jest.fn();
174
+ const setSelectedTabAction = vi.fn();
176
175
  defaultProps.setSelectedTab = setSelectedTabAction;
177
176
 
178
177
  render(
@@ -191,7 +190,7 @@ describe("Tabs component events", () => {
191
190
  { name: "view", text: "Preview mode" },
192
191
  ];
193
192
  defaultProps.active = "edit";
194
- const setSelectedTabAction = jest.fn();
193
+ const setSelectedTabAction = vi.fn();
195
194
  defaultProps.setSelectedTab = setSelectedTabAction;
196
195
 
197
196
  render(
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { mock } from "jest-mock-extended";
4
+ import { mock } from "vitest-mock-extended";
5
5
 
6
6
  import { render, screen, cleanup, fireEvent } from "@testing-library/react";
7
7
  import { parseTheme } from "@ax/helpers";
@@ -88,7 +88,7 @@ describe("Tag component rendering", () => {
88
88
  it("should render delete icon when onDeleteAction is defined", () => {
89
89
  defaultProps.type = "fixed";
90
90
  defaultProps.text = "Modules";
91
- const deleteAction = jest.fn();
91
+ const deleteAction = vi.fn();
92
92
  defaultProps.onDeleteAction = deleteAction;
93
93
 
94
94
  render(
@@ -106,7 +106,7 @@ describe("Tag component events", () => {
106
106
  it("should called deleteAction when click delete button", () => {
107
107
  defaultProps.type = "fixed";
108
108
  defaultProps.text = "Modules";
109
- const deleteAction = jest.fn();
109
+ const deleteAction = vi.fn();
110
110
  defaultProps.onDeleteAction = deleteAction;
111
111
 
112
112
  render(
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
 
3
3
  import { ThemeProvider } from "styled-components";
4
- import { mock } from "jest-mock-extended";
4
+ import { mock } from "vitest-mock-extended";
5
5
  import { render, screen, cleanup, fireEvent } from "@testing-library/react";
6
6
  import { parseTheme } from "@ax/helpers";
7
7
 
@@ -10,8 +10,8 @@ import globalTheme from "@ax/themes/theme.json";
10
10
 
11
11
  afterEach(cleanup);
12
12
 
13
- jest.mock("react-router-dom", () => ({
14
- ...jest.requireActual("react-router-dom"),
13
+ vi.mock("react-router-dom", async () => ({
14
+ ...(await vi.importActual("react-router-dom")),
15
15
  useLocation: () => ({
16
16
  pathname: "localhost:3000/example/path",
17
17
  }),
@@ -20,8 +20,8 @@ jest.mock("react-router-dom", () => ({
20
20
  const defaultProps = mock<IToastProps>();
21
21
 
22
22
  describe("Toast component rendering", () => {
23
- jest.useFakeTimers();
24
- jest.spyOn(global, "setTimeout");
23
+ vi.useFakeTimers();
24
+ vi.spyOn(global, "setTimeout");
25
25
 
26
26
  it("should render the component", () => {
27
27
  defaultProps.message = "1 module copied to clipboard";
@@ -66,7 +66,7 @@ describe("Toast component rendering", () => {
66
66
  describe("Toast component events", () => {
67
67
  it("should render the undo button when action", () => {
68
68
  defaultProps.message = "1 module copied to clipboard";
69
- defaultProps.action = jest.fn();
69
+ defaultProps.action = vi.fn();
70
70
 
71
71
  render(
72
72
  <ThemeProvider theme={parseTheme(globalTheme)}>
@@ -0,0 +1,67 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { join } from "node:path";
5
+
6
+ // GAINUP: la trazabilidad spec↔test es parte del contrato del paquete.
7
+ // El tooling GAINUP no vive en el repo: se instala aparte, en ~/.claude/gainup, y el repo
8
+ // solo lleva los artefactos (specs, config). Por eso este guardián se SALTA cuando el
9
+ // validador no está instalado: un clon sin el tooling no debe comerse rojos de una capa
10
+ // que no puede operar. Con el tooling presente corre igual que siempre.
11
+ // Corremos en --strict, como cx y render: errores (link-rot, UC active sin test,
12
+ // trace roto) y avisos (AC sin test, UC sin indexar en el README) ponen la suite
13
+ // en rojo. Sin --strict la red de este paquete sería más fina que la de sus
14
+ // vecinos sin que se viera.
15
+ const PKG_ROOT = join(__dirname, "..", ".."); // src/__tests__ -> griddo-ax
16
+ const TRACE = join(homedir(), ".claude", "gainup", "scripts", "gainup-trace.mjs");
17
+
18
+ // GAINUP se instala como plugin de Claude Code, y su ruta de instalación es versionada
19
+ // (…/plugins/cache/<marketplace>/gainup/<versión>/): el alias de arriba lo mantiene el hook
20
+ // SessionStart del plugin, porque este arnés corre desde `yarn` y no tiene ${CLAUDE_PLUGIN_ROOT}.
21
+ //
22
+ // «Sin instalar» es un estado legítimo y el guardián se salta. «Instalado pero sin resolver»
23
+ // no lo es: sería un verde por no haber validado nada — el verde falso contra el que está
24
+ // montada esta capa. Ese caso revienta nombrando el motivo en vez de saltarse en silencio.
25
+ const PLUGINS_DB = join(homedir(), ".claude", "plugins", "installed_plugins.json");
26
+ function gainupPluginInstalled(): boolean {
27
+ try {
28
+ const db = JSON.parse(readFileSync(PLUGINS_DB, "utf8")) as { plugins?: Record<string, unknown> };
29
+ return Object.keys(db.plugins ?? {}).some((key) => key.startsWith("gainup@"));
30
+ } catch {
31
+ return false; // sin fichero o ilegible: no hay plugin del que hablar
32
+ }
33
+ }
34
+
35
+ if (gainupPluginInstalled() && !existsSync(TRACE)) {
36
+ throw new Error(
37
+ `GAINUP consta instalado como plugin pero el validador no está en ${TRACE}. ` +
38
+ "Sin él este guardián se saltaría y la suite daría verde sin haber validado nada. " +
39
+ "Abre una sesión de Claude Code (el hook del plugin recrea el alias) o enlázalo a mano.",
40
+ );
41
+ }
42
+
43
+ // El validador deduce la raíz del monorepo subiendo desde el cwd; Jest corre desde el
44
+ // directorio del paquete, así que se la pasamos explícita.
45
+ const ENV = { ...process.env, GAINUP_REPO_ROOT: join(PKG_ROOT, "..", "..") };
46
+
47
+ // Jest no tiene `describe.skipIf` (es de Vitest): el ternario es su equivalente.
48
+ const describeIfInstalled = existsSync(TRACE) ? describe : describe.skip;
49
+
50
+ describeIfInstalled("GAINUP traceability", () => {
51
+ it("sin link-rot, UC sin test ni avisos (--strict)", () => {
52
+ let output = "";
53
+ let ok = true;
54
+ try {
55
+ output = execFileSync(process.execPath, [TRACE, "griddo-ax", "--strict"], {
56
+ encoding: "utf8",
57
+ env: ENV,
58
+ });
59
+ } catch (error) {
60
+ ok = false;
61
+ const e = error as { stdout?: string; stderr?: string };
62
+ output = `${e.stdout ?? ""}${e.stderr ?? ""}`;
63
+ }
64
+ if (!ok) console.error(output);
65
+ expect(ok).toBe(true);
66
+ });
67
+ });
@@ -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
+ });