@griddo/ax 12.3.0 → 12.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/config/webpack.config.js +5 -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 +49 -58
- package/src/__tests__/components/ConfigPanel/GlobalPageForm/GlobalPageForm.test.tsx +11 -11
- package/src/__tests__/components/ConfigPanel/Header/Header.test.tsx +51 -46
- 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 +7 -18
- package/src/__tests__/components/EmptyState/EmptyState.test.tsx +11 -11
- 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 +64 -53
- 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 +67 -58
- 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 +223 -426
- 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 +17 -18
- 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 +280 -263
- package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +60 -57
- 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 +10 -9
- package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +16 -20
- 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 +17 -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 +16 -24
- package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +12 -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 +30 -22
- package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.atoms.test.tsx +11 -11
- package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.config.test.tsx +103 -0
- 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 +22 -16
- 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 +18 -17
- 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 +175 -127
- 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 +26 -39
- 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 +70 -45
- 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 +73 -70
- package/src/__tests__/components/Tag/Tag.test.tsx +3 -3
- package/src/__tests__/components/Toast/Toast.test.tsx +24 -26
- 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 +56 -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 +26 -21
- package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +19 -9
- 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 +72 -67
- package/src/__tests__/modules/Users/Roles/Roles.test.tsx +14 -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/Fields/Wysiwyg/config.tsx +68 -17
- package/src/components/Fields/Wysiwyg/helpers.tsx +2 -0
- package/src/components/Fields/Wysiwyg/index.tsx +41 -10
- 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/components/ResizePanel/index.tsx +7 -2
- 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,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
|
|
3
3
|
import { ThemeProvider } from "styled-components";
|
|
4
|
-
import { render, cleanup, screen, fireEvent } from "../../../../../config/
|
|
5
|
-
import { mock } from "
|
|
4
|
+
import { render, cleanup, screen, fireEvent } from "../../../../../config/tests/test-utils";
|
|
5
|
+
import { mock } from "vitest-mock-extended";
|
|
6
6
|
import configureStore from "redux-mock-store";
|
|
7
7
|
import "@testing-library/jest-dom";
|
|
8
8
|
|
|
@@ -112,49 +112,49 @@ const initialStore = {
|
|
|
112
112
|
};
|
|
113
113
|
const store = mockStore(initialStore);
|
|
114
114
|
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
115
|
+
// Props por test. Los tres `const ...Mock = defaultProps.x as MockedFunction<>`
|
|
116
|
+
// que había aquí no se usaban en ningún assert: solo servían, sin querer, para
|
|
117
|
+
// materializar esas props en el proxy de `mock<T>()` y que el spread de JSX las
|
|
118
|
+
// llevara al componente. Ahora van declaradas en la factoría.
|
|
119
|
+
const makeProps = (overrides: Partial<IFormProps> = {}): IFormProps =>
|
|
120
|
+
Object.assign(
|
|
121
|
+
mock<IFormProps>(),
|
|
122
122
|
{
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
123
|
+
schema: {
|
|
124
|
+
title: "Header",
|
|
125
|
+
component: "Header",
|
|
126
|
+
type: "header",
|
|
127
|
+
configTabs: [
|
|
128
|
+
{
|
|
129
|
+
title: "content",
|
|
130
|
+
fields: [
|
|
131
|
+
{
|
|
132
|
+
title: "Name",
|
|
133
|
+
key: "title",
|
|
134
|
+
type: "TextField",
|
|
135
|
+
mandatory: true,
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
schemaType: "module",
|
|
141
|
+
},
|
|
142
|
+
selectedTab: "content",
|
|
143
|
+
isPage: false,
|
|
144
|
+
isGlobal: false,
|
|
145
|
+
theme: "default-theme",
|
|
146
|
+
setSelectedContent: vi.fn(),
|
|
147
|
+
setSelectedTab: vi.fn(),
|
|
148
|
+
setHistoryPush: vi.fn(),
|
|
132
149
|
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
};
|
|
136
|
-
const restorePageNavigationActionMock = jest.fn();
|
|
137
|
-
defaultProps.actions = {
|
|
138
|
-
restorePageNavigationAction: restorePageNavigationActionMock,
|
|
139
|
-
};
|
|
140
|
-
const setSelectedContentMock = defaultProps.setSelectedContent as jest.MockedFunction<(editorID: number) => void>;
|
|
141
|
-
const setSelectedTabMocked = defaultProps.setSelectedTab as jest.MockedFunction<(tab: string) => void>;
|
|
142
|
-
const setHistoryPushMocked = defaultProps.setHistoryPush as jest.MockedFunction<
|
|
143
|
-
(path: string, isEditor: boolean) => void
|
|
144
|
-
>;
|
|
145
|
-
defaultProps.selectedTab = "content";
|
|
146
|
-
defaultProps.isPage = false;
|
|
147
|
-
defaultProps.isGlobal = false;
|
|
148
|
-
defaultProps.theme = "default-theme";
|
|
150
|
+
overrides,
|
|
151
|
+
);
|
|
149
152
|
|
|
150
153
|
describe("Form component rendering", () => {
|
|
151
154
|
it("should render the component", () => {
|
|
152
|
-
defaultProps.isPage = true;
|
|
153
|
-
defaultProps.isGlobal = true;
|
|
154
|
-
|
|
155
155
|
render(
|
|
156
156
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
157
|
-
<Form {...
|
|
157
|
+
<Form {...makeProps({ isPage: true, isGlobal: true })} />
|
|
158
158
|
</ThemeProvider>,
|
|
159
159
|
{ store },
|
|
160
160
|
);
|
|
@@ -162,13 +162,9 @@ describe("Form component rendering", () => {
|
|
|
162
162
|
});
|
|
163
163
|
|
|
164
164
|
it("should render the component with no header warning text", () => {
|
|
165
|
-
defaultProps.isPage = false;
|
|
166
|
-
defaultProps.isGlobal = false;
|
|
167
|
-
defaultProps.header = 0;
|
|
168
|
-
|
|
169
165
|
render(
|
|
170
166
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
171
|
-
<Form {...
|
|
167
|
+
<Form {...makeProps({ header: 0 })} />
|
|
172
168
|
</ThemeProvider>,
|
|
173
169
|
{ store },
|
|
174
170
|
);
|
|
@@ -177,11 +173,11 @@ describe("Form component rendering", () => {
|
|
|
177
173
|
});
|
|
178
174
|
|
|
179
175
|
it("should call the function to restore the header", () => {
|
|
180
|
-
|
|
176
|
+
const restorePageNavigationAction = vi.fn();
|
|
181
177
|
|
|
182
178
|
render(
|
|
183
179
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
184
|
-
<Form {...
|
|
180
|
+
<Form {...makeProps({ header: 0, actions: { restorePageNavigationAction } })} />
|
|
185
181
|
</ThemeProvider>,
|
|
186
182
|
{ store },
|
|
187
183
|
);
|
|
@@ -189,16 +185,14 @@ describe("Form component rendering", () => {
|
|
|
189
185
|
expect(screen.getByText(/This page doesn\'t have a header. Click/i)).toBeInTheDocument();
|
|
190
186
|
const headerLink = screen.getByTestId("header-link");
|
|
191
187
|
fireEvent.click(headerLink);
|
|
192
|
-
expect(
|
|
193
|
-
expect(
|
|
188
|
+
expect(restorePageNavigationAction).toBeCalled();
|
|
189
|
+
expect(restorePageNavigationAction).toBeCalledWith("header");
|
|
194
190
|
});
|
|
195
191
|
|
|
196
192
|
it("should render the component with no footer warning text", () => {
|
|
197
|
-
defaultProps.footer = 0;
|
|
198
|
-
|
|
199
193
|
render(
|
|
200
194
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
201
|
-
<Form {...
|
|
195
|
+
<Form {...makeProps({ header: 0, footer: 0 })} />
|
|
202
196
|
</ThemeProvider>,
|
|
203
197
|
{ store },
|
|
204
198
|
);
|
|
@@ -207,11 +201,11 @@ describe("Form component rendering", () => {
|
|
|
207
201
|
});
|
|
208
202
|
|
|
209
203
|
it("should call the function to restore the header", () => {
|
|
210
|
-
|
|
204
|
+
const restorePageNavigationAction = vi.fn();
|
|
211
205
|
|
|
212
206
|
render(
|
|
213
207
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
214
|
-
<Form {...
|
|
208
|
+
<Form {...makeProps({ header: 0, footer: 0, actions: { restorePageNavigationAction } })} />
|
|
215
209
|
</ThemeProvider>,
|
|
216
210
|
{ store },
|
|
217
211
|
);
|
|
@@ -219,17 +213,14 @@ describe("Form component rendering", () => {
|
|
|
219
213
|
expect(screen.getByText(/This page doesn\'t have a header. Click/i)).toBeInTheDocument();
|
|
220
214
|
const footerLink = screen.getByTestId("footer-link");
|
|
221
215
|
fireEvent.click(footerLink);
|
|
222
|
-
expect(
|
|
223
|
-
expect(
|
|
216
|
+
expect(restorePageNavigationAction).toBeCalled();
|
|
217
|
+
expect(restorePageNavigationAction).toBeCalledWith("footer");
|
|
224
218
|
});
|
|
225
219
|
|
|
226
220
|
it("should render the tabs", () => {
|
|
227
|
-
defaultProps.isPage = true;
|
|
228
|
-
defaultProps.isGlobal = true;
|
|
229
|
-
|
|
230
221
|
render(
|
|
231
222
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
232
|
-
<Form {...
|
|
223
|
+
<Form {...makeProps({ isPage: true, isGlobal: true, header: 0, footer: 0 })} />
|
|
233
224
|
</ThemeProvider>,
|
|
234
225
|
{ store },
|
|
235
226
|
);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { mock } from "
|
|
1
|
+
import { mock } from "vitest-mock-extended";
|
|
2
2
|
import configureStore from "redux-mock-store";
|
|
3
3
|
import { ThemeProvider } from "styled-components";
|
|
4
4
|
|
|
5
|
-
import { cleanup, fireEvent, render, screen, waitFor } from "../../../../../config/
|
|
5
|
+
import { cleanup, fireEvent, render, screen, waitFor } from "../../../../../config/tests/test-utils";
|
|
6
6
|
import "@testing-library/jest-dom";
|
|
7
7
|
|
|
8
8
|
import GlobalPageForm, { type IGlobalPageFormProps } from "@ax/components/ConfigPanel/GlobalPageForm";
|
|
@@ -11,9 +11,9 @@ import globalTheme from "@ax/themes/theme.json";
|
|
|
11
11
|
|
|
12
12
|
import thunk from "redux-thunk";
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
...
|
|
16
|
-
useGlobalPermission:
|
|
14
|
+
vi.mock("@ax/hooks", async () => ({
|
|
15
|
+
...(await vi.importActual("@ax/hooks")),
|
|
16
|
+
useGlobalPermission: vi.fn(() => true),
|
|
17
17
|
}));
|
|
18
18
|
|
|
19
19
|
beforeEach(() => {
|
|
@@ -22,7 +22,7 @@ beforeEach(() => {
|
|
|
22
22
|
|
|
23
23
|
const middlewares: any = [thunk];
|
|
24
24
|
const mockStore = configureStore(middlewares);
|
|
25
|
-
const updateEditorContentMock =
|
|
25
|
+
const updateEditorContentMock = vi.fn();
|
|
26
26
|
const initialStore = {
|
|
27
27
|
pageEditor: {
|
|
28
28
|
selectedContent: {
|
|
@@ -105,7 +105,7 @@ const initialStore = {
|
|
|
105
105
|
const store = mockStore(initialStore);
|
|
106
106
|
|
|
107
107
|
const defaultProps = mock<IGlobalPageFormProps>();
|
|
108
|
-
const setNotificationActionMock =
|
|
108
|
+
const setNotificationActionMock = vi.fn();
|
|
109
109
|
defaultProps.actions.setNotificationAction = setNotificationActionMock;
|
|
110
110
|
|
|
111
111
|
describe("GlobalPageForm component rendering", () => {
|
|
@@ -173,8 +173,8 @@ describe("GlobalPageForm component rendering", () => {
|
|
|
173
173
|
describe("GlobalPageForm component rendering", () => {
|
|
174
174
|
it("should trigger handleClick", async () => {
|
|
175
175
|
defaultProps.selectedTab = "content";
|
|
176
|
-
const getGlobalFromLocalPageActionMock =
|
|
177
|
-
const saveCurrentSiteInfoActionMock =
|
|
176
|
+
const getGlobalFromLocalPageActionMock = vi.fn(() => Promise.resolve());
|
|
177
|
+
const saveCurrentSiteInfoActionMock = vi.fn();
|
|
178
178
|
defaultProps.actions.saveCurrentSiteInfoAction = saveCurrentSiteInfoActionMock;
|
|
179
179
|
defaultProps.actions.getGlobalFromLocalPageAction = getGlobalFromLocalPageActionMock;
|
|
180
180
|
|
|
@@ -199,7 +199,7 @@ describe("GlobalPageForm component rendering", () => {
|
|
|
199
199
|
it("should trigger handleRestoreHeader", () => {
|
|
200
200
|
defaultProps.selectedTab = "content";
|
|
201
201
|
defaultProps.header = 0;
|
|
202
|
-
const restorePageNavigationActionMock =
|
|
202
|
+
const restorePageNavigationActionMock = vi.fn();
|
|
203
203
|
defaultProps.actions.restorePageNavigationAction = restorePageNavigationActionMock;
|
|
204
204
|
|
|
205
205
|
render(
|
|
@@ -219,7 +219,7 @@ describe("GlobalPageForm component rendering", () => {
|
|
|
219
219
|
it("should trigger handleRestoreFooter", () => {
|
|
220
220
|
defaultProps.selectedTab = "content";
|
|
221
221
|
defaultProps.footer = 0;
|
|
222
|
-
const restorePageNavigationActionMock =
|
|
222
|
+
const restorePageNavigationActionMock = vi.fn();
|
|
223
223
|
defaultProps.actions.restorePageNavigationAction = restorePageNavigationActionMock;
|
|
224
224
|
|
|
225
225
|
render(
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
|
|
3
3
|
import { ThemeProvider } from "styled-components";
|
|
4
|
-
import { render, cleanup, screen, fireEvent } from "../../../../../config/
|
|
5
|
-
import { mock } from "
|
|
4
|
+
import { render, cleanup, screen, fireEvent } from "../../../../../config/tests/test-utils";
|
|
5
|
+
import { mock } from "vitest-mock-extended";
|
|
6
6
|
import configureStore from "redux-mock-store";
|
|
7
7
|
import "@testing-library/jest-dom";
|
|
8
8
|
|
|
@@ -10,19 +10,19 @@ import { parseTheme } from "@ax/helpers";
|
|
|
10
10
|
import Header, { IHeaderProps } from "@ax/components/ConfigPanel/Header";
|
|
11
11
|
import globalTheme from "@ax/themes/theme.json";
|
|
12
12
|
|
|
13
|
-
window.scrollTo =
|
|
13
|
+
window.scrollTo = vi.fn();
|
|
14
14
|
|
|
15
15
|
beforeEach(() => {
|
|
16
16
|
cleanup();
|
|
17
17
|
});
|
|
18
18
|
|
|
19
19
|
afterAll(() => {
|
|
20
|
-
|
|
20
|
+
vi.clearAllMocks();
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
const middlewares: any = [];
|
|
24
24
|
const mockStore = configureStore(middlewares);
|
|
25
|
-
const updateEditorContentMock =
|
|
25
|
+
const updateEditorContentMock = vi.fn();
|
|
26
26
|
const initialStore = {
|
|
27
27
|
pageEditor: {
|
|
28
28
|
selectedContent: {
|
|
@@ -72,52 +72,57 @@ const initialStore = {
|
|
|
72
72
|
|
|
73
73
|
const store = mockStore(initialStore);
|
|
74
74
|
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
deleteModuleAction: jest.fn(),
|
|
79
|
-
copyModuleAction: jest.fn(),
|
|
80
|
-
};
|
|
81
|
-
const setSelectedContentMock = defaultProps.setSelectedContent as jest.MockedFunction<(editorID: number) => void>;
|
|
82
|
-
|
|
83
|
-
defaultProps.schema = {
|
|
84
|
-
title: "Header",
|
|
85
|
-
component: "Header",
|
|
86
|
-
type: "header",
|
|
87
|
-
configTabs: [
|
|
75
|
+
const makeProps = (overrides: Partial<IHeaderProps> = {}): IHeaderProps =>
|
|
76
|
+
Object.assign(
|
|
77
|
+
mock<IHeaderProps>(),
|
|
88
78
|
{
|
|
89
|
-
|
|
90
|
-
|
|
79
|
+
actions: {
|
|
80
|
+
duplicateModuleAction: vi.fn(),
|
|
81
|
+
deleteModuleAction: vi.fn(),
|
|
82
|
+
copyModuleAction: vi.fn(),
|
|
83
|
+
},
|
|
84
|
+
schema: {
|
|
85
|
+
title: "Header",
|
|
86
|
+
component: "Header",
|
|
87
|
+
type: "header",
|
|
88
|
+
configTabs: [
|
|
89
|
+
{
|
|
90
|
+
title: "content",
|
|
91
|
+
fields: [
|
|
92
|
+
{
|
|
93
|
+
title: "Name",
|
|
94
|
+
key: "title",
|
|
95
|
+
type: "TextField",
|
|
96
|
+
mandatory: true,
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
schemaType: "module",
|
|
102
|
+
},
|
|
103
|
+
breadcrumb: [
|
|
91
104
|
{
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
mandatory: true,
|
|
105
|
+
editorID: 0,
|
|
106
|
+
component: "TextField",
|
|
107
|
+
displayName: "Texto",
|
|
96
108
|
},
|
|
97
109
|
],
|
|
110
|
+
activatedModules: ["TextField"],
|
|
111
|
+
headerRef: { current: { offsetHeight: 63, offsetTop: 24 } } as React.RefObject<HTMLDivElement>,
|
|
112
|
+
// El proxy de `mock<T>()` solo materializa una prop cuando se accede a
|
|
113
|
+
// ella, y el spread de JSX únicamente copia las propias: los callbacks
|
|
114
|
+
// que el componente invoca tienen que estar puestos aquí.
|
|
115
|
+
setSelectedContent: vi.fn(),
|
|
116
|
+
setHeaderHeight: vi.fn(),
|
|
98
117
|
},
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
defaultProps.breadcrumb = [
|
|
104
|
-
{
|
|
105
|
-
editorID: 0,
|
|
106
|
-
component: "TextField",
|
|
107
|
-
displayName: "Texto",
|
|
108
|
-
},
|
|
109
|
-
];
|
|
110
|
-
|
|
111
|
-
defaultProps.activatedModules = ["TextField"];
|
|
112
|
-
|
|
113
|
-
defaultProps.headerRef = { current: { offsetHeight: 63, offsetTop: 24 } } as React.RefObject<HTMLDivElement>;
|
|
114
|
-
const setHeaderHeightMock = defaultProps.setHeaderHeight as jest.MockedFunction<(height: number) => void>;
|
|
118
|
+
overrides,
|
|
119
|
+
);
|
|
115
120
|
|
|
116
121
|
describe("Header component rendering", () => {
|
|
117
122
|
it("should render component", () => {
|
|
118
123
|
render(
|
|
119
124
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
120
|
-
<Header {...
|
|
125
|
+
<Header {...makeProps()} />
|
|
121
126
|
</ThemeProvider>,
|
|
122
127
|
{ store },
|
|
123
128
|
);
|
|
@@ -128,11 +133,9 @@ describe("Header component rendering", () => {
|
|
|
128
133
|
});
|
|
129
134
|
|
|
130
135
|
it("should render the actions menu when clicking the more info button", () => {
|
|
131
|
-
defaultProps.selectedParent = [];
|
|
132
|
-
|
|
133
136
|
render(
|
|
134
137
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
135
|
-
<Header {...
|
|
138
|
+
<Header {...makeProps({ selectedParent: [] })} />
|
|
136
139
|
</ThemeProvider>,
|
|
137
140
|
{ store },
|
|
138
141
|
);
|
|
@@ -144,9 +147,11 @@ describe("Header component rendering", () => {
|
|
|
144
147
|
});
|
|
145
148
|
|
|
146
149
|
it("should trigger the duplicate action", () => {
|
|
150
|
+
const setSelectedContent = vi.fn();
|
|
151
|
+
|
|
147
152
|
render(
|
|
148
153
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
149
|
-
<Header {...
|
|
154
|
+
<Header {...makeProps({ selectedParent: [], setSelectedContent })} />
|
|
150
155
|
</ThemeProvider>,
|
|
151
156
|
{ store },
|
|
152
157
|
);
|
|
@@ -156,6 +161,6 @@ describe("Header component rendering", () => {
|
|
|
156
161
|
const listItem = screen.getAllByTestId("action-menu-item");
|
|
157
162
|
expect(listItem).toHaveLength(3);
|
|
158
163
|
fireEvent.click(listItem[0]);
|
|
159
|
-
expect(
|
|
164
|
+
expect(setSelectedContent).toBeCalled();
|
|
160
165
|
});
|
|
161
166
|
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
|
|
3
3
|
import { ThemeProvider } from "styled-components";
|
|
4
|
-
import { render, cleanup, screen, fireEvent } from "../../../../../../config/
|
|
5
|
-
import { mock } from "
|
|
4
|
+
import { render, cleanup, screen, fireEvent } from "../../../../../../config/tests/test-utils";
|
|
5
|
+
import { mock } from "vitest-mock-extended";
|
|
6
6
|
import configureStore from "redux-mock-store";
|
|
7
7
|
import "@testing-library/jest-dom";
|
|
8
8
|
import thunk from "redux-thunk";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
|
|
3
3
|
import { ThemeProvider } from "styled-components";
|
|
4
|
-
import { render, cleanup, screen } from "../../../../../config/
|
|
5
|
-
import { mock } from "
|
|
4
|
+
import { render, cleanup, screen } from "../../../../../config/tests/test-utils";
|
|
5
|
+
import { mock } from "vitest-mock-extended";
|
|
6
6
|
import configureStore from "redux-mock-store";
|
|
7
7
|
import "@testing-library/jest-dom";
|
|
8
8
|
import thunk from "redux-thunk";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { MockedFunction } from "vitest";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
|
|
3
4
|
import { ThemeProvider } from "styled-components";
|
|
4
|
-
import { render, cleanup, screen, fireEvent } from "../../../../../config/
|
|
5
|
-
import { mock } from "
|
|
5
|
+
import { render, cleanup, screen, fireEvent } from "../../../../../config/tests/test-utils";
|
|
6
|
+
import { mock } from "vitest-mock-extended";
|
|
6
7
|
import configureStore from "redux-mock-store";
|
|
7
8
|
import "@testing-library/jest-dom";
|
|
8
9
|
import thunk from "redux-thunk";
|
|
@@ -50,7 +51,7 @@ const store = mockStore(initialStore);
|
|
|
50
51
|
const defaultProps = mock<IPreviewFormProps>();
|
|
51
52
|
|
|
52
53
|
defaultProps.selectedTab = "content";
|
|
53
|
-
const setSelectedTabMock = defaultProps.setSelectedTab as
|
|
54
|
+
const setSelectedTabMock = defaultProps.setSelectedTab as MockedFunction<(tab: string) => void>;
|
|
54
55
|
|
|
55
56
|
describe("PreviewForm component rendering", () => {
|
|
56
57
|
it("should render component", () => {
|
|
@@ -27,7 +27,7 @@ describe("ContextMenu component rendering", () => {
|
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
it("should render menu container when position is provided", () => {
|
|
30
|
-
const options: IActionMenuOption[] = [{ label: "Edit", action:
|
|
30
|
+
const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
|
|
31
31
|
|
|
32
32
|
const props = {
|
|
33
33
|
position: { x: 100, y: 200 },
|
|
@@ -46,9 +46,9 @@ describe("ContextMenu component rendering", () => {
|
|
|
46
46
|
|
|
47
47
|
it("should render all provided options", () => {
|
|
48
48
|
const options: IActionMenuOption[] = [
|
|
49
|
-
{ label: "Edit", action:
|
|
50
|
-
{ label: "Delete", action:
|
|
51
|
-
{ label: "Duplicate", action:
|
|
49
|
+
{ label: "Edit", action: vi.fn(), icon: "edit" },
|
|
50
|
+
{ label: "Delete", action: vi.fn(), icon: "delete" },
|
|
51
|
+
{ label: "Duplicate", action: vi.fn(), icon: "duplicate" },
|
|
52
52
|
];
|
|
53
53
|
|
|
54
54
|
const props = {
|
|
@@ -69,10 +69,10 @@ describe("ContextMenu component rendering", () => {
|
|
|
69
69
|
|
|
70
70
|
it("should handle null and undefined options in array", () => {
|
|
71
71
|
const options: (IActionMenuOption | undefined | null)[] = [
|
|
72
|
-
{ label: "Edit", action:
|
|
72
|
+
{ label: "Edit", action: vi.fn(), icon: "edit" },
|
|
73
73
|
null,
|
|
74
74
|
undefined,
|
|
75
|
-
{ label: "Delete", action:
|
|
75
|
+
{ label: "Delete", action: vi.fn(), icon: "delete" },
|
|
76
76
|
];
|
|
77
77
|
|
|
78
78
|
const props = {
|
|
@@ -93,7 +93,7 @@ describe("ContextMenu component rendering", () => {
|
|
|
93
93
|
|
|
94
94
|
describe("ContextMenu component positioning", () => {
|
|
95
95
|
it("should apply correct position coordinates", () => {
|
|
96
|
-
const options: IActionMenuOption[] = [{ label: "Edit", action:
|
|
96
|
+
const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
|
|
97
97
|
|
|
98
98
|
const props = {
|
|
99
99
|
position: { x: 150, y: 250 },
|
|
@@ -112,7 +112,7 @@ describe("ContextMenu component positioning", () => {
|
|
|
112
112
|
});
|
|
113
113
|
|
|
114
114
|
it("should adjust position when menu would overflow viewport right edge", () => {
|
|
115
|
-
const options: IActionMenuOption[] = [{ label: "Edit", action:
|
|
115
|
+
const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
|
|
116
116
|
|
|
117
117
|
// Position near right edge with large X coordinate
|
|
118
118
|
const props = {
|
|
@@ -131,7 +131,7 @@ describe("ContextMenu component positioning", () => {
|
|
|
131
131
|
});
|
|
132
132
|
|
|
133
133
|
it("should adjust position when menu would overflow viewport bottom edge", () => {
|
|
134
|
-
const options: IActionMenuOption[] = [{ label: "Edit", action:
|
|
134
|
+
const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
|
|
135
135
|
|
|
136
136
|
// Position near bottom edge with large Y coordinate
|
|
137
137
|
const props = {
|
|
@@ -152,7 +152,7 @@ describe("ContextMenu component positioning", () => {
|
|
|
152
152
|
|
|
153
153
|
describe("ContextMenu component events", () => {
|
|
154
154
|
it("should call action when option is clicked", () => {
|
|
155
|
-
const actionSpy =
|
|
155
|
+
const actionSpy = vi.fn();
|
|
156
156
|
const options: IActionMenuOption[] = [{ label: "Edit", action: actionSpy, icon: "edit" }];
|
|
157
157
|
|
|
158
158
|
const props = {
|
|
@@ -173,8 +173,8 @@ describe("ContextMenu component events", () => {
|
|
|
173
173
|
});
|
|
174
174
|
|
|
175
175
|
it("should close menu and call onClose when option is clicked", () => {
|
|
176
|
-
const actionSpy =
|
|
177
|
-
const onCloseSpy =
|
|
176
|
+
const actionSpy = vi.fn();
|
|
177
|
+
const onCloseSpy = vi.fn();
|
|
178
178
|
const options: IActionMenuOption[] = [{ label: "Edit", action: actionSpy, icon: "edit" }];
|
|
179
179
|
|
|
180
180
|
const props = {
|
|
@@ -197,8 +197,8 @@ describe("ContextMenu component events", () => {
|
|
|
197
197
|
});
|
|
198
198
|
|
|
199
199
|
it("should call onClose when clicking outside the menu", () => {
|
|
200
|
-
const onCloseSpy =
|
|
201
|
-
const options: IActionMenuOption[] = [{ label: "Edit", action:
|
|
200
|
+
const onCloseSpy = vi.fn();
|
|
201
|
+
const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
|
|
202
202
|
|
|
203
203
|
const props = {
|
|
204
204
|
position: { x: 100, y: 200 },
|
|
@@ -220,8 +220,8 @@ describe("ContextMenu component events", () => {
|
|
|
220
220
|
});
|
|
221
221
|
|
|
222
222
|
it("should not call onClose when clicking inside the menu", () => {
|
|
223
|
-
const onCloseSpy =
|
|
224
|
-
const options: IActionMenuOption[] = [{ label: "Edit", action:
|
|
223
|
+
const onCloseSpy = vi.fn();
|
|
224
|
+
const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
|
|
225
225
|
|
|
226
226
|
const props = {
|
|
227
227
|
position: { x: 100, y: 200 },
|
|
@@ -244,9 +244,9 @@ describe("ContextMenu component events", () => {
|
|
|
244
244
|
});
|
|
245
245
|
|
|
246
246
|
it("should handle multiple actions independently", () => {
|
|
247
|
-
const editSpy =
|
|
248
|
-
const deleteSpy =
|
|
249
|
-
const onCloseSpy =
|
|
247
|
+
const editSpy = vi.fn();
|
|
248
|
+
const deleteSpy = vi.fn();
|
|
249
|
+
const onCloseSpy = vi.fn();
|
|
250
250
|
const options: IActionMenuOption[] = [
|
|
251
251
|
{ label: "Edit", action: editSpy, icon: "edit" },
|
|
252
252
|
{ label: "Delete", action: deleteSpy, icon: "delete" },
|
|
@@ -289,7 +289,7 @@ describe("ContextMenu component events", () => {
|
|
|
289
289
|
|
|
290
290
|
describe("ContextMenu component state transitions", () => {
|
|
291
291
|
it("should hide menu when position changes to null", () => {
|
|
292
|
-
const options: IActionMenuOption[] = [{ label: "Edit", action:
|
|
292
|
+
const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
|
|
293
293
|
|
|
294
294
|
const { rerender, container } = render(
|
|
295
295
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
@@ -309,7 +309,7 @@ describe("ContextMenu component state transitions", () => {
|
|
|
309
309
|
});
|
|
310
310
|
|
|
311
311
|
it("should reopen menu at new position", () => {
|
|
312
|
-
const options: IActionMenuOption[] = [{ label: "Edit", action:
|
|
312
|
+
const options: IActionMenuOption[] = [{ label: "Edit", action: vi.fn(), icon: "edit" }];
|
|
313
313
|
|
|
314
314
|
const { rerender } = render(
|
|
315
315
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
@@ -339,7 +339,7 @@ describe("ContextMenu component state transitions", () => {
|
|
|
339
339
|
it("should update options without closing menu", () => {
|
|
340
340
|
const { rerender } = render(
|
|
341
341
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
342
|
-
<ContextMenu position={{ x: 100, y: 200 }} options={[{ label: "Edit", action:
|
|
342
|
+
<ContextMenu position={{ x: 100, y: 200 }} options={[{ label: "Edit", action: vi.fn(), icon: "edit" }]} />
|
|
343
343
|
</ThemeProvider>,
|
|
344
344
|
);
|
|
345
345
|
|
|
@@ -350,8 +350,8 @@ describe("ContextMenu component state transitions", () => {
|
|
|
350
350
|
<ContextMenu
|
|
351
351
|
position={{ x: 100, y: 200 }}
|
|
352
352
|
options={[
|
|
353
|
-
{ label: "Edit", action:
|
|
354
|
-
{ label: "Delete", action:
|
|
353
|
+
{ label: "Edit", action: vi.fn(), icon: "edit" },
|
|
354
|
+
{ label: "Delete", action: vi.fn(), icon: "delete" },
|
|
355
355
|
]}
|
|
356
356
|
/>
|
|
357
357
|
</ThemeProvider>,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { MockedFunction } from "vitest";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
|
|
3
4
|
import { ThemeProvider } from "styled-components";
|
|
4
5
|
import { render, cleanup, screen, fireEvent } from "@testing-library/react";
|
|
5
|
-
import { mock } from "
|
|
6
|
+
import { mock } from "vitest-mock-extended";
|
|
6
7
|
import "@testing-library/jest-dom";
|
|
7
8
|
|
|
8
9
|
import { parseTheme } from "@ax/helpers";
|
|
@@ -12,10 +13,10 @@ import globalTheme from "@ax/themes/theme.json";
|
|
|
12
13
|
afterEach(cleanup);
|
|
13
14
|
|
|
14
15
|
const defaultProps = mock<IDragAndDropProps>();
|
|
15
|
-
const onDropMock = defaultProps.onDrop as
|
|
16
|
-
const onDragOverMock = defaultProps.onDragOver as
|
|
17
|
-
const onDragEnterMock = defaultProps.onDragEnter as
|
|
18
|
-
const onDragLeaveMock = defaultProps.onDragLeave as
|
|
16
|
+
const onDropMock = defaultProps.onDrop as MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
|
|
17
|
+
const onDragOverMock = defaultProps.onDragOver as MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
|
|
18
|
+
const onDragEnterMock = defaultProps.onDragEnter as MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
|
|
19
|
+
const onDragLeaveMock = defaultProps.onDragLeave as MockedFunction<(e: React.DragEvent<HTMLDivElement>) => void>;
|
|
19
20
|
defaultProps.children = React.createElement("button", null, "back button");
|
|
20
21
|
|
|
21
22
|
describe("ErrorCenter component rendering", () => {
|