@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.
- package/config/{jest/componentsMock.js → tests/componentsMock.cjs} +4 -1
- package/config/tests/reactEasyCropMock.js +15 -0
- package/config/tests/reactTimezoneMock.js +14 -0
- package/config/tests/setup.ts +41 -0
- package/package.json +15 -29
- package/public/img/icons/markdown.svg +6 -0
- package/src/__tests__/components/ActionMenu/ActionMenu.test.tsx +12 -12
- package/src/__tests__/components/Breadcrumb/Breadcrumb.test.tsx +2 -2
- package/src/__tests__/components/Browser/Browser.test.tsx +17 -25
- package/src/__tests__/components/BulkSelectionOptions/BulkSelectionOptions.test.tsx +3 -3
- package/src/__tests__/components/CategoryCell/CategoryCell.test.tsx +3 -2
- package/src/__tests__/components/ConfigPanel/ConfigPanel.test.tsx +4 -4
- package/src/__tests__/components/ConfigPanel/Form/ConnectedField/ConnectedField.test.tsx +2 -2
- package/src/__tests__/components/ConfigPanel/Form/ConnectedField/NavConnectedField/NavConnectedField.test.tsx +2 -2
- package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/Field/Field.test.tsx +3 -3
- package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/PageConnectedField.test.tsx +17 -14
- package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/TemplateManager/TemplateManager.test.tsx +4 -4
- package/src/__tests__/components/ConfigPanel/Form/Form.test.tsx +7 -6
- package/src/__tests__/components/ConfigPanel/GlobalPageForm/GlobalPageForm.test.tsx +11 -11
- package/src/__tests__/components/ConfigPanel/Header/Header.test.tsx +11 -10
- package/src/__tests__/components/ConfigPanel/NavigationForm/Field/Field.test.tsx +2 -2
- package/src/__tests__/components/ConfigPanel/NavigationForm/NavigationForm.test.tsx +2 -2
- package/src/__tests__/components/ConfigPanel/PreviewForm/PreviewForm.test.tsx +4 -3
- package/src/__tests__/components/ContextMenu/ContextMenu.test.tsx +24 -24
- package/src/__tests__/components/DragAndDrop/DragAndDrop.test.tsx +6 -5
- package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +1 -1
- package/src/__tests__/components/EmptyState/EmptyState.test.tsx +2 -2
- package/src/__tests__/components/ErrorCenter/ErrorCenter.test.tsx +11 -11
- package/src/__tests__/components/FieldContainer/FieldContainer.test.tsx +4 -4
- package/src/__tests__/components/Fields/AnalyticsField/AnalyticsField.test.tsx +3 -3
- package/src/__tests__/components/Fields/AnalyticsField/PageAnalytics/PageAnalytics.test.tsx +4 -4
- package/src/__tests__/components/Fields/AnalyticsField/StructuredDataAnalytics/StructuredDataAnalytics.test.tsx +3 -3
- package/src/__tests__/components/Fields/ArrayFieldGroup/ArrayFieldGroup.test.tsx +6 -5
- package/src/__tests__/components/Fields/AsyncCheckGroup/AsyncCheckGroup.test.tsx +19 -18
- package/src/__tests__/components/Fields/AsyncSelect/AsyncSelect.test.tsx +4 -3
- package/src/__tests__/components/Fields/Button/Button.test.tsx +4 -3
- package/src/__tests__/components/Fields/CheckField/CheckField.test.tsx +5 -5
- package/src/__tests__/components/Fields/CheckGroup/CheckGroup.test.tsx +10 -10
- package/src/__tests__/components/Fields/ColorPicker/ColorPicker.test.tsx +7 -6
- package/src/__tests__/components/Fields/ComponentArray/ComponentArray.test.tsx +3 -3
- package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/MixableComponentArray.test.tsx +45 -45
- package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/PasteModuleButton/PasteModuleButton.test.tsx +7 -6
- package/src/__tests__/components/Fields/ComponentArray/SameComponentArray/SameComponentArray.test.tsx +7 -7
- package/src/__tests__/components/Fields/ComponentContainer/ComponentContainer.test.tsx +55 -55
- package/src/__tests__/components/Fields/ConditionalField/ConditionalField.test.tsx +1 -1
- package/src/__tests__/components/Fields/DateField/DateField.test.tsx +6 -5
- package/src/__tests__/components/Fields/FieldGroup/FieldGroup.test.tsx +2 -2
- package/src/__tests__/components/Fields/FileField/FileField.test.tsx +4 -4
- package/src/__tests__/components/Fields/HeadingField/HeadingField.test.tsx +2 -2
- package/src/__tests__/components/Fields/HiddenField/HiddenField.test.tsx +3 -3
- package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +8 -7
- package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +9 -8
- package/src/__tests__/components/Fields/MultiCheckSelect/MultiCheckSelect.test.tsx +1 -1
- package/src/__tests__/components/Fields/MultiCheckSelectGroup/MultiCheckSelectGroup.test.tsx +7 -6
- package/src/__tests__/components/Fields/NoteField/NoteField.test.tsx +1 -1
- package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +8 -8
- package/src/__tests__/components/Fields/RadioField/RadioField.test.tsx +2 -2
- package/src/__tests__/components/Fields/ReferenceField/ReferenceField.test.tsx +17 -16
- package/src/__tests__/components/Fields/RichText/RichText.test.tsx +1 -1
- package/src/__tests__/components/Fields/Select/Select.test.tsx +1 -1
- package/src/__tests__/components/Fields/SliderField/SliderField.test.tsx +5 -4
- package/src/__tests__/components/Fields/SummaryButton/SummaryButton.test.tsx +2 -2
- package/src/__tests__/components/Fields/TagField/TagField.test.tsx +9 -9
- package/src/__tests__/components/Fields/TextArea/TextArea.test.tsx +13 -9
- package/src/__tests__/components/Fields/TextField/TextField.test.tsx +8 -8
- package/src/__tests__/components/Fields/TimeField/HourInput/HourInput.test.tsx +7 -6
- package/src/__tests__/components/Fields/TimeField/TimeField.test.tsx +4 -3
- package/src/__tests__/components/Fields/ToggleField/ToggleField.test.tsx +2 -2
- package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +6 -6
- package/src/__tests__/components/Fields/TranslateButton/TranslateButton.test.tsx +13 -13
- package/src/__tests__/components/Fields/UniqueCheck/UniqueCheck.test.tsx +1 -1
- package/src/__tests__/components/Fields/UrlField/UrlField.test.tsx +20 -19
- package/src/__tests__/components/Fields/VisualUniqueSelection/ImageSelection/ImageSelection.test.tsx +3 -2
- package/src/__tests__/components/Fields/VisualUniqueSelection/ScrollableSelection/ScrollableSelection.test.tsx +4 -3
- package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx +1 -1
- package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.atoms.test.tsx +11 -11
- package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.helpers.test.tsx +13 -14
- package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.test.tsx +28 -28
- package/src/__tests__/components/FieldsBehavior/FieldsBehavior.test.tsx +15 -14
- package/src/__tests__/components/FloatingMenu/FloatingMenu.test.tsx +36 -35
- package/src/__tests__/components/FloatingPanel/FloatingPanel.test.tsx +10 -10
- package/src/__tests__/components/GuardModal/GuardModal.test.tsx +1 -1
- package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorItem/ErrorItem.test.tsx +11 -11
- package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorsBanner.test.tsx +4 -4
- package/src/__tests__/components/HeadingsPreviewModal/HeadingsPreviewModal.test.tsx +15 -14
- package/src/__tests__/components/IconAction/IconAction.test.tsx +2 -2
- package/src/__tests__/components/ImageDragAndDrop/CropStep/CropStep.test.tsx +3 -3
- package/src/__tests__/components/ImageDragAndDrop/ImageDragAndDrop.test.tsx +7 -7
- package/src/__tests__/components/KeywordsPreviewModal/KeywordItem/KeywordItem.test.tsx +5 -5
- package/src/__tests__/components/KeywordsPreviewModal/KeywordsPreviewModal.test.tsx +14 -13
- package/src/__tests__/components/KeywordsPreviewModal/atoms.test.tsx +13 -13
- package/src/__tests__/components/LanguageMenu/LanguageMenu.test.tsx +6 -6
- package/src/__tests__/components/Lists/Lists.test.tsx +1 -1
- package/src/__tests__/components/Loader/Loader.test.tsx +1 -1
- package/src/__tests__/components/Login/Login.test.tsx +32 -32
- package/src/__tests__/components/Login/RecoveryModal/RecoveryModal.test.tsx +10 -9
- package/src/__tests__/components/MainWrapper/AppBar/AppBar.test.tsx +21 -21
- package/src/__tests__/components/MenuItem/MenuItem.test.tsx +5 -5
- package/src/__tests__/components/Modal/Modal.test.tsx +20 -20
- package/src/__tests__/components/Nav/Nav.test.tsx +2 -2
- package/src/__tests__/components/Notification/Notification.test.tsx +2 -2
- package/src/__tests__/components/Pagination/Pagination.test.tsx +13 -14
- package/src/__tests__/components/ProfileImage/ProfileImage.test.tsx +6 -7
- package/src/__tests__/components/ReorderArrows/ReorderArrows.test.tsx +4 -3
- package/src/__tests__/components/ResizePanel/ResizePanel.test.tsx +10 -11
- package/src/__tests__/components/RestrictionsModal/CurrentAccessList/CurrentAccessList.test.tsx +7 -6
- package/src/__tests__/components/RestrictionsModal/OptionsStep/OptionsStep.test.tsx +12 -11
- package/src/__tests__/components/RestrictionsModal/RestrictionsModal.test.tsx +11 -10
- package/src/__tests__/components/RestrictionsModal/RolesList/RolesList.test.tsx +8 -8
- package/src/__tests__/components/RestrictionsModal/UsersList/UsersList.test.tsx +16 -15
- package/src/__tests__/components/SearchField/SearchField.test.tsx +13 -13
- package/src/__tests__/components/SideModal/SideModal.test.tsx +25 -23
- package/src/__tests__/components/SubNav/SubNav.test.tsx +1 -1
- package/src/__tests__/components/TableFilters/CategoryFilter/CategoryFilter.test.tsx +9 -8
- package/src/__tests__/components/TableFilters/CustomizeFilters/CustomizeFilters.test.tsx +5 -5
- package/src/__tests__/components/TableFilters/DateFilter/DateFilter.test.tsx +8 -8
- package/src/__tests__/components/TableFilters/LiveFilter/LiveFilter.test.tsx +11 -10
- package/src/__tests__/components/TableFilters/NameFilter/NameFilter.test.tsx +10 -10
- package/src/__tests__/components/TableFilters/RoleFilter/RoleFilter.test.tsx +5 -5
- package/src/__tests__/components/TableFilters/SiteFilter/SiteFilter.test.tsx +10 -9
- package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +9 -9
- package/src/__tests__/components/TableFilters/TranslationsFilter/TranslationsFilter.test.tsx +8 -8
- package/src/__tests__/components/TableFilters/TypeFilter/TypeFilter.test.tsx +5 -5
- package/src/__tests__/components/TableFilters/UsersFilter/UsersFilter.test.tsx +8 -8
- package/src/__tests__/components/TableList/TableList.test.tsx +4 -4
- package/src/__tests__/components/Tabs/Tabs.test.tsx +8 -9
- package/src/__tests__/components/Tag/Tag.test.tsx +3 -3
- package/src/__tests__/components/Toast/Toast.test.tsx +6 -6
- package/src/__tests__/hooks/modals.test.tsx +4 -4
- package/src/__tests__/hooks/users.test.tsx +6 -5
- package/src/__tests__/modules/FileDrive/MarkdownFormat.test.tsx +58 -0
- package/src/__tests__/modules/FramePreview/FramePreview.test.tsx +40 -39
- package/src/__tests__/modules/FramePreview/HeadingsOverlay/HeadingsOverlay.test.tsx +11 -11
- package/src/__tests__/modules/Settings/Integrations/Integrations.test.tsx +2 -2
- package/src/__tests__/modules/Settings/Social/Social.test.tsx +4 -3
- package/src/__tests__/modules/Sites/Sites.test.tsx +5 -4
- package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +2 -2
- package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +7 -6
- package/src/__tests__/modules/Sites/SitesList/WelcomeModal/DataStep/DataStep.test.tsx +6 -6
- package/src/__tests__/modules/Sites/SitesList/WelcomeModal/FinalStep/FinalStep.test.tsx +4 -4
- package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/CropView/CropView.test.tsx +3 -3
- package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/ImageStep.test.tsx +9 -5
- package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/UploadView/UploadView.test.tsx +8 -6
- package/src/__tests__/modules/Sites/SitesList/WelcomeModal/TimezoneStep/TimezoneStep.test.tsx +7 -7
- package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeModal.test.tsx +1 -1
- package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeStep/WelcomeStep.test.tsx +3 -3
- package/src/__tests__/modules/Users/Roles/BulkHeader/BulkHeader.test.tsx +3 -3
- package/src/__tests__/modules/Users/Roles/Roles.test.tsx +11 -10
- package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/RoleItem.test.tsx +3 -3
- package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RolesModal.test.tsx +3 -3
- package/src/__tests__/modules/Users/UserCreate/SiteItem/SiteItem.test.tsx +3 -3
- package/src/__tests__/modules/Users/UserCreate/UserCreate.test.tsx +6 -5
- package/src/__tests__/modules/Users/UserList/UserItem/UserItem.test.tsx +9 -9
- package/src/__tests__/modules/Users/UserList/UserList.test.tsx +4 -4
- package/src/components/Flag/components/index.ts +30 -0
- package/src/components/Flag/index.tsx +3 -5
- package/src/components/Icon/components/index.ts +229 -0
- package/src/components/Icon/index.tsx +3 -7
- package/src/constants/index.ts +1 -1
- package/src/helpers/files.tsx +2 -0
- package/src/modules/FileDrive/FileFilters/Type/index.tsx +1 -0
- package/tsconfig.json +1 -1
- package/config/jest/cssTransform.js +0 -14
- package/config/jest/fileMock.js +0 -1
- package/config/jest/fileTransform.js +0 -40
- package/config/jest/reactEasyCropMock.js +0 -15
- package/config/jest/reactTimezoneMock.js +0 -13
- package/config/jest/setup.js +0 -31
- package/config/jest/styleMock.js +0 -1
- /package/config/{jest/test-utils.js → tests/test-utils.jsx} +0 -0
- /package/src/components/Flag/components/{Ca_ES.js → Ca_ES.jsx} +0 -0
- /package/src/components/Flag/components/{De_DE.js → De_DE.jsx} +0 -0
- /package/src/components/Flag/components/{En_GB.js → En_GB.jsx} +0 -0
- /package/src/components/Flag/components/{Es_ES.js → Es_ES.jsx} +0 -0
- /package/src/components/Flag/components/{Eu_ES.js → Eu_ES.jsx} +0 -0
- /package/src/components/Flag/components/{Fr_FR.js → Fr_FR.jsx} +0 -0
- /package/src/components/Flag/components/{It_IT.js → It_IT.jsx} +0 -0
- /package/src/components/Flag/components/{Pt_PT.js → Pt_PT.jsx} +0 -0
- /package/src/components/Icon/components/{Active.js → Active.jsx} +0 -0
- /package/src/components/Icon/components/{Add.js → Add.jsx} +0 -0
- /package/src/components/Icon/components/{AddCircle.js → AddCircle.jsx} +0 -0
- /package/src/components/Icon/components/{Alert.js → Alert.jsx} +0 -0
- /package/src/components/Icon/components/{AlignLeft.js → AlignLeft.jsx} +0 -0
- /package/src/components/Icon/components/{Back.js → Back.jsx} +0 -0
- /package/src/components/Icon/components/{BulletList.js → BulletList.jsx} +0 -0
- /package/src/components/Icon/components/{Button.js → Button.jsx} +0 -0
- /package/src/components/Icon/components/{Calendar.js → Calendar.jsx} +0 -0
- /package/src/components/Icon/components/{CancelEvent.js → CancelEvent.jsx} +0 -0
- /package/src/components/Icon/components/{Category.js → Category.jsx} +0 -0
- /package/src/components/Icon/components/{Change.js → Change.jsx} +0 -0
- /package/src/components/Icon/components/{Close.js → Close.jsx} +0 -0
- /package/src/components/Icon/components/{ClosePanel.js → ClosePanel.jsx} +0 -0
- /package/src/components/Icon/components/{CodeBody.js → CodeBody.jsx} +0 -0
- /package/src/components/Icon/components/{CodeHead.js → CodeHead.jsx} +0 -0
- /package/src/components/Icon/components/{CodeHeadBody.js → CodeHeadBody.jsx} +0 -0
- /package/src/components/Icon/components/{Collapsed.js → Collapsed.jsx} +0 -0
- /package/src/components/Icon/components/{ColorPicker.js → ColorPicker.jsx} +0 -0
- /package/src/components/Icon/components/{Compose.js → Compose.jsx} +0 -0
- /package/src/components/Icon/components/{Copy.js → Copy.jsx} +0 -0
- /package/src/components/Icon/components/{Copy2.js → Copy2.jsx} +0 -0
- /package/src/components/Icon/components/{Data.js → Data.jsx} +0 -0
- /package/src/components/Icon/components/{DataAdd.js → DataAdd.jsx} +0 -0
- /package/src/components/Icon/components/{Deactivate.js → Deactivate.jsx} +0 -0
- /package/src/components/Icon/components/{Delete.js → Delete.jsx} +0 -0
- /package/src/components/Icon/components/{Desktop.js → Desktop.jsx} +0 -0
- /package/src/components/Icon/components/{Disabled.js → Disabled.jsx} +0 -0
- /package/src/components/Icon/components/{Done.js → Done.jsx} +0 -0
- /package/src/components/Icon/components/{DownArrow.js → DownArrow.jsx} +0 -0
- /package/src/components/Icon/components/{Download.js → Download.jsx} +0 -0
- /package/src/components/Icon/components/{Drag.js → Drag.jsx} +0 -0
- /package/src/components/Icon/components/{Duplicate.js → Duplicate.jsx} +0 -0
- /package/src/components/Icon/components/{Edit.js → Edit.jsx} +0 -0
- /package/src/components/Icon/components/{Empty.js → Empty.jsx} +0 -0
- /package/src/components/Icon/components/{EmptyCheck.js → EmptyCheck.jsx} +0 -0
- /package/src/components/Icon/components/{Extend.js → Extend.jsx} +0 -0
- /package/src/components/Icon/components/{File.js → File.jsx} +0 -0
- /package/src/components/Icon/components/{Filter.js → Filter.jsx} +0 -0
- /package/src/components/Icon/components/{Form.js → Form.jsx} +0 -0
- /package/src/components/Icon/components/{FullArrowDown.js → FullArrowDown.jsx} +0 -0
- /package/src/components/Icon/components/{FullArrowLeft.js → FullArrowLeft.jsx} +0 -0
- /package/src/components/Icon/components/{FullArrowRight.js → FullArrowRight.jsx} +0 -0
- /package/src/components/Icon/components/{FullArrowUp.js → FullArrowUp.jsx} +0 -0
- /package/src/components/Icon/components/{Grid.js → Grid.jsx} +0 -0
- /package/src/components/Icon/components/{Grid2.js → Grid2.jsx} +0 -0
- /package/src/components/Icon/components/{GriddoLogo.js → GriddoLogo.jsx} +0 -0
- /package/src/components/Icon/components/{HeroCard.js → HeroCard.jsx} +0 -0
- /package/src/components/Icon/components/{Hide.js → Hide.jsx} +0 -0
- /package/src/components/Icon/components/{History.js → History.jsx} +0 -0
- /package/src/components/Icon/components/{Home.js → Home.jsx} +0 -0
- /package/src/components/Icon/components/{Ia.js → Ia.jsx} +0 -0
- /package/src/components/Icon/components/{Image.js → Image.jsx} +0 -0
- /package/src/components/Icon/components/{Info.js → Info.jsx} +0 -0
- /package/src/components/Icon/components/{Laptop.js → Laptop.jsx} +0 -0
- /package/src/components/Icon/components/{LeftArrow.js → LeftArrow.jsx} +0 -0
- /package/src/components/Icon/components/{Link.js → Link.jsx} +0 -0
- /package/src/components/Icon/components/{Lock.js → Lock.jsx} +0 -0
- /package/src/components/Icon/components/{Log.js → Log.jsx} +0 -0
- /package/src/components/Icon/components/{Map.js → Map.jsx} +0 -0
- /package/src/components/Icon/components/{Menu.js → Menu.jsx} +0 -0
- /package/src/components/Icon/components/{Microsoft.js → Microsoft.jsx} +0 -0
- /package/src/components/Icon/components/{Modified.js → Modified.jsx} +0 -0
- /package/src/components/Icon/components/{Modules.js → Modules.jsx} +0 -0
- /package/src/components/Icon/components/{More.js → More.jsx} +0 -0
- /package/src/components/Icon/components/{NewFolder.js → NewFolder.jsx} +0 -0
- /package/src/components/Icon/components/{Offline.js → Offline.jsx} +0 -0
- /package/src/components/Icon/components/{OfflinePending.js → OfflinePending.jsx} +0 -0
- /package/src/components/Icon/components/{OpenOutside.js → OpenOutside.jsx} +0 -0
- /package/src/components/Icon/components/{OpenPanel.js → OpenPanel.jsx} +0 -0
- /package/src/components/Icon/components/{OutOfSection.js → OutOfSection.jsx} +0 -0
- /package/src/components/Icon/components/{Page.js → Page.jsx} +0 -0
- /package/src/components/Icon/components/{Party.js → Party.jsx} +0 -0
- /package/src/components/Icon/components/{Paste.js → Paste.jsx} +0 -0
- /package/src/components/Icon/components/{Phone.js → Phone.jsx} +0 -0
- /package/src/components/Icon/components/{PhotoLibrary.js → PhotoLibrary.jsx} +0 -0
- /package/src/components/Icon/components/{Power.js → Power.jsx} +0 -0
- /package/src/components/Icon/components/{Preview.js → Preview.jsx} +0 -0
- /package/src/components/Icon/components/{Project.js → Project.jsx} +0 -0
- /package/src/components/Icon/components/{QrCode.js → QrCode.jsx} +0 -0
- /package/src/components/Icon/components/{Question.js → Question.jsx} +0 -0
- /package/src/components/Icon/components/{Refresh.js → Refresh.jsx} +0 -0
- /package/src/components/Icon/components/{Republish.js → Republish.jsx} +0 -0
- /package/src/components/Icon/components/{RightArrow.js → RightArrow.jsx} +0 -0
- /package/src/components/Icon/components/{Scheduled.js → Scheduled.jsx} +0 -0
- /package/src/components/Icon/components/{Search.js → Search.jsx} +0 -0
- /package/src/components/Icon/components/{SendEmail.js → SendEmail.jsx} +0 -0
- /package/src/components/Icon/components/{Settings.js → Settings.jsx} +0 -0
- /package/src/components/Icon/components/{Share.js → Share.jsx} +0 -0
- /package/src/components/Icon/components/{Subsection.js → Subsection.jsx} +0 -0
- /package/src/components/Icon/components/{Success.js → Success.jsx} +0 -0
- /package/src/components/Icon/components/{SuccessSolid.js → SuccessSolid.jsx} +0 -0
- /package/src/components/Icon/components/{Sync.js → Sync.jsx} +0 -0
- /package/src/components/Icon/components/{Tablet.js → Tablet.jsx} +0 -0
- /package/src/components/Icon/components/{Translate.js → Translate.jsx} +0 -0
- /package/src/components/Icon/components/{Unlink.js → Unlink.jsx} +0 -0
- /package/src/components/Icon/components/{UpArrow.js → UpArrow.jsx} +0 -0
- /package/src/components/Icon/components/{UploadFile.js → UploadFile.jsx} +0 -0
- /package/src/components/Icon/components/{UploadPending.js → UploadPending.jsx} +0 -0
- /package/src/components/Icon/components/{UrlLink.js → UrlLink.jsx} +0 -0
- /package/src/components/Icon/components/{User.js → User.jsx} +0 -0
- /package/src/components/Icon/components/{Users.js → Users.jsx} +0 -0
- /package/src/components/Icon/components/{Video.js → Video.jsx} +0 -0
- /package/src/components/Icon/components/{View.js → View.jsx} +0 -0
- /package/src/components/Icon/components/{Warning.js → Warning.jsx} +0 -0
- /package/src/components/Icon/components/{Web.js → Web.jsx} +0 -0
- /package/src/components/Icon/components/{Working.js → Working.jsx} +0 -0
- /package/src/components/Loader/components/{Circle.js → Circle.jsx} +0 -0
- /package/src/components/Loader/components/{Dots.js → Dots.jsx} +0 -0
- /package/src/components/Loader/components/{SmallCircle.js → SmallCircle.jsx} +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import type { MockedFunction } from "vitest";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import axios from "axios";
|
|
3
4
|
import "@testing-library/jest-dom";
|
|
4
5
|
import configureStore from "redux-mock-store";
|
|
5
6
|
import { ThemeProvider } from "styled-components";
|
|
6
|
-
import { mock } from "
|
|
7
|
+
import { mock } from "vitest-mock-extended";
|
|
7
8
|
|
|
8
|
-
import { render, cleanup, screen, act, fireEvent } from "../../../../../config/
|
|
9
|
+
import { render, cleanup, screen, act, fireEvent } from "../../../../../config/tests/test-utils";
|
|
9
10
|
import {
|
|
10
11
|
pageResponse,
|
|
11
12
|
pageResponseWithTabs,
|
|
@@ -19,7 +20,7 @@ import globalTheme from "@ax/themes/theme.json";
|
|
|
19
20
|
|
|
20
21
|
afterEach(() => {
|
|
21
22
|
cleanup();
|
|
22
|
-
|
|
23
|
+
vi.resetAllMocks();
|
|
23
24
|
});
|
|
24
25
|
|
|
25
26
|
const defaultProps = mock<IUrlFieldProps>();
|
|
@@ -110,8 +111,8 @@ const mockStore = configureStore(middlewares);
|
|
|
110
111
|
|
|
111
112
|
const store = mockStore(initialStore);
|
|
112
113
|
|
|
113
|
-
|
|
114
|
-
const mockedAxios = axios as
|
|
114
|
+
vi.mock("axios");
|
|
115
|
+
const mockedAxios = axios as MockedFunction<typeof axios>;
|
|
115
116
|
const mockApiCalls = () =>
|
|
116
117
|
mockedAxios.mockImplementation((request: any) => {
|
|
117
118
|
switch (request.url) {
|
|
@@ -196,11 +197,11 @@ describe("UrlField component rendering", () => {
|
|
|
196
197
|
linkToURL: "//cx.dev.griddo.io/pre-griddo/gonzalo-h/new-page/",
|
|
197
198
|
anchor: "mega-anchor",
|
|
198
199
|
};
|
|
199
|
-
const onChange =
|
|
200
|
+
const onChange = vi.fn();
|
|
200
201
|
|
|
201
202
|
const initialState = { ...initialStore, ...defaultProps };
|
|
202
203
|
|
|
203
|
-
const handlePanel =
|
|
204
|
+
const handlePanel = vi.fn();
|
|
204
205
|
|
|
205
206
|
mockApiCalls();
|
|
206
207
|
|
|
@@ -223,8 +224,8 @@ describe("UrlField component rendering", () => {
|
|
|
223
224
|
linkTo: 4111,
|
|
224
225
|
linkToURL: "//cx.dev.griddo.io/pre-griddo/gonzalo-h/new-page/",
|
|
225
226
|
};
|
|
226
|
-
const onChange =
|
|
227
|
-
const handlePanel =
|
|
227
|
+
const onChange = vi.fn();
|
|
228
|
+
const handlePanel = vi.fn();
|
|
228
229
|
|
|
229
230
|
const initialState = { ...initialStore, ...defaultProps };
|
|
230
231
|
|
|
@@ -262,8 +263,8 @@ describe("UrlField component rendering", () => {
|
|
|
262
263
|
subSlug: "sub-slug",
|
|
263
264
|
anchor: "anchor",
|
|
264
265
|
};
|
|
265
|
-
const onChange =
|
|
266
|
-
const handlePanel =
|
|
266
|
+
const onChange = vi.fn();
|
|
267
|
+
const handlePanel = vi.fn();
|
|
267
268
|
|
|
268
269
|
const initialState = { ...initialStore, ...defaultProps };
|
|
269
270
|
|
|
@@ -311,7 +312,7 @@ describe("onChange events", () => {
|
|
|
311
312
|
defaultProps.value = null;
|
|
312
313
|
const initialState = { ...initialStore, ...defaultProps };
|
|
313
314
|
|
|
314
|
-
const onChange =
|
|
315
|
+
const onChange = vi.fn();
|
|
315
316
|
|
|
316
317
|
const responseFail = {
|
|
317
318
|
data: null,
|
|
@@ -365,12 +366,12 @@ describe("onClick events", () => {
|
|
|
365
366
|
anchor: "mega-anchor",
|
|
366
367
|
};
|
|
367
368
|
|
|
368
|
-
const onChange =
|
|
369
|
-
const handleValidation =
|
|
369
|
+
const onChange = vi.fn();
|
|
370
|
+
const handleValidation = vi.fn();
|
|
370
371
|
|
|
371
372
|
const initialState = { ...initialStore, ...defaultProps };
|
|
372
373
|
|
|
373
|
-
const handlePanel =
|
|
374
|
+
const handlePanel = vi.fn();
|
|
374
375
|
|
|
375
376
|
mockApiCalls();
|
|
376
377
|
|
|
@@ -416,10 +417,10 @@ describe("onClick events", () => {
|
|
|
416
417
|
anchor: "mega-anchor",
|
|
417
418
|
};
|
|
418
419
|
|
|
419
|
-
const onChange =
|
|
420
|
-
const handleValidation =
|
|
421
|
-
const handlePanel =
|
|
422
|
-
const resetValidation =
|
|
420
|
+
const onChange = vi.fn();
|
|
421
|
+
const handleValidation = vi.fn();
|
|
422
|
+
const handlePanel = vi.fn();
|
|
423
|
+
const resetValidation = vi.fn();
|
|
423
424
|
|
|
424
425
|
const initialState = { ...initialStore, ...defaultProps };
|
|
425
426
|
|
package/src/__tests__/components/Fields/VisualUniqueSelection/ImageSelection/ImageSelection.test.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MockedFunction } from "vitest";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import ImageSelection, { IImageSelectionProps } from "@ax/components/Fields/VisualUniqueSelection/ImageSelection";
|
|
3
4
|
import { ThemeProvider } from "styled-components";
|
|
@@ -5,7 +6,7 @@ import { parseTheme } from "@ax/helpers";
|
|
|
5
6
|
import globalTheme from "@ax/themes/theme.json";
|
|
6
7
|
import "@testing-library/jest-dom";
|
|
7
8
|
import { render, screen, cleanup, fireEvent } from "@testing-library/react";
|
|
8
|
-
import { mock } from "
|
|
9
|
+
import { mock } from "vitest-mock-extended";
|
|
9
10
|
|
|
10
11
|
afterEach(cleanup);
|
|
11
12
|
|
|
@@ -14,7 +15,7 @@ defaultProps.theme = "default-theme";
|
|
|
14
15
|
defaultProps.columns = 2;
|
|
15
16
|
defaultProps.value = "value";
|
|
16
17
|
defaultProps.title = "title";
|
|
17
|
-
const onChangeMock = defaultProps.onChange as
|
|
18
|
+
const onChangeMock = defaultProps.onChange as MockedFunction<(value: string) => void>;
|
|
18
19
|
defaultProps.name = "name";
|
|
19
20
|
defaultProps.objKey = "element";
|
|
20
21
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MockedFunction } from "vitest";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import ScrollableSelection, {
|
|
3
4
|
IScrollableSelectionProps,
|
|
@@ -7,7 +8,7 @@ import { parseTheme } from "@ax/helpers";
|
|
|
7
8
|
import globalTheme from "@ax/themes/theme.json";
|
|
8
9
|
import "@testing-library/jest-dom";
|
|
9
10
|
import { render, screen, cleanup, fireEvent } from "@testing-library/react";
|
|
10
|
-
import { mock } from "
|
|
11
|
+
import { mock } from "vitest-mock-extended";
|
|
11
12
|
|
|
12
13
|
afterEach(cleanup);
|
|
13
14
|
|
|
@@ -31,11 +32,11 @@ defaultProps.elementUniqueSelection = true;
|
|
|
31
32
|
defaultProps.columns = 2;
|
|
32
33
|
defaultProps.value = "value";
|
|
33
34
|
defaultProps.title = "title";
|
|
34
|
-
const onChangeMock = defaultProps.onChange as
|
|
35
|
+
const onChangeMock = defaultProps.onChange as MockedFunction<(value: string) => void>;
|
|
35
36
|
defaultProps.name = "name";
|
|
36
37
|
defaultProps.objKey = "element";
|
|
37
38
|
defaultProps.actions = {
|
|
38
|
-
replaceElementsInCollectionAction:
|
|
39
|
+
replaceElementsInCollectionAction: vi.fn(),
|
|
39
40
|
};
|
|
40
41
|
defaultProps.selectedContent = {
|
|
41
42
|
component: "BasicContent",
|
package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import { ThemeProvider } from "styled-components";
|
|
|
6
6
|
import { parseTheme } from "@ax/helpers";
|
|
7
7
|
import globalTheme from "@ax/themes/theme.json";
|
|
8
8
|
import { render, screen, cleanup } from "@testing-library/react";
|
|
9
|
-
import { mock } from "
|
|
9
|
+
import { mock } from "vitest-mock-extended";
|
|
10
10
|
|
|
11
11
|
afterEach(cleanup);
|
|
12
12
|
|
|
@@ -7,8 +7,8 @@ import globalTheme from "@ax/themes/theme.json";
|
|
|
7
7
|
import { LinkPopover } from "@ax/components/Fields/Wysiwyg/atoms";
|
|
8
8
|
|
|
9
9
|
// Mock createPortal to render content directly in the test DOM
|
|
10
|
-
|
|
11
|
-
const actual =
|
|
10
|
+
vi.mock("react-dom", async () => {
|
|
11
|
+
const actual = await vi.importActual("react-dom");
|
|
12
12
|
return {
|
|
13
13
|
...actual,
|
|
14
14
|
createPortal: (element: React.ReactNode) => element,
|
|
@@ -16,7 +16,7 @@ jest.mock("react-dom", () => {
|
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
// Mock FieldsBehavior and Button components
|
|
19
|
-
|
|
19
|
+
vi.mock("@ax/components", async () => ({
|
|
20
20
|
Button: ({ onClick, disabled, children }: any) => (
|
|
21
21
|
<button type="button" onClick={onClick} disabled={disabled} data-testid="insert-button">
|
|
22
22
|
{children}
|
|
@@ -89,13 +89,13 @@ describe("LinkPopover", () => {
|
|
|
89
89
|
x: 100,
|
|
90
90
|
y: 100,
|
|
91
91
|
selectedText: "Click here",
|
|
92
|
-
onInsert:
|
|
93
|
-
onClose:
|
|
92
|
+
onInsert: vi.fn(),
|
|
93
|
+
onClose: vi.fn(),
|
|
94
94
|
linkData: null,
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
beforeEach(() => {
|
|
98
|
-
|
|
98
|
+
vi.clearAllMocks();
|
|
99
99
|
});
|
|
100
100
|
|
|
101
101
|
describe("Rendering", () => {
|
|
@@ -168,7 +168,7 @@ describe("LinkPopover", () => {
|
|
|
168
168
|
});
|
|
169
169
|
|
|
170
170
|
it("should call onInsert with URL and text when INSERT is clicked", async () => {
|
|
171
|
-
const mockOnInsert =
|
|
171
|
+
const mockOnInsert = vi.fn();
|
|
172
172
|
const props = {
|
|
173
173
|
...defaultProps,
|
|
174
174
|
onInsert: mockOnInsert,
|
|
@@ -195,7 +195,7 @@ describe("LinkPopover", () => {
|
|
|
195
195
|
});
|
|
196
196
|
|
|
197
197
|
it("should use URL as text if link text is empty", async () => {
|
|
198
|
-
const mockOnInsert =
|
|
198
|
+
const mockOnInsert = vi.fn();
|
|
199
199
|
const props = {
|
|
200
200
|
...defaultProps,
|
|
201
201
|
selectedText: "",
|
|
@@ -220,7 +220,7 @@ describe("LinkPopover", () => {
|
|
|
220
220
|
|
|
221
221
|
describe("Link options", () => {
|
|
222
222
|
it("should include newTab option when checkbox is checked", async () => {
|
|
223
|
-
const mockOnInsert =
|
|
223
|
+
const mockOnInsert = vi.fn();
|
|
224
224
|
const props = {
|
|
225
225
|
...defaultProps,
|
|
226
226
|
onInsert: mockOnInsert,
|
|
@@ -247,7 +247,7 @@ describe("LinkPopover", () => {
|
|
|
247
247
|
});
|
|
248
248
|
|
|
249
249
|
it("should include noFollow option when checkbox is checked", async () => {
|
|
250
|
-
const mockOnInsert =
|
|
250
|
+
const mockOnInsert = vi.fn();
|
|
251
251
|
const props = {
|
|
252
252
|
...defaultProps,
|
|
253
253
|
onInsert: mockOnInsert,
|
|
@@ -342,7 +342,7 @@ describe("LinkPopover", () => {
|
|
|
342
342
|
|
|
343
343
|
describe("Text field handling", () => {
|
|
344
344
|
it("should update link text when text field changes", async () => {
|
|
345
|
-
const mockOnInsert =
|
|
345
|
+
const mockOnInsert = vi.fn();
|
|
346
346
|
const props = {
|
|
347
347
|
...defaultProps,
|
|
348
348
|
onInsert: mockOnInsert,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "@ax/components/Fields/Wysiwyg/helpers";
|
|
9
9
|
|
|
10
10
|
// Mock the config module
|
|
11
|
-
|
|
11
|
+
vi.mock("components", () => ({
|
|
12
12
|
config: {
|
|
13
13
|
schemas: {
|
|
14
14
|
config: {
|
|
@@ -239,7 +239,7 @@ describe("Wysiwyg helpers", () => {
|
|
|
239
239
|
|
|
240
240
|
it("should calculate position based on editor element bounds", () => {
|
|
241
241
|
// Mock getBoundingClientRect
|
|
242
|
-
editorEl.getBoundingClientRect =
|
|
242
|
+
editorEl.getBoundingClientRect = vi.fn(() => ({
|
|
243
243
|
left: 100,
|
|
244
244
|
top: 200,
|
|
245
245
|
width: 400,
|
|
@@ -267,7 +267,7 @@ describe("Wysiwyg helpers", () => {
|
|
|
267
267
|
});
|
|
268
268
|
|
|
269
269
|
it("should center popup horizontally in editor", () => {
|
|
270
|
-
editorEl.getBoundingClientRect =
|
|
270
|
+
editorEl.getBoundingClientRect = vi.fn(() => ({
|
|
271
271
|
left: 0,
|
|
272
272
|
top: 0,
|
|
273
273
|
width: 1000,
|
|
@@ -285,7 +285,7 @@ describe("Wysiwyg helpers", () => {
|
|
|
285
285
|
});
|
|
286
286
|
|
|
287
287
|
it("should position popup 50px below editor top", () => {
|
|
288
|
-
editorEl.getBoundingClientRect =
|
|
288
|
+
editorEl.getBoundingClientRect = vi.fn(() => ({
|
|
289
289
|
left: 0,
|
|
290
290
|
top: 100,
|
|
291
291
|
width: 500,
|
|
@@ -309,7 +309,7 @@ describe("Wysiwyg helpers", () => {
|
|
|
309
309
|
|
|
310
310
|
beforeEach(() => {
|
|
311
311
|
editorEl = document.createElement("div");
|
|
312
|
-
editorEl.getBoundingClientRect =
|
|
312
|
+
editorEl.getBoundingClientRect = vi.fn(() => ({
|
|
313
313
|
left: 0,
|
|
314
314
|
top: 0,
|
|
315
315
|
width: 400,
|
|
@@ -323,10 +323,10 @@ describe("Wysiwyg helpers", () => {
|
|
|
323
323
|
|
|
324
324
|
mockEditor = {
|
|
325
325
|
popups: {
|
|
326
|
-
create:
|
|
327
|
-
onHide:
|
|
328
|
-
show:
|
|
329
|
-
hide:
|
|
326
|
+
create: vi.fn(),
|
|
327
|
+
onHide: vi.fn(),
|
|
328
|
+
show: vi.fn(),
|
|
329
|
+
hide: vi.fn(),
|
|
330
330
|
},
|
|
331
331
|
};
|
|
332
332
|
});
|
|
@@ -377,18 +377,17 @@ describe("Wysiwyg helpers", () => {
|
|
|
377
377
|
);
|
|
378
378
|
});
|
|
379
379
|
|
|
380
|
-
it("showErrorPopup should hide error popup after 3 seconds", (
|
|
381
|
-
|
|
380
|
+
it("showErrorPopup should hide error popup after 3 seconds", () => {
|
|
381
|
+
vi.useFakeTimers();
|
|
382
382
|
const { showErrorPopup } = createPopupFunctions(mockEditor, editorEl);
|
|
383
383
|
|
|
384
384
|
showErrorPopup();
|
|
385
385
|
|
|
386
|
-
|
|
386
|
+
vi.advanceTimersByTime(3000);
|
|
387
387
|
|
|
388
388
|
expect(mockEditor.popups.hide).toHaveBeenCalledWith("image.uploadError");
|
|
389
389
|
|
|
390
|
-
|
|
391
|
-
done();
|
|
390
|
+
vi.useRealTimers();
|
|
392
391
|
});
|
|
393
392
|
|
|
394
393
|
it("showPopup should pass correct position arguments to show method", () => {
|
|
@@ -7,27 +7,27 @@ import globalTheme from "@ax/themes/theme.json";
|
|
|
7
7
|
import configureStore from "redux-mock-store";
|
|
8
8
|
import { ThemeProvider } from "styled-components";
|
|
9
9
|
|
|
10
|
-
import { cleanup, render, screen } from "../../../../../config/
|
|
10
|
+
import { cleanup, render, screen } from "../../../../../config/tests/test-utils";
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
vi.mock("react-froala-wysiwyg", () => ({
|
|
13
|
+
default: function MockFroalaEditor(props: any) {
|
|
14
14
|
const editorElRef = React.useRef<HTMLDivElement>(null);
|
|
15
15
|
|
|
16
16
|
React.useEffect(() => {
|
|
17
17
|
if (props.config?.events?.initialized && editorElRef.current) {
|
|
18
18
|
const mockEditor = {
|
|
19
|
-
$el: { get:
|
|
19
|
+
$el: { get: vi.fn(() => editorElRef.current!) },
|
|
20
20
|
el: editorElRef.current,
|
|
21
|
-
edit: { on:
|
|
22
|
-
link: { insert:
|
|
23
|
-
image: { insert:
|
|
24
|
-
html: { get:
|
|
25
|
-
selection: { save:
|
|
21
|
+
edit: { on: vi.fn(), off: vi.fn() },
|
|
22
|
+
link: { insert: vi.fn() },
|
|
23
|
+
image: { insert: vi.fn(), get: vi.fn(() => null) },
|
|
24
|
+
html: { get: vi.fn(() => props.model) },
|
|
25
|
+
selection: { save: vi.fn(), restore: vi.fn() },
|
|
26
26
|
popups: {
|
|
27
|
-
create:
|
|
28
|
-
onHide:
|
|
29
|
-
show:
|
|
30
|
-
hide:
|
|
27
|
+
create: vi.fn(),
|
|
28
|
+
onHide: vi.fn(),
|
|
29
|
+
show: vi.fn(),
|
|
30
|
+
hide: vi.fn(),
|
|
31
31
|
},
|
|
32
32
|
};
|
|
33
33
|
props.config.events.initialized.call(mockEditor);
|
|
@@ -44,12 +44,12 @@ jest.mock("react-froala-wysiwyg", () => {
|
|
|
44
44
|
/>
|
|
45
45
|
</div>
|
|
46
46
|
);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
47
|
+
},
|
|
48
|
+
}));
|
|
49
49
|
|
|
50
50
|
afterEach(() => {
|
|
51
51
|
cleanup();
|
|
52
|
-
|
|
52
|
+
vi.resetAllMocks();
|
|
53
53
|
delete (window as any).__froalaEditorInstance;
|
|
54
54
|
});
|
|
55
55
|
|
|
@@ -65,9 +65,9 @@ const mockStore = configureStore();
|
|
|
65
65
|
const store = mockStore(initialStore);
|
|
66
66
|
|
|
67
67
|
const createMockProps = (overrides?: Partial<IWysiwygProps>): IWysiwygProps => {
|
|
68
|
-
const mockUploadImage =
|
|
69
|
-
const mockOnChange =
|
|
70
|
-
const mockHandleValidation =
|
|
68
|
+
const mockUploadImage = vi.fn().mockResolvedValue(null);
|
|
69
|
+
const mockOnChange = vi.fn();
|
|
70
|
+
const mockHandleValidation = vi.fn();
|
|
71
71
|
|
|
72
72
|
return {
|
|
73
73
|
value: "",
|
|
@@ -172,7 +172,7 @@ describe("Wysiwyg component rendering", () => {
|
|
|
172
172
|
|
|
173
173
|
describe("Wysiwyg file handling", () => {
|
|
174
174
|
it("should call onChange when content changes", async () => {
|
|
175
|
-
const mockOnChange =
|
|
175
|
+
const mockOnChange = vi.fn();
|
|
176
176
|
const props = createMockProps({ value: "Initial text", onChange: mockOnChange });
|
|
177
177
|
|
|
178
178
|
render(
|
|
@@ -187,7 +187,7 @@ describe("Wysiwyg file handling", () => {
|
|
|
187
187
|
});
|
|
188
188
|
|
|
189
189
|
it("should insert file with correct URL and fileName", async () => {
|
|
190
|
-
const mockOnChange =
|
|
190
|
+
const mockOnChange = vi.fn();
|
|
191
191
|
const props = createMockProps({ value: "", onChange: mockOnChange });
|
|
192
192
|
|
|
193
193
|
render(
|
|
@@ -279,7 +279,7 @@ describe("Wysiwyg editor interactions", () => {
|
|
|
279
279
|
|
|
280
280
|
describe("Wysiwyg file and image handling", () => {
|
|
281
281
|
it("should insert file link with correct URL and fileName", () => {
|
|
282
|
-
const mockOnChange =
|
|
282
|
+
const mockOnChange = vi.fn();
|
|
283
283
|
const props = createMockProps({ value: "", onChange: mockOnChange });
|
|
284
284
|
|
|
285
285
|
render(
|
|
@@ -389,7 +389,7 @@ describe("Wysiwyg file and image handling", () => {
|
|
|
389
389
|
|
|
390
390
|
describe("Wysiwyg handlers", () => {
|
|
391
391
|
it("handleChange: onChange should be called when editor content changes", () => {
|
|
392
|
-
const mockOnChange =
|
|
392
|
+
const mockOnChange = vi.fn();
|
|
393
393
|
const newContent = "<p>Updated content</p>";
|
|
394
394
|
const props = createMockProps({
|
|
395
395
|
value: "Initial",
|
|
@@ -412,7 +412,7 @@ describe("Wysiwyg handlers", () => {
|
|
|
412
412
|
});
|
|
413
413
|
|
|
414
414
|
it("handleChange: handleValidation should be called on change", () => {
|
|
415
|
-
const mockHandleValidation =
|
|
415
|
+
const mockHandleValidation = vi.fn();
|
|
416
416
|
const props = createMockProps({
|
|
417
417
|
value: "initial",
|
|
418
418
|
handleValidation: mockHandleValidation,
|
|
@@ -590,7 +590,7 @@ describe("Wysiwyg handlers", () => {
|
|
|
590
590
|
});
|
|
591
591
|
|
|
592
592
|
it("should handle drop event preparation", () => {
|
|
593
|
-
const mockUploadImage =
|
|
593
|
+
const mockUploadImage = vi.fn().mockResolvedValue({
|
|
594
594
|
url: "http://example.com/uploaded.jpg",
|
|
595
595
|
alt: "",
|
|
596
596
|
});
|
|
@@ -707,7 +707,7 @@ describe("Wysiwyg handlers", () => {
|
|
|
707
707
|
|
|
708
708
|
describe("Wysiwyg handleChange - empty paragraph filtering", () => {
|
|
709
709
|
it("should track last value in lastValueRef to detect real changes", () => {
|
|
710
|
-
const mockOnChange =
|
|
710
|
+
const mockOnChange = vi.fn();
|
|
711
711
|
const initialValue = "<p>Content</p>";
|
|
712
712
|
const props = createMockProps({
|
|
713
713
|
value: initialValue,
|
|
@@ -728,7 +728,7 @@ describe("Wysiwyg handleChange - empty paragraph filtering", () => {
|
|
|
728
728
|
});
|
|
729
729
|
|
|
730
730
|
it("should include validation callback in handleChange logic", () => {
|
|
731
|
-
const mockHandleValidation =
|
|
731
|
+
const mockHandleValidation = vi.fn();
|
|
732
732
|
const props = createMockProps({
|
|
733
733
|
value: "initial",
|
|
734
734
|
handleValidation: mockHandleValidation,
|
|
@@ -749,7 +749,7 @@ describe("Wysiwyg handleChange - empty paragraph filtering", () => {
|
|
|
749
749
|
|
|
750
750
|
describe("Wysiwyg handleInsertLink - image link support", () => {
|
|
751
751
|
it("should support isImageLink flag in linkData", () => {
|
|
752
|
-
const mockOnChange =
|
|
752
|
+
const mockOnChange = vi.fn();
|
|
753
753
|
const props = createMockProps({
|
|
754
754
|
value: "",
|
|
755
755
|
onChange: mockOnChange,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MockedFunction } from "vitest";
|
|
1
2
|
import "@testing-library/jest-dom";
|
|
2
3
|
|
|
3
4
|
import FieldsBehavior from "@ax/components/FieldsBehavior";
|
|
@@ -9,24 +10,24 @@ import { cleanup, fireEvent, render, screen, waitFor } from "@testing-library/re
|
|
|
9
10
|
import { ThemeProvider } from "styled-components";
|
|
10
11
|
|
|
11
12
|
// Mock dependencies
|
|
12
|
-
|
|
13
|
-
getValidity:
|
|
13
|
+
vi.mock("@ax/forms", async () => ({
|
|
14
|
+
getValidity: vi.fn(),
|
|
14
15
|
}));
|
|
15
|
-
|
|
16
|
-
...
|
|
17
|
-
getFieldByPath:
|
|
18
|
-
isEmptyContainer:
|
|
19
|
-
slugify:
|
|
16
|
+
vi.mock("@ax/helpers", async () => ({
|
|
17
|
+
...(await vi.importActual("@ax/helpers")),
|
|
18
|
+
getFieldByPath: vi.fn(() => () => <div data-testid="mock-field" />),
|
|
19
|
+
isEmptyContainer: vi.fn(() => ({ isEmpty: false })),
|
|
20
|
+
slugify: vi.fn((text: string) => (text || "").toLowerCase().replace(/\s+/g, "-")),
|
|
20
21
|
}));
|
|
21
22
|
|
|
22
|
-
const mockGetValidity = getValidity as
|
|
23
|
-
const _mockGetFieldByPath = getFieldByPath as
|
|
24
|
-
const mockIsEmptyContainer = isEmptyContainer as
|
|
25
|
-
const mockSlugify = slugify as
|
|
23
|
+
const mockGetValidity = getValidity as MockedFunction<typeof getValidity>;
|
|
24
|
+
const _mockGetFieldByPath = getFieldByPath as MockedFunction<typeof getFieldByPath>;
|
|
25
|
+
const mockIsEmptyContainer = isEmptyContainer as MockedFunction<typeof isEmptyContainer>;
|
|
26
|
+
const mockSlugify = slugify as MockedFunction<typeof slugify>;
|
|
26
27
|
|
|
27
28
|
afterEach(() => {
|
|
28
29
|
cleanup();
|
|
29
|
-
|
|
30
|
+
vi.clearAllMocks();
|
|
30
31
|
});
|
|
31
32
|
|
|
32
33
|
// Default mock setup for getValidity
|
|
@@ -209,7 +210,7 @@ describe("FieldsBehavior validation", () => {
|
|
|
209
210
|
});
|
|
210
211
|
|
|
211
212
|
it("should validate on error prop change", () => {
|
|
212
|
-
const deleteError =
|
|
213
|
+
const deleteError = vi.fn();
|
|
213
214
|
const error = {
|
|
214
215
|
type: "validation",
|
|
215
216
|
message: "Required",
|
|
@@ -326,7 +327,7 @@ describe("FieldsBehavior slug synchronization", () => {
|
|
|
326
327
|
});
|
|
327
328
|
|
|
328
329
|
it("should have correct sync behavior for page slug", () => {
|
|
329
|
-
const updateValue =
|
|
330
|
+
const updateValue = vi.fn();
|
|
330
331
|
mockSlugify.mockReturnValue("new-title");
|
|
331
332
|
|
|
332
333
|
const props = {
|