@webiny/app-website-builder-workflows 0.0.0-unstable.0156a4c312
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/Components/ContentReviews/WbContentReviews.d.ts +2 -0
- package/Components/ContentReviews/WbContentReviews.js +41 -0
- package/Components/ContentReviews/WbContentReviews.js.map +1 -0
- package/Components/ContentReviews/WbContentReviews.smoke.test.d.ts +1 -0
- package/Components/ContentReviews/WbContentReviews.smoke.test.js +59 -0
- package/Components/ContentReviews/WbContentReviews.smoke.test.js.map +1 -0
- package/Components/ContentReviews/WbContentReviews.test.d.ts +1 -0
- package/Components/ContentReviews/WbContentReviews.test.js +80 -0
- package/Components/ContentReviews/WbContentReviews.test.js.map +1 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.d.ts +2 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.js +18 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.js.map +1 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.test.d.ts +1 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.test.js +67 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.test.js.map +1 -0
- package/Components/PageEditor/DisabledPublishButton.d.ts +6 -0
- package/Components/PageEditor/DisabledPublishButton.js +17 -0
- package/Components/PageEditor/DisabledPublishButton.js.map +1 -0
- package/Components/PageEditor/DisabledPublishButton.test.d.ts +1 -0
- package/Components/PageEditor/DisabledPublishButton.test.js +67 -0
- package/Components/PageEditor/DisabledPublishButton.test.js.map +1 -0
- package/Components/PageEditor/PageBasePublishDecorator.d.ts +2 -0
- package/Components/PageEditor/PageBasePublishDecorator.js +23 -0
- package/Components/PageEditor/PageBasePublishDecorator.js.map +1 -0
- package/Components/PageEditor/PageEditorAutoSave.d.ts +2 -0
- package/Components/PageEditor/PageEditorAutoSave.js +23 -0
- package/Components/PageEditor/PageEditorAutoSave.js.map +1 -0
- package/Components/PageEditor/PageEditorAutoSave.test.d.ts +1 -0
- package/Components/PageEditor/PageEditorAutoSave.test.js +111 -0
- package/Components/PageEditor/PageEditorAutoSave.test.js.map +1 -0
- package/Components/PageEditor/PageEditorConfig.d.ts +2 -0
- package/Components/PageEditor/PageEditorConfig.js +13 -0
- package/Components/PageEditor/PageEditorConfig.js.map +1 -0
- package/Components/PageEditor/PageEditorLayout.d.ts +2 -0
- package/Components/PageEditor/PageEditorLayout.js +10 -0
- package/Components/PageEditor/PageEditorLayout.js.map +1 -0
- package/Components/PageEditor/PageEditorLayout.test.d.ts +1 -0
- package/Components/PageEditor/PageEditorLayout.test.js +121 -0
- package/Components/PageEditor/PageEditorLayout.test.js.map +1 -0
- package/Components/PageEditor/PageEditorTopBar.d.ts +2 -0
- package/Components/PageEditor/PageEditorTopBar.js +10 -0
- package/Components/PageEditor/PageEditorTopBar.js.map +1 -0
- package/Components/PageEditor/PageEditorTopBar.test.d.ts +1 -0
- package/Components/PageEditor/PageEditorTopBar.test.js +175 -0
- package/Components/PageEditor/PageEditorTopBar.test.js.map +1 -0
- package/Components/PageEditor/PageNewRevisionDecorator.d.ts +2 -0
- package/Components/PageEditor/PageNewRevisionDecorator.js +24 -0
- package/Components/PageEditor/PageNewRevisionDecorator.js.map +1 -0
- package/Components/PageEditor/PageNewRevisionDecorator.test.d.ts +1 -0
- package/Components/PageEditor/PageNewRevisionDecorator.test.js +107 -0
- package/Components/PageEditor/PageNewRevisionDecorator.test.js.map +1 -0
- package/Components/PageEditor/PageReadOnlySync.d.ts +3 -0
- package/Components/PageEditor/PageReadOnlySync.js +23 -0
- package/Components/PageEditor/PageReadOnlySync.js.map +1 -0
- package/Components/PageEditor/PageReviewBar.d.ts +4 -0
- package/Components/PageEditor/PageReviewBar.js +93 -0
- package/Components/PageEditor/PageReviewBar.js.map +1 -0
- package/Components/PageEditor/PageReviewBar.test.d.ts +1 -0
- package/Components/PageEditor/PageReviewBar.test.js +135 -0
- package/Components/PageEditor/PageReviewBar.test.js.map +1 -0
- package/Components/PageEditor/PageReviewPublishAction.d.ts +2 -0
- package/Components/PageEditor/PageReviewPublishAction.js +15 -0
- package/Components/PageEditor/PageReviewPublishAction.js.map +1 -0
- package/Components/PageEditor/PageReviewPublishButton.d.ts +4 -0
- package/Components/PageEditor/PageReviewPublishButton.js +23 -0
- package/Components/PageEditor/PageReviewPublishButton.js.map +1 -0
- package/Components/PageEditor/PageScheduleDecorator.d.ts +2 -0
- package/Components/PageEditor/PageScheduleDecorator.js +23 -0
- package/Components/PageEditor/PageScheduleDecorator.js.map +1 -0
- package/Components/PageEditor/PageScheduleDecorator.test.d.ts +1 -0
- package/Components/PageEditor/PageScheduleDecorator.test.js +75 -0
- package/Components/PageEditor/PageScheduleDecorator.test.js.map +1 -0
- package/Components/PageEditor/getPageReadOnlyReason.d.ts +4 -0
- package/Components/PageEditor/getPageReadOnlyReason.js +20 -0
- package/Components/PageEditor/getPageReadOnlyReason.js.map +1 -0
- package/Components/PageEditor/getPageReadOnlyReason.test.d.ts +1 -0
- package/Components/PageEditor/getPageReadOnlyReason.test.js +122 -0
- package/Components/PageEditor/getPageReadOnlyReason.test.js.map +1 -0
- package/Components/PageEditor/getPageReviewContext.d.ts +9 -0
- package/Components/PageEditor/getPageReviewContext.js +13 -0
- package/Components/PageEditor/getPageReviewContext.js.map +1 -0
- package/Components/PageEditor/getPageReviewContext.test.d.ts +1 -0
- package/Components/PageEditor/getPageReviewContext.test.js +42 -0
- package/Components/PageEditor/getPageReviewContext.test.js.map +1 -0
- package/Components/PageEditor/pageEditorDocument.d.ts +17 -0
- package/Components/PageEditor/pageEditorDocument.js +0 -0
- package/Components/PageEditor/pageReviewMatrix.test.d.ts +1 -0
- package/Components/PageEditor/pageReviewMatrix.test.js +223 -0
- package/Components/PageEditor/pageReviewMatrix.test.js.map +1 -0
- package/Components/PageEditor/publishMatrix.test.d.ts +1 -0
- package/Components/PageEditor/publishMatrix.test.js +313 -0
- package/Components/PageEditor/publishMatrix.test.js.map +1 -0
- package/Components/PagesList/PageListReviewGatedActions.d.ts +2 -0
- package/Components/PagesList/PageListReviewGatedActions.js +27 -0
- package/Components/PagesList/PageListReviewGatedActions.js.map +1 -0
- package/Components/PagesList/PageListReviewGatedActions.test.d.ts +1 -0
- package/Components/PagesList/PageListReviewGatedActions.test.js +94 -0
- package/Components/PagesList/PageListReviewGatedActions.test.js.map +1 -0
- package/Components/PagesList/PagesList.d.ts +2 -0
- package/Components/PagesList/PagesList.js +8 -0
- package/Components/PagesList/PagesList.js.map +1 -0
- package/Components/PagesList/PagesList.test.d.ts +1 -0
- package/Components/PagesList/PagesList.test.js +47 -0
- package/Components/PagesList/PagesList.test.js.map +1 -0
- package/Components/PagesList/index.d.ts +1 -0
- package/Components/PagesList/index.js +1 -0
- package/Components/index.d.ts +2 -0
- package/Components/index.js +2 -0
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.d.ts +2 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.js +23 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.js.map +1 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.test.d.ts +1 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.test.js +141 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.test.js.map +1 -0
- package/Routes/index.d.ts +1 -0
- package/Routes/index.js +1 -0
- package/constants.d.ts +1 -0
- package/constants.js +4 -0
- package/constants.js.map +1 -0
- package/editorGlue.wiring.test.d.ts +1 -0
- package/editorGlue.wiring.test.js +128 -0
- package/editorGlue.wiring.test.js.map +1 -0
- package/features/cache/WbReviewCacheSyncHandler.d.ts +8 -0
- package/features/cache/WbReviewCacheSyncHandler.js +14 -0
- package/features/cache/WbReviewCacheSyncHandler.js.map +1 -0
- package/features/cache/WbReviewPageCacheWriter.d.ts +17 -0
- package/features/cache/WbReviewPageCacheWriter.js +39 -0
- package/features/cache/WbReviewPageCacheWriter.js.map +1 -0
- package/features/cache/WbReviewPageCacheWriter.test.d.ts +1 -0
- package/features/cache/WbReviewPageCacheWriter.test.js +115 -0
- package/features/cache/WbReviewPageCacheWriter.test.js.map +1 -0
- package/features/cache/abstractions.d.ts +5 -0
- package/features/cache/abstractions.js +5 -0
- package/features/cache/abstractions.js.map +1 -0
- package/features/cache/feature.d.ts +1 -0
- package/features/cache/feature.js +13 -0
- package/features/cache/feature.js.map +1 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.d.ts +25 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.js +112 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.js.map +1 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.test.d.ts +1 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.test.js +632 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.test.js.map +1 -0
- package/features/editorGateway/feature.d.ts +1 -0
- package/features/editorGateway/feature.js +11 -0
- package/features/editorGateway/feature.js.map +1 -0
- package/features/editorGateway/feature.test.d.ts +1 -0
- package/features/editorGateway/feature.test.js +244 -0
- package/features/editorGateway/feature.test.js.map +1 -0
- package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.js +19 -0
- package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.js +19 -0
- package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.d.ts +1 -0
- package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.js +19 -0
- package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.js.map +1 -0
- package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.d.ts +1 -0
- package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.js +23 -0
- package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.js.map +1 -0
- package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.js +19 -0
- package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/websiteBuilderPageFolderExists.d.ts +1 -0
- package/features/editorGateway/graphql/websiteBuilderPageFolderExists.js +16 -0
- package/features/editorGateway/graphql/websiteBuilderPageFolderExists.js.map +1 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.d.ts +21 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.js +45 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.js.map +1 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.test.d.ts +1 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.test.js +115 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.test.js.map +1 -0
- package/features/editorMounting/abstractions.d.ts +5 -0
- package/features/editorMounting/abstractions.js +5 -0
- package/features/editorMounting/abstractions.js.map +1 -0
- package/features/editorMounting/feature.d.ts +3 -0
- package/features/editorMounting/feature.js +19 -0
- package/features/editorMounting/feature.js.map +1 -0
- package/features/editorMounting/feature.test.d.ts +1 -0
- package/features/editorMounting/feature.test.js +93 -0
- package/features/editorMounting/feature.test.js.map +1 -0
- package/features/editorReview/WbPageContentReloader.d.ts +12 -0
- package/features/editorReview/WbPageContentReloader.js +40 -0
- package/features/editorReview/WbPageContentReloader.js.map +1 -0
- package/features/editorReview/WbPageContentReloader.test.d.ts +1 -0
- package/features/editorReview/WbPageContentReloader.test.js +222 -0
- package/features/editorReview/WbPageContentReloader.test.js.map +1 -0
- package/features/editorReview/WbPageReview.d.ts +8 -0
- package/features/editorReview/WbPageReview.js +14 -0
- package/features/editorReview/WbPageReview.js.map +1 -0
- package/features/editorReview/WbPageUnsavedChanges.d.ts +8 -0
- package/features/editorReview/WbPageUnsavedChanges.js +12 -0
- package/features/editorReview/WbPageUnsavedChanges.js.map +1 -0
- package/features/editorReview/WbPageUnsavedChanges.test.d.ts +1 -0
- package/features/editorReview/WbPageUnsavedChanges.test.js +33 -0
- package/features/editorReview/WbPageUnsavedChanges.test.js.map +1 -0
- package/features/editorReview/abstractions.d.ts +5 -0
- package/features/editorReview/abstractions.js +5 -0
- package/features/editorReview/abstractions.js.map +1 -0
- package/features/editorReview/feature.d.ts +3 -0
- package/features/editorReview/feature.js +17 -0
- package/features/editorReview/feature.js.map +1 -0
- package/features/gateway/WbReviewChangeMessageHandler.d.ts +8 -0
- package/features/gateway/WbReviewChangeMessageHandler.js +16 -0
- package/features/gateway/WbReviewChangeMessageHandler.js.map +1 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.d.ts +13 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.js +35 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.js.map +1 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.d.ts +1 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.js +47 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.js.map +1 -0
- package/features/gateway/WbReviewContentAdapter/abstractions.d.ts +5 -0
- package/features/gateway/WbReviewContentAdapter/abstractions.js +5 -0
- package/features/gateway/WbReviewContentAdapter/abstractions.js.map +1 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.d.ts +51 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.js +216 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.js.map +1 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.test.d.ts +1 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.test.js +647 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.test.js.map +1 -0
- package/features/gateway/WbReviewNotificationHandler.d.ts +8 -0
- package/features/gateway/WbReviewNotificationHandler.js +16 -0
- package/features/gateway/WbReviewNotificationHandler.js.map +1 -0
- package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.d.ts +8 -0
- package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.js +14 -0
- package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.js.map +1 -0
- package/features/gateway/WbReviewRowProvider/abstractions.d.ts +5 -0
- package/features/gateway/WbReviewRowProvider/abstractions.js +5 -0
- package/features/gateway/WbReviewRowProvider/abstractions.js.map +1 -0
- package/features/gateway/assertWbPageNamespace.d.ts +1 -0
- package/features/gateway/assertWbPageNamespace.js +7 -0
- package/features/gateway/assertWbPageNamespace.js.map +1 -0
- package/features/gateway/contentReviewsBindings.test.d.ts +1 -0
- package/features/gateway/contentReviewsBindings.test.js +159 -0
- package/features/gateway/contentReviewsBindings.test.js.map +1 -0
- package/features/gateway/feature.d.ts +4 -0
- package/features/gateway/feature.js +27 -0
- package/features/gateway/feature.js.map +1 -0
- package/features/gateway/feature.test.d.ts +1 -0
- package/features/gateway/feature.test.js +85 -0
- package/features/gateway/feature.test.js.map +1 -0
- package/features/gateway/graphql/WbOperationResponse.d.ts +3 -0
- package/features/gateway/graphql/WbOperationResponse.js +0 -0
- package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.js +22 -0
- package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReview.d.ts +1 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReview.js +18 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReview.js.map +1 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.d.ts +1 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.js +26 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.js.map +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReview.d.ts +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReview.js +18 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReview.js.map +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.d.ts +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.js +18 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.js.map +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.d.ts +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.js +18 -0
- package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.js.map +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.d.ts +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.js +18 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.js.map +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviews.d.ts +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviews.js +34 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviews.js.map +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.d.ts +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.js +22 -0
- package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.js.map +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.d.ts +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.js +18 -0
- package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.js.map +1 -0
- package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.js +22 -0
- package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.js +22 -0
- package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/requestWebsiteBuilderPageReview.d.ts +1 -0
- package/features/gateway/graphql/requestWebsiteBuilderPageReview.js +26 -0
- package/features/gateway/graphql/requestWebsiteBuilderPageReview.js.map +1 -0
- package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.js +18 -0
- package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.js +18 -0
- package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.js +26 -0
- package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.d.ts +14 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.js +27 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.js.map +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.d.ts +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.js +234 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.js.map +1 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.js +23 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.js +114 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.js +23 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.test.js +134 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/feature.d.ts +1 -0
- package/features/trash/feature.js +15 -0
- package/features/trash/feature.js.map +1 -0
- package/features/trash/feature.test.d.ts +1 -0
- package/features/trash/feature.test.js +183 -0
- package/features/trash/feature.test.js.map +1 -0
- package/hooks/usePage.d.ts +5 -0
- package/hooks/usePage.js +15 -0
- package/hooks/usePage.js.map +1 -0
- package/hooks/usePage.test.d.ts +1 -0
- package/hooks/usePage.test.js +49 -0
- package/hooks/usePage.test.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +40 -0
- package/index.js.map +1 -0
- package/index.mount.test.d.ts +1 -0
- package/index.mount.test.js +50 -0
- package/index.mount.test.js.map +1 -0
- package/index.test.d.ts +1 -0
- package/index.test.js +523 -0
- package/index.test.js.map +1 -0
- package/package.json +54 -0
- package/pageListChangeStatus.wiring.test.d.ts +1 -0
- package/pageListChangeStatus.wiring.test.js +175 -0
- package/pageListChangeStatus.wiring.test.js.map +1 -0
- package/pageListGlue.wiring.test.d.ts +1 -0
- package/pageListGlue.wiring.test.js +220 -0
- package/pageListGlue.wiring.test.js.map +1 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.d.ts +8 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.js +16 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.js.map +1 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.d.ts +1 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.js +19 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.js.map +1 -0
- package/presentation/page/PageGet/feature.d.ts +1 -0
- package/presentation/page/PageGet/feature.js +11 -0
- package/presentation/page/PageGet/feature.js.map +1 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.d.ts +8 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.js +16 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.js.map +1 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.d.ts +1 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.js +19 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.js.map +1 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.d.ts +12 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.js +24 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.js.map +1 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.d.ts +1 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.js +70 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.js.map +1 -0
- package/presentation/page/PageList/feature.d.ts +1 -0
- package/presentation/page/PageList/feature.js +13 -0
- package/presentation/page/PageList/feature.js.map +1 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.d.ts +15 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.js +36 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.js.map +1 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.d.ts +1 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.js +119 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.js.map +1 -0
- package/presentation/page/RevisionList/feature.d.ts +1 -0
- package/presentation/page/RevisionList/feature.js +11 -0
- package/presentation/page/RevisionList/feature.js.map +1 -0
- package/presentation/page/wbReviewPageSelection.d.ts +1 -0
- package/presentation/page/wbReviewPageSelection.js +9 -0
- package/presentation/page/wbReviewPageSelection.js.map +1 -0
- package/publishAutosave.wiring.test.d.ts +1 -0
- package/publishAutosave.wiring.test.js +162 -0
- package/publishAutosave.wiring.test.js.map +1 -0
- package/routes.d.ts +9 -0
- package/routes.js +19 -0
- package/routes.js.map +1 -0
- package/testing/WbEditorHarness.d.ts +11 -0
- package/testing/WbEditorHarness.js +22 -0
- package/testing/WbEditorHarness.js.map +1 -0
- package/testing/createFakeSession.d.ts +9 -0
- package/testing/createFakeSession.js +29 -0
- package/testing/createFakeSession.js.map +1 -0
- package/testing/createFakeVm.d.ts +3 -0
- package/testing/createFakeVm.js +51 -0
- package/testing/createFakeVm.js.map +1 -0
- package/testing/createFolder.d.ts +2 -0
- package/testing/createFolder.js +13 -0
- package/testing/createFolder.js.map +1 -0
- package/testing/createPageEditor.d.ts +4 -0
- package/testing/createPageEditor.js +26 -0
- package/testing/createPageEditor.js.map +1 -0
- package/testing/registerPageContent.d.ts +20 -0
- package/testing/registerPageContent.js +28 -0
- package/testing/registerPageContent.js.map +1 -0
- package/types.d.ts +9 -0
- package/types.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/trash/DeletePageUseCaseReviewDecorator.test.js","sources":["../../../src/features/trash/DeletePageUseCaseReviewDecorator.test.ts"],"sourcesContent":["import { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { Container } from \"@webiny/di\";\nimport { GraphQLOperationError } from \"@webiny/app/errors/index.js\";\nimport { Confirmation } from \"@webiny/app-admin/features/confirmation/abstractions.js\";\nimport { Notifications } from \"@webiny/app-admin/features/notifications/abstractions.js\";\nimport { DeletePageUseCase } from \"@webiny/app-website-builder/features/pages/deletePage/abstractions.js\";\nimport { ReviewErrorCode } from \"@webiny/app-workflows/review/domain/ReviewErrorCode.js\";\nimport { ActiveReviewBlockCollector } from \"@webiny/app-workflows/review/trash/ActiveReviewBlockCollector/ActiveReviewBlockCollector.js\";\nimport { ActiveReviewGuard } from \"@webiny/app-workflows/review/trash/ActiveReviewGuard/ActiveReviewGuard.js\";\nimport { createTrashUseCaseFakes } from \"@webiny/app-workflows/review/testing/createTrashUseCaseFakes.js\";\nimport { registerTrashUseCaseFakes } from \"@webiny/app-workflows/review/testing/registerTrashUseCaseFakes.js\";\nimport { DeletePageUseCaseReviewDecorator } from \"./DeletePageUseCaseReviewDecorator.js\";\n\nfunction createRefusal() {\n return new GraphQLOperationError({\n message: \"This content has a review in progress.\",\n code: ReviewErrorCode.ActiveReviewOnTrash,\n data: {\n model: \"wb.page\",\n action: \"trash\",\n reviews: [\n {\n reviewId: \"review-1\",\n model: \"wb.page\",\n targetId: \"page-1\",\n targetRevisionId: \"page-1#0002\",\n title: \"Home page\",\n stepPosition: 1,\n stepCount: 2,\n stepName: \"Editor\"\n }\n ]\n }\n });\n}\n\nfunction setup(decision: \"confirm\" | \"dismiss\" = \"confirm\") {\n const confirm = vi.fn(\n async (_name: string, _params: unknown, execute?: (data: unknown) => Promise<unknown>) => {\n if (decision === \"dismiss\") {\n return false;\n }\n return execute ? execute(undefined) : undefined;\n }\n );\n const decoratee = { execute: vi.fn() };\n const useCases = createTrashUseCaseFakes();\n\n const container = new Container();\n container.registerInstance(Confirmation, { confirm } as unknown as Confirmation.Interface);\n container.registerInstance(Notifications, {\n notify: vi.fn(),\n success: vi.fn(),\n warning: vi.fn()\n } as unknown as Notifications.Interface);\n container.register(ActiveReviewBlockCollector).inSingletonScope();\n container.register(ActiveReviewGuard).inSingletonScope();\n registerTrashUseCaseFakes(container, useCases);\n container.registerInstance(DeletePageUseCase, decoratee);\n container.registerDecorator(DeletePageUseCaseReviewDecorator);\n\n return { confirm, decoratee, useCases, useCase: container.resolve(DeletePageUseCase) };\n}\n\ndescribe(\"DeletePageUseCaseReviewDecorator\", () => {\n it(\"passes through to the decoratee when the trash succeeds\", async () => {\n const { confirm, decoratee, useCases, useCase } = setup();\n decoratee.execute.mockResolvedValue(true);\n\n const result = await useCase.execute({ id: \"page-1#0002\", permanently: false });\n\n expect(result).toBe(true);\n expect(decoratee.execute).toHaveBeenCalledWith({ id: \"page-1#0002\", permanently: false });\n expect(confirm).not.toHaveBeenCalled();\n expect(useCases.cancelReviewsForDelete.execute).not.toHaveBeenCalled();\n });\n\n it(\"on the server refusal warns, cancels every revision of the page once and repeats the trash\", async () => {\n const { confirm, decoratee, useCases, useCase } = setup();\n decoratee.execute.mockRejectedValueOnce(createRefusal()).mockResolvedValueOnce(true);\n\n const result = await useCase.execute({ id: \"page-1#0002\", permanently: false });\n\n expect(result).toBe(true);\n expect(confirm).toHaveBeenCalledTimes(1);\n expect(useCases.cancelReviewsForDelete.execute).toHaveBeenCalledTimes(1);\n expect(useCases.cancelReviewsForDelete.execute).toHaveBeenCalledWith({\n namespace: \"wb.page\",\n targetId: \"page-1\",\n targetRevisionId: null,\n action: \"trash\"\n });\n expect(decoratee.execute).toHaveBeenCalledTimes(2);\n });\n\n it(\"resolves false when the warning is dismissed, with nothing cancelled or repeated\", async () => {\n const { decoratee, useCases, useCase } = setup(\"dismiss\");\n decoratee.execute.mockRejectedValue(createRefusal());\n\n const result = await useCase.execute({ id: \"page-1#0002\", permanently: false });\n\n expect(result).toBe(false);\n expect(useCases.cancelReviewsForDelete.execute).not.toHaveBeenCalled();\n expect(decoratee.execute).toHaveBeenCalledTimes(1);\n });\n\n it(\"rethrows any other error unchanged\", async () => {\n const { confirm, decoratee, useCase } = setup();\n const failure = new Error(\"Network down\");\n decoratee.execute.mockRejectedValue(failure);\n\n const error = await useCase\n .execute({ id: \"page-1#0002\", permanently: false })\n .catch(e => e);\n\n expect(error).toBe(failure);\n expect(confirm).not.toHaveBeenCalled();\n });\n\n it(\"propagates a second refusal after the repeat\", async () => {\n const { confirm, decoratee, useCase } = setup();\n const second = createRefusal();\n decoratee.execute.mockRejectedValueOnce(createRefusal()).mockRejectedValueOnce(second);\n\n const error = await useCase\n .execute({ id: \"page-1#0002\", permanently: false })\n .catch(e => e);\n\n expect(error).toBe(second);\n expect(confirm).toHaveBeenCalledTimes(1);\n });\n});\n"],"names":["createRefusal","GraphQLOperationError","ReviewErrorCode","setup","decision","confirm","vi","_name","_params","execute","undefined","decoratee","useCases","createTrashUseCaseFakes","container","Container","Confirmation","Notifications","ActiveReviewBlockCollector","ActiveReviewGuard","registerTrashUseCaseFakes","DeletePageUseCase","DeletePageUseCaseReviewDecorator","describe","it","useCase","result","expect","failure","Error","error","e","second"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const WbReviewTrashFeature: import("@webiny/feature/admin").FeatureDefinition<any, []>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/admin";
|
|
2
|
+
import { DeletePageUseCaseReviewDecorator } from "./DeletePageUseCaseReviewDecorator.js";
|
|
3
|
+
import { DeletePageRevisionUseCaseReviewDecorator } from "./DeletePageRevisionUseCaseReviewDecorator.js";
|
|
4
|
+
import { BulkDeletePresenterReviewDecorator } from "./BulkDeletePresenterReviewDecorator.js";
|
|
5
|
+
const WbReviewTrashFeature = createFeature({
|
|
6
|
+
name: "WebsiteBuilderWorkflows/Trash",
|
|
7
|
+
register (container) {
|
|
8
|
+
container.registerDecorator(DeletePageUseCaseReviewDecorator);
|
|
9
|
+
container.registerDecorator(DeletePageRevisionUseCaseReviewDecorator);
|
|
10
|
+
container.registerDecorator(BulkDeletePresenterReviewDecorator);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
export { WbReviewTrashFeature };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/trash/feature.js","sources":["../../../src/features/trash/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { DeletePageUseCaseReviewDecorator } from \"./DeletePageUseCaseReviewDecorator.js\";\nimport { DeletePageRevisionUseCaseReviewDecorator } from \"./DeletePageRevisionUseCaseReviewDecorator.js\";\nimport { BulkDeletePresenterReviewDecorator } from \"./BulkDeletePresenterReviewDecorator.js\";\n\nexport const WbReviewTrashFeature = createFeature({\n name: \"WebsiteBuilderWorkflows/Trash\",\n register(container) {\n container.registerDecorator(DeletePageUseCaseReviewDecorator);\n container.registerDecorator(DeletePageRevisionUseCaseReviewDecorator);\n container.registerDecorator(BulkDeletePresenterReviewDecorator);\n }\n});\n"],"names":["WbReviewTrashFeature","createFeature","container","DeletePageUseCaseReviewDecorator","DeletePageRevisionUseCaseReviewDecorator","BulkDeletePresenterReviewDecorator"],"mappings":";;;;AAKO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,iBAAiB,CAACC;QAC5BD,UAAU,iBAAiB,CAACE;QAC5BF,UAAU,iBAAiB,CAACG;IAChC;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { render } from "@testing-library/react";
|
|
4
|
+
import { Container } from "@webiny/di";
|
|
5
|
+
import { DiContainerProvider } from "@webiny/app/shared/di/DiContainerProvider.js";
|
|
6
|
+
import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
|
|
7
|
+
import { FeatureFlagsService } from "@webiny/app-admin/features/featureFlags/abstractions.js";
|
|
8
|
+
import { FeatureFlags } from "@webiny/feature-flags";
|
|
9
|
+
import { Page } from "@webiny/app-website-builder/domain/Page/Page.js";
|
|
10
|
+
import { DeletePageUseCase } from "@webiny/app-website-builder/features/pages/deletePage/abstractions.js";
|
|
11
|
+
import { DeletePageRevisionUseCase } from "@webiny/app-website-builder/features/pages/deletePageRevision/abstractions.js";
|
|
12
|
+
import { BulkDeletePresenter } from "@webiny/app-website-builder/presentation/pages/bulkActions/abstractions.js";
|
|
13
|
+
import { ReviewNotificationService } from "@webiny/app-workflows/review/notifications/abstractions.js";
|
|
14
|
+
import { ActiveReviewGuard } from "@webiny/app-workflows/review/trash/ActiveReviewGuard/abstractions.js";
|
|
15
|
+
import { createTrashUseCaseFakes } from "@webiny/app-workflows/review/testing/createTrashUseCaseFakes.js";
|
|
16
|
+
import { registerTrashUseCaseFakes } from "@webiny/app-workflows/review/testing/registerTrashUseCaseFakes.js";
|
|
17
|
+
import { WebsiteBuilderWorkflows } from "../../index.js";
|
|
18
|
+
import { WbReviewTrashFeature } from "./feature.js";
|
|
19
|
+
vi.mock("~/Routes/index.js", ()=>({
|
|
20
|
+
WebsiteBuilderWorkflowsMenu: ()=>null
|
|
21
|
+
}));
|
|
22
|
+
vi.mock("~/Components/index.js", ()=>({
|
|
23
|
+
PageEditorConfig: ()=>null,
|
|
24
|
+
PagesList: ()=>null
|
|
25
|
+
}));
|
|
26
|
+
vi.mock("~/Components/ContentReviews/WbContentReviews.js", ()=>({
|
|
27
|
+
WbContentReviews: ()=>null
|
|
28
|
+
}));
|
|
29
|
+
vi.mock("~/presentation/page/PageList/feature.js", ()=>({
|
|
30
|
+
PageListWorkflowsFeature: {
|
|
31
|
+
name: "Mock",
|
|
32
|
+
register: ()=>void 0,
|
|
33
|
+
resolve: ()=>void 0
|
|
34
|
+
}
|
|
35
|
+
}));
|
|
36
|
+
vi.mock("~/presentation/page/PageGet/feature.js", ()=>({
|
|
37
|
+
PageGetWorkflowsFeature: {
|
|
38
|
+
name: "Mock",
|
|
39
|
+
register: ()=>void 0,
|
|
40
|
+
resolve: ()=>void 0
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
describe("WebsiteBuilderWorkflows (composition root)", ()=>{
|
|
44
|
+
const createContainer = (isEnabled)=>{
|
|
45
|
+
const flagsService = {
|
|
46
|
+
getFlags: ()=>new FeatureFlags({
|
|
47
|
+
advancedPublishingWorkflow: isEnabled
|
|
48
|
+
}),
|
|
49
|
+
isLoaded: ()=>true,
|
|
50
|
+
loadFlags: async ()=>void 0
|
|
51
|
+
};
|
|
52
|
+
const guard = {
|
|
53
|
+
run: vi.fn(async (params)=>params.action()),
|
|
54
|
+
runBulk: vi.fn(async (params)=>params.run(params.items, false))
|
|
55
|
+
};
|
|
56
|
+
const deletePage = {
|
|
57
|
+
execute: vi.fn(async ()=>true)
|
|
58
|
+
};
|
|
59
|
+
const deleteRevision = {
|
|
60
|
+
execute: vi.fn(async ()=>true)
|
|
61
|
+
};
|
|
62
|
+
const bulk = {
|
|
63
|
+
vm: {
|
|
64
|
+
processing: false,
|
|
65
|
+
results: []
|
|
66
|
+
},
|
|
67
|
+
execute: vi.fn(async ()=>void 0)
|
|
68
|
+
};
|
|
69
|
+
const container = new Container();
|
|
70
|
+
container.registerInstance(FeatureFlagsService, flagsService);
|
|
71
|
+
container.registerInstance(MainGraphQLClient, {
|
|
72
|
+
execute: vi.fn()
|
|
73
|
+
});
|
|
74
|
+
container.registerInstance(ReviewNotificationService, {
|
|
75
|
+
handle: vi.fn()
|
|
76
|
+
});
|
|
77
|
+
container.registerInstance(ActiveReviewGuard, guard);
|
|
78
|
+
container.registerInstance(DeletePageUseCase, deletePage);
|
|
79
|
+
container.registerInstance(DeletePageRevisionUseCase, deleteRevision);
|
|
80
|
+
container.registerInstance(BulkDeletePresenter, bulk);
|
|
81
|
+
return {
|
|
82
|
+
container,
|
|
83
|
+
guard,
|
|
84
|
+
deletePage,
|
|
85
|
+
deleteRevision,
|
|
86
|
+
bulk
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
const exercise = async (container)=>{
|
|
90
|
+
await container.resolve(DeletePageUseCase).execute({
|
|
91
|
+
id: "p1#0001",
|
|
92
|
+
permanently: false
|
|
93
|
+
});
|
|
94
|
+
await container.resolve(DeletePageRevisionUseCase).execute({
|
|
95
|
+
id: "p1#0002"
|
|
96
|
+
});
|
|
97
|
+
await container.resolve(BulkDeletePresenter).execute([
|
|
98
|
+
Page.create({
|
|
99
|
+
id: "p1#0001",
|
|
100
|
+
entryId: "p1"
|
|
101
|
+
})
|
|
102
|
+
]);
|
|
103
|
+
};
|
|
104
|
+
it("wraps the page delete, revision delete and bulk delete with the guard when the flag is on", async ()=>{
|
|
105
|
+
const { container, guard, deletePage, deleteRevision } = createContainer(true);
|
|
106
|
+
render(/*#__PURE__*/ react.createElement(DiContainerProvider, {
|
|
107
|
+
container: container
|
|
108
|
+
}, /*#__PURE__*/ react.createElement(WebsiteBuilderWorkflows, null)));
|
|
109
|
+
await exercise(container);
|
|
110
|
+
expect(guard.run).toHaveBeenCalledTimes(2);
|
|
111
|
+
expect(guard.runBulk).toHaveBeenCalledTimes(1);
|
|
112
|
+
expect(deletePage.execute).toHaveBeenCalledTimes(1);
|
|
113
|
+
expect(deleteRevision.execute).toHaveBeenCalledTimes(1);
|
|
114
|
+
});
|
|
115
|
+
it("leaves all three unwrapped when the flag is off", async ()=>{
|
|
116
|
+
const { container, guard, deletePage, deleteRevision, bulk } = createContainer(false);
|
|
117
|
+
render(/*#__PURE__*/ react.createElement(DiContainerProvider, {
|
|
118
|
+
container: container
|
|
119
|
+
}, /*#__PURE__*/ react.createElement(WebsiteBuilderWorkflows, null)));
|
|
120
|
+
await exercise(container);
|
|
121
|
+
expect(guard.run).not.toHaveBeenCalled();
|
|
122
|
+
expect(guard.runBulk).not.toHaveBeenCalled();
|
|
123
|
+
expect(deletePage.execute).toHaveBeenCalledTimes(1);
|
|
124
|
+
expect(deleteRevision.execute).toHaveBeenCalledTimes(1);
|
|
125
|
+
expect(bulk.execute).toHaveBeenCalledTimes(1);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe("WbReviewTrashFeature", ()=>{
|
|
129
|
+
function setup() {
|
|
130
|
+
const guard = {
|
|
131
|
+
run: vi.fn(async (params)=>params.action()),
|
|
132
|
+
runBulk: vi.fn(async (params)=>params.run(params.items, false))
|
|
133
|
+
};
|
|
134
|
+
const useCases = createTrashUseCaseFakes();
|
|
135
|
+
const container = new Container();
|
|
136
|
+
container.registerInstance(ActiveReviewGuard, guard);
|
|
137
|
+
registerTrashUseCaseFakes(container, useCases);
|
|
138
|
+
container.registerInstance(DeletePageUseCase, {
|
|
139
|
+
execute: vi.fn(async ()=>true)
|
|
140
|
+
});
|
|
141
|
+
container.registerInstance(DeletePageRevisionUseCase, {
|
|
142
|
+
execute: vi.fn(async ()=>true)
|
|
143
|
+
});
|
|
144
|
+
container.registerInstance(BulkDeletePresenter, {
|
|
145
|
+
vm: {
|
|
146
|
+
processing: false,
|
|
147
|
+
results: []
|
|
148
|
+
},
|
|
149
|
+
execute: vi.fn(async ()=>void 0)
|
|
150
|
+
});
|
|
151
|
+
WbReviewTrashFeature.register(container);
|
|
152
|
+
return {
|
|
153
|
+
container,
|
|
154
|
+
guard,
|
|
155
|
+
useCases
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
it("decorates the two delete use cases and the bulk presenter", async ()=>{
|
|
159
|
+
const { container, guard } = setup();
|
|
160
|
+
await container.resolve(DeletePageUseCase).execute({
|
|
161
|
+
id: "page-1#0001",
|
|
162
|
+
permanently: false
|
|
163
|
+
});
|
|
164
|
+
await container.resolve(DeletePageRevisionUseCase).execute({
|
|
165
|
+
id: "page-1#0002"
|
|
166
|
+
});
|
|
167
|
+
await container.resolve(BulkDeletePresenter).execute([
|
|
168
|
+
Page.create({
|
|
169
|
+
id: "p1#0001",
|
|
170
|
+
entryId: "p1"
|
|
171
|
+
})
|
|
172
|
+
]);
|
|
173
|
+
expect(guard.run).toHaveBeenCalledTimes(2);
|
|
174
|
+
expect(guard.run.mock.calls.map((call)=>call[0].revisionId)).toEqual([
|
|
175
|
+
null,
|
|
176
|
+
"page-1#0002"
|
|
177
|
+
]);
|
|
178
|
+
expect(guard.run.mock.calls.every((call)=>!("useCases" in call[0]))).toBe(true);
|
|
179
|
+
expect(guard.runBulk).toHaveBeenCalledTimes(1);
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
//# sourceMappingURL=feature.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/trash/feature.test.js","sources":["../../../src/features/trash/feature.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { render } from \"@testing-library/react\";\nimport { Container } from \"@webiny/di\";\nimport { DiContainerProvider } from \"@webiny/app/shared/di/DiContainerProvider.js\";\nimport { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/abstractions.js\";\nimport { FeatureFlagsService } from \"@webiny/app-admin/features/featureFlags/abstractions.js\";\nimport { FeatureFlags } from \"@webiny/feature-flags\";\nimport { Page } from \"@webiny/app-website-builder/domain/Page/Page.js\";\nimport { DeletePageUseCase } from \"@webiny/app-website-builder/features/pages/deletePage/abstractions.js\";\nimport { DeletePageRevisionUseCase } from \"@webiny/app-website-builder/features/pages/deletePageRevision/abstractions.js\";\nimport { BulkDeletePresenter } from \"@webiny/app-website-builder/presentation/pages/bulkActions/abstractions.js\";\nimport { ReviewNotificationService } from \"@webiny/app-workflows/review/notifications/abstractions.js\";\nimport { ActiveReviewGuard } from \"@webiny/app-workflows/review/trash/ActiveReviewGuard/abstractions.js\";\nimport { createTrashUseCaseFakes } from \"@webiny/app-workflows/review/testing/createTrashUseCaseFakes.js\";\nimport { registerTrashUseCaseFakes } from \"@webiny/app-workflows/review/testing/registerTrashUseCaseFakes.js\";\nimport { WebsiteBuilderWorkflows } from \"~/index.js\";\nimport { WbReviewTrashFeature } from \"./feature.js\";\n\n// The composition root also mounts the other WB workflow features; they are stubbed as in `src/index.test.tsx`.\nvi.mock(\"~/Routes/index.js\", () => {\n return { WebsiteBuilderWorkflowsMenu: () => null };\n});\n\nvi.mock(\"~/Components/index.js\", () => {\n return {\n PageEditorConfig: () => null,\n PagesList: () => null\n };\n});\n\nvi.mock(\"~/Components/ContentReviews/WbContentReviews.js\", () => {\n return { WbContentReviews: () => null };\n});\n\nvi.mock(\"~/presentation/page/PageList/feature.js\", () => {\n return {\n PageListWorkflowsFeature: {\n name: \"Mock\",\n register: () => undefined,\n resolve: () => undefined\n }\n };\n});\n\nvi.mock(\"~/presentation/page/PageGet/feature.js\", () => {\n return {\n PageGetWorkflowsFeature: {\n name: \"Mock\",\n register: () => undefined,\n resolve: () => undefined\n }\n };\n});\n\ndescribe(\"WebsiteBuilderWorkflows (composition root)\", () => {\n const createContainer = (isEnabled: boolean) => {\n const flagsService: FeatureFlagsService.Interface = {\n getFlags: () => new FeatureFlags({ advancedPublishingWorkflow: isEnabled }),\n isLoaded: () => true,\n loadFlags: async () => undefined\n };\n const guard = {\n run: vi.fn(async <TResult,>(params: ActiveReviewGuard.Params<TResult>) =>\n params.action()\n ),\n runBulk: vi.fn(async <TItem,>(params: ActiveReviewGuard.BulkParams<TItem>) =>\n params.run(params.items, false)\n )\n };\n const deletePage = { execute: vi.fn(async () => true) };\n const deleteRevision = { execute: vi.fn(async () => true) };\n const bulk = {\n vm: { processing: false, results: [] },\n execute: vi.fn(async () => undefined)\n };\n const container = new Container();\n container.registerInstance(FeatureFlagsService, flagsService);\n container.registerInstance(MainGraphQLClient, { execute: vi.fn() });\n container.registerInstance(ReviewNotificationService, { handle: vi.fn() });\n container.registerInstance(\n ActiveReviewGuard,\n guard as unknown as ActiveReviewGuard.Interface\n );\n container.registerInstance(DeletePageUseCase, deletePage);\n container.registerInstance(DeletePageRevisionUseCase, deleteRevision);\n container.registerInstance(BulkDeletePresenter, bulk);\n return { container, guard, deletePage, deleteRevision, bulk };\n };\n\n const exercise = async (container: Container) => {\n await container.resolve(DeletePageUseCase).execute({ id: \"p1#0001\", permanently: false });\n await container.resolve(DeletePageRevisionUseCase).execute({ id: \"p1#0002\" });\n await container\n .resolve(BulkDeletePresenter)\n .execute([Page.create({ id: \"p1#0001\", entryId: \"p1\" })]);\n };\n\n it(\"wraps the page delete, revision delete and bulk delete with the guard when the flag is on\", async () => {\n const { container, guard, deletePage, deleteRevision } = createContainer(true);\n\n render(\n <DiContainerProvider container={container}>\n <WebsiteBuilderWorkflows />\n </DiContainerProvider>\n );\n await exercise(container);\n\n expect(guard.run).toHaveBeenCalledTimes(2);\n expect(guard.runBulk).toHaveBeenCalledTimes(1);\n expect(deletePage.execute).toHaveBeenCalledTimes(1);\n expect(deleteRevision.execute).toHaveBeenCalledTimes(1);\n });\n\n it(\"leaves all three unwrapped when the flag is off\", async () => {\n const { container, guard, deletePage, deleteRevision, bulk } = createContainer(false);\n\n render(\n <DiContainerProvider container={container}>\n <WebsiteBuilderWorkflows />\n </DiContainerProvider>\n );\n await exercise(container);\n\n expect(guard.run).not.toHaveBeenCalled();\n expect(guard.runBulk).not.toHaveBeenCalled();\n expect(deletePage.execute).toHaveBeenCalledTimes(1);\n expect(deleteRevision.execute).toHaveBeenCalledTimes(1);\n expect(bulk.execute).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe(\"WbReviewTrashFeature\", () => {\n function setup() {\n const guard = {\n run: vi.fn(async <TResult,>(params: ActiveReviewGuard.Params<TResult>) =>\n params.action()\n ),\n runBulk: vi.fn(async <TItem,>(params: ActiveReviewGuard.BulkParams<TItem>) =>\n params.run(params.items, false)\n )\n };\n const useCases = createTrashUseCaseFakes();\n const container = new Container();\n container.registerInstance(\n ActiveReviewGuard,\n guard as unknown as ActiveReviewGuard.Interface\n );\n registerTrashUseCaseFakes(container, useCases);\n container.registerInstance(DeletePageUseCase, { execute: vi.fn(async () => true) });\n container.registerInstance(DeletePageRevisionUseCase, { execute: vi.fn(async () => true) });\n container.registerInstance(BulkDeletePresenter, {\n vm: { processing: false, results: [] },\n execute: vi.fn(async () => undefined)\n });\n WbReviewTrashFeature.register(container);\n return { container, guard, useCases };\n }\n\n it(\"decorates the two delete use cases and the bulk presenter\", async () => {\n const { container, guard } = setup();\n\n await container\n .resolve(DeletePageUseCase)\n .execute({ id: \"page-1#0001\", permanently: false });\n await container.resolve(DeletePageRevisionUseCase).execute({ id: \"page-1#0002\" });\n await container\n .resolve(BulkDeletePresenter)\n .execute([Page.create({ id: \"p1#0001\", entryId: \"p1\" })]);\n\n expect(guard.run).toHaveBeenCalledTimes(2);\n expect(guard.run.mock.calls.map(call => call[0].revisionId)).toEqual([null, \"page-1#0002\"]);\n expect(guard.run.mock.calls.every(call => !(\"useCases\" in call[0]))).toBe(true);\n expect(guard.runBulk).toHaveBeenCalledTimes(1);\n });\n});\n"],"names":["vi","undefined","describe","createContainer","isEnabled","flagsService","FeatureFlags","guard","params","deletePage","deleteRevision","bulk","container","Container","FeatureFlagsService","MainGraphQLClient","ReviewNotificationService","ActiveReviewGuard","DeletePageUseCase","DeletePageRevisionUseCase","BulkDeletePresenter","exercise","Page","it","render","DiContainerProvider","WebsiteBuilderWorkflows","expect","setup","useCases","createTrashUseCaseFakes","registerTrashUseCaseFakes","WbReviewTrashFeature","call"],"mappings":"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"}
|
package/hooks/usePage.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { usePage } from "@webiny/app-website-builder/presentation/pages/PageList/hooks/usePage.js";
|
|
2
|
+
const decoratePage = (page)=>({
|
|
3
|
+
...page,
|
|
4
|
+
workflow: page.system?.workflow ?? null
|
|
5
|
+
});
|
|
6
|
+
const usePage_usePage = ()=>{
|
|
7
|
+
const usage = usePage();
|
|
8
|
+
return {
|
|
9
|
+
...usage,
|
|
10
|
+
page: decoratePage(usage.page)
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export { usePage_usePage as usePage };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=usePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks/usePage.js","sources":["../../src/hooks/usePage.ts"],"sourcesContent":["import { usePage as baseUsePage } from \"@webiny/app-website-builder/presentation/pages/PageList/hooks/usePage.js\";\nimport type { PageDto } from \"@webiny/app-website-builder/domain/Page/index.js\";\nimport type { WithWorkflows } from \"~/types.js\";\n\nconst decoratePage = (page: PageDto): WithWorkflows<PageDto> => {\n return {\n ...page,\n workflow: page.system?.workflow ?? null\n };\n};\n\nexport const usePage = () => {\n const usage = baseUsePage();\n\n return {\n ...usage,\n page: decoratePage(usage.page)\n };\n};\n"],"names":["decoratePage","page","usePage","usage","baseUsePage"],"mappings":";AAIA,MAAMA,eAAe,CAACC,OACX;QACH,GAAGA,IAAI;QACP,UAAUA,KAAK,MAAM,EAAE,YAAY;IACvC;AAGG,MAAMC,kBAAU;IACnB,MAAMC,QAAQC;IAEd,OAAO;QACH,GAAGD,KAAK;QACR,MAAMH,aAAaG,MAAM,IAAI;IACjC;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "~/types.js";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { renderHook } from "@testing-library/react";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { Page, PageDtoMapper } from "@webiny/app-website-builder/domain/Page/index.js";
|
|
5
|
+
import { PageProvider } from "@webiny/app-website-builder/presentation/pages/PageList/hooks/usePage.js";
|
|
6
|
+
import { ReviewState } from "@webiny/app-workflows/review/domain/ReviewState.js";
|
|
7
|
+
import { StepState } from "@webiny/app-workflows/review/domain/StepState.js";
|
|
8
|
+
import "../types.js";
|
|
9
|
+
import { usePage } from "./usePage.js";
|
|
10
|
+
const WORKFLOW = {
|
|
11
|
+
workflowId: "workflow-1",
|
|
12
|
+
reviewState: ReviewState.Approved,
|
|
13
|
+
stepId: "step-2",
|
|
14
|
+
stepName: "Legal",
|
|
15
|
+
stepState: StepState.Approved
|
|
16
|
+
};
|
|
17
|
+
const createWrapper = (system)=>{
|
|
18
|
+
const page = Page.create({
|
|
19
|
+
id: "page-1#0001",
|
|
20
|
+
entryId: "page-1",
|
|
21
|
+
system
|
|
22
|
+
});
|
|
23
|
+
const dto = PageDtoMapper.toDTO(page);
|
|
24
|
+
return function({ children }) {
|
|
25
|
+
return /*#__PURE__*/ react.createElement(PageProvider, {
|
|
26
|
+
page: dto
|
|
27
|
+
}, children);
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
describe("usePage", ()=>{
|
|
31
|
+
it("exposes system.workflow as page.workflow", ()=>{
|
|
32
|
+
const wrapper = createWrapper({
|
|
33
|
+
workflow: WORKFLOW
|
|
34
|
+
});
|
|
35
|
+
const { result } = renderHook(()=>usePage(), {
|
|
36
|
+
wrapper
|
|
37
|
+
});
|
|
38
|
+
expect(result.current.page.workflow).toEqual(WORKFLOW);
|
|
39
|
+
});
|
|
40
|
+
it("is null when the page has no workflow", ()=>{
|
|
41
|
+
const wrapper = createWrapper(null);
|
|
42
|
+
const { result } = renderHook(()=>usePage(), {
|
|
43
|
+
wrapper
|
|
44
|
+
});
|
|
45
|
+
expect(result.current.page.workflow).toBeNull();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=usePage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks/usePage.test.js","sources":["../../src/hooks/usePage.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { renderHook } from \"@testing-library/react\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { Page } from \"@webiny/app-website-builder/domain/Page/index.js\";\nimport { PageDtoMapper } from \"@webiny/app-website-builder/domain/Page/index.js\";\nimport { PageProvider } from \"@webiny/app-website-builder/presentation/pages/PageList/hooks/usePage.js\";\nimport { ReviewState } from \"@webiny/app-workflows/review/domain/ReviewState.js\";\nimport { StepState } from \"@webiny/app-workflows/review/domain/StepState.js\";\nimport type { SystemWorkflowValue } from \"@webiny/app-workflows/review/domain/types.js\";\nimport \"~/types.js\";\nimport { usePage } from \"./usePage.js\";\n\ninterface ChildrenProps {\n children: React.ReactNode;\n}\n\nconst WORKFLOW: SystemWorkflowValue = {\n workflowId: \"workflow-1\",\n reviewState: ReviewState.Approved,\n stepId: \"step-2\",\n stepName: \"Legal\",\n stepState: StepState.Approved\n};\n\nconst createWrapper = (system: Page[\"system\"]) => {\n const page = Page.create({ id: \"page-1#0001\", entryId: \"page-1\", system });\n const dto = PageDtoMapper.toDTO(page);\n\n return function PageWrapper({ children }: ChildrenProps) {\n return <PageProvider page={dto}>{children}</PageProvider>;\n };\n};\n\ndescribe(\"usePage\", () => {\n it(\"exposes system.workflow as page.workflow\", () => {\n const wrapper = createWrapper({ workflow: WORKFLOW });\n\n const { result } = renderHook(() => usePage(), { wrapper });\n\n expect(result.current.page.workflow).toEqual(WORKFLOW);\n });\n\n it(\"is null when the page has no workflow\", () => {\n const wrapper = createWrapper(null);\n\n const { result } = renderHook(() => usePage(), { wrapper });\n\n expect(result.current.page.workflow).toBeNull();\n });\n});\n"],"names":["WORKFLOW","ReviewState","StepState","createWrapper","system","page","Page","dto","PageDtoMapper","children","PageProvider","describe","it","wrapper","result","renderHook","usePage","expect"],"mappings":";;;;;;;;;AAkBA,MAAMA,WAAgC;IAClC,YAAY;IACZ,aAAaC,YAAY,QAAQ;IACjC,QAAQ;IACR,UAAU;IACV,WAAWC,UAAU,QAAQ;AACjC;AAEA,MAAMC,gBAAgB,CAACC;IACnB,MAAMC,OAAOC,KAAK,MAAM,CAAC;QAAE,IAAI;QAAe,SAAS;QAAUF;IAAO;IACxE,MAAMG,MAAMC,cAAc,KAAK,CAACH;IAEhC,OAAO,SAAqB,EAAEI,QAAQ,EAAiB;QACnD,OAAO,WAAP,GAAO,oBAACC,cAAYA;YAAC,MAAMH;WAAME;IACrC;AACJ;AAEAE,SAAS,WAAW;IAChBC,GAAG,4CAA4C;QAC3C,MAAMC,UAAUV,cAAc;YAAE,UAAUH;QAAS;QAEnD,MAAM,EAAEc,MAAM,EAAE,GAAGC,WAAW,IAAMC,WAAW;YAAEH;QAAQ;QAEzDI,OAAOH,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAACd;IACjD;IAEAY,GAAG,yCAAyC;QACxC,MAAMC,UAAUV,cAAc;QAE9B,MAAM,EAAEW,MAAM,EAAE,GAAGC,WAAW,IAAMC,WAAW;YAAEH;QAAQ;QAEzDI,OAAOH,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ;IACjD;AACJ"}
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { RegisterFeature, useFeatureFlags } from "@webiny/app-admin";
|
|
3
|
+
import { WbContentReviews } from "./Components/ContentReviews/WbContentReviews.js";
|
|
4
|
+
import { WebsiteBuilderWorkflowsMenu } from "./Routes/index.js";
|
|
5
|
+
import { PageEditorConfig, PagesList } from "./Components/index.js";
|
|
6
|
+
import { PageListWorkflowsFeature } from "./presentation/page/PageList/feature.js";
|
|
7
|
+
import { PageGetWorkflowsFeature } from "./presentation/page/PageGet/feature.js";
|
|
8
|
+
import { WbPageReviewFeature } from "./features/editorReview/feature.js";
|
|
9
|
+
import { WbReviewFeature } from "./features/gateway/feature.js";
|
|
10
|
+
import { WbWorkflowEditorMountingFeature } from "./features/editorMounting/feature.js";
|
|
11
|
+
import { WbWorkflowEditorFeature } from "./features/editorGateway/feature.js";
|
|
12
|
+
import { WbReviewCacheFeature } from "./features/cache/feature.js";
|
|
13
|
+
import { WbReviewTrashFeature } from "./features/trash/feature.js";
|
|
14
|
+
import { RevisionListWorkflowsFeature } from "./presentation/page/RevisionList/feature.js";
|
|
15
|
+
const WebsiteBuilderWorkflows = ()=>{
|
|
16
|
+
const featureFlags = useFeatureFlags();
|
|
17
|
+
if (!featureFlags.isEnabled("advancedPublishingWorkflow")) return null;
|
|
18
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
19
|
+
feature: WbReviewFeature
|
|
20
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
21
|
+
feature: WbWorkflowEditorFeature
|
|
22
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
23
|
+
feature: WbWorkflowEditorMountingFeature
|
|
24
|
+
}), /*#__PURE__*/ react.createElement(WbContentReviews, null), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
25
|
+
feature: PageListWorkflowsFeature
|
|
26
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
27
|
+
feature: PageGetWorkflowsFeature
|
|
28
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
29
|
+
feature: WbPageReviewFeature
|
|
30
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
31
|
+
feature: WbReviewCacheFeature
|
|
32
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
33
|
+
feature: WbReviewTrashFeature
|
|
34
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
35
|
+
feature: RevisionListWorkflowsFeature
|
|
36
|
+
}), /*#__PURE__*/ react.createElement(WebsiteBuilderWorkflowsMenu, null), /*#__PURE__*/ react.createElement(PageEditorConfig, null), /*#__PURE__*/ react.createElement(PagesList, null));
|
|
37
|
+
};
|
|
38
|
+
export { WebsiteBuilderWorkflows };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { RegisterFeature, useFeatureFlags } from \"@webiny/app-admin\";\nimport { WbContentReviews } from \"~/Components/ContentReviews/WbContentReviews.js\";\nimport { WebsiteBuilderWorkflowsMenu } from \"~/Routes/index.js\";\nimport { PageEditorConfig, PagesList } from \"~/Components/index.js\";\nimport { PageListWorkflowsFeature } from \"~/presentation/page/PageList/feature.js\";\nimport { PageGetWorkflowsFeature } from \"~/presentation/page/PageGet/feature.js\";\nimport { WbPageReviewFeature } from \"~/features/editorReview/feature.js\";\nimport { WbReviewFeature } from \"~/features/gateway/feature.js\";\nimport { WbWorkflowEditorMountingFeature } from \"~/features/editorMounting/feature.js\";\nimport { WbWorkflowEditorFeature } from \"~/features/editorGateway/feature.js\";\nimport { WbReviewCacheFeature } from \"~/features/cache/feature.js\";\nimport { WbReviewTrashFeature } from \"~/features/trash/feature.js\";\nimport { RevisionListWorkflowsFeature } from \"~/presentation/page/RevisionList/feature.js\";\n\nexport const WebsiteBuilderWorkflows = () => {\n const featureFlags = useFeatureFlags();\n\n if (!featureFlags.isEnabled(\"advancedPublishingWorkflow\")) {\n return null;\n }\n\n return (\n <>\n <RegisterFeature feature={WbReviewFeature} />\n <RegisterFeature feature={WbWorkflowEditorFeature} />\n <RegisterFeature feature={WbWorkflowEditorMountingFeature} />\n <WbContentReviews />\n <RegisterFeature feature={PageListWorkflowsFeature} />\n <RegisterFeature feature={PageGetWorkflowsFeature} />\n <RegisterFeature feature={WbPageReviewFeature} />\n <RegisterFeature feature={WbReviewCacheFeature} />\n <RegisterFeature feature={WbReviewTrashFeature} />\n <RegisterFeature feature={RevisionListWorkflowsFeature} />\n <WebsiteBuilderWorkflowsMenu />\n <PageEditorConfig />\n <PagesList />\n </>\n );\n};\n"],"names":["WebsiteBuilderWorkflows","featureFlags","useFeatureFlags","RegisterFeature","WbReviewFeature","WbWorkflowEditorFeature","WbWorkflowEditorMountingFeature","WbContentReviews","PageListWorkflowsFeature","PageGetWorkflowsFeature","WbPageReviewFeature","WbReviewCacheFeature","WbReviewTrashFeature","RevisionListWorkflowsFeature","WebsiteBuilderWorkflowsMenu","PageEditorConfig","PagesList"],"mappings":";;;;;;;;;;;;;;AAeO,MAAMA,0BAA0B;IACnC,MAAMC,eAAeC;IAErB,IAAI,CAACD,aAAa,SAAS,CAAC,+BACxB,OAAO;IAGX,OAAO,WAAP,GACI,wDACI,oBAACE,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACC,kBAAgBA,OAAAA,WAAAA,GACjB,oBAACJ,iBAAeA;QAAC,SAASK;sBAC1B,oBAACL,iBAAeA;QAAC,SAASM;sBAC1B,oBAACN,iBAAeA;QAAC,SAASO;sBAC1B,oBAACP,iBAAeA;QAAC,SAASQ;sBAC1B,oBAACR,iBAAeA;QAAC,SAASS;sBAC1B,oBAACT,iBAAeA;QAAC,SAASU;sBAC1B,oBAACC,6BAA2BA,OAAAA,WAAAA,GAC5B,oBAACC,kBAAgBA,OAAAA,WAAAA,GACjB,oBAACC,WAASA;AAGtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { WebsiteBuilderWorkflows } from "./index.js";
|
|
4
|
+
vi.mock("@webiny/app-admin", async (importOriginal)=>{
|
|
5
|
+
const original = await importOriginal();
|
|
6
|
+
const RegisterFeature = ()=>null;
|
|
7
|
+
const useFeatureFlags = ()=>({
|
|
8
|
+
isEnabled: ()=>true
|
|
9
|
+
});
|
|
10
|
+
return {
|
|
11
|
+
...original,
|
|
12
|
+
RegisterFeature,
|
|
13
|
+
useFeatureFlags
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
const getTypeName = (type)=>{
|
|
17
|
+
if ("string" == typeof type) return type;
|
|
18
|
+
if (type === react.Fragment) return "Fragment";
|
|
19
|
+
const named = type;
|
|
20
|
+
return named.displayName || named.name || "Anonymous";
|
|
21
|
+
};
|
|
22
|
+
const collectTree = (node, entries)=>{
|
|
23
|
+
react.Children.forEach(node, (child)=>{
|
|
24
|
+
if (!/*#__PURE__*/ react.isValidElement(child)) return;
|
|
25
|
+
const featureName = child.props.feature ? child.props.feature.name : null;
|
|
26
|
+
entries.push({
|
|
27
|
+
typeName: getTypeName(child.type),
|
|
28
|
+
featureName
|
|
29
|
+
});
|
|
30
|
+
collectTree(child.props.children, entries);
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
const renderRoot = ()=>{
|
|
34
|
+
const entries = [];
|
|
35
|
+
collectTree(WebsiteBuilderWorkflows(), entries);
|
|
36
|
+
return entries;
|
|
37
|
+
};
|
|
38
|
+
describe("WebsiteBuilderWorkflows root", ()=>{
|
|
39
|
+
it("mounts the editor menu and the page editor config and registers the mounting feature", ()=>{
|
|
40
|
+
const entries = renderRoot();
|
|
41
|
+
const typeNames = entries.map((entry)=>entry.typeName);
|
|
42
|
+
const featureNames = entries.map((entry)=>entry.featureName).filter((name)=>null !== name);
|
|
43
|
+
expect(typeNames).toContain("WebsiteBuilderWorkflowsMenu");
|
|
44
|
+
expect(typeNames).toContain("PageEditorConfig");
|
|
45
|
+
expect(featureNames).toContain("WebsiteBuilderWorkflows/EditorMounting");
|
|
46
|
+
expect(featureNames).toContain("RevisionListWorkflows");
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=index.mount.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mount.test.js","sources":["../src/index.mount.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { WebsiteBuilderWorkflows } from \"~/index.js\";\n\nvi.mock(\"@webiny/app-admin\", async importOriginal => {\n const original = await importOriginal<typeof import(\"@webiny/app-admin\")>();\n const RegisterFeature = () => null;\n const useFeatureFlags = () => {\n return { isEnabled: () => true };\n };\n return { ...original, RegisterFeature, useFeatureFlags };\n});\n\ninterface TreeProps {\n children?: React.ReactNode;\n feature?: { name: string };\n}\n\ninterface NamedType {\n displayName?: string;\n name?: string;\n}\n\ninterface TreeEntry {\n typeName: string;\n featureName: string | null;\n}\n\nconst getTypeName = (type: React.ReactElement[\"type\"]): string => {\n if (typeof type === \"string\") {\n return type;\n }\n if (type === React.Fragment) {\n return \"Fragment\";\n }\n const named = type as NamedType;\n return named.displayName || named.name || \"Anonymous\";\n};\n\nconst collectTree = (node: React.ReactNode, entries: TreeEntry[]): void => {\n React.Children.forEach(node, child => {\n if (!React.isValidElement<TreeProps>(child)) {\n return;\n }\n const featureName = child.props.feature ? child.props.feature.name : null;\n entries.push({ typeName: getTypeName(child.type), featureName });\n collectTree(child.props.children, entries);\n });\n};\n\nconst renderRoot = (): TreeEntry[] => {\n const entries: TreeEntry[] = [];\n collectTree(WebsiteBuilderWorkflows(), entries);\n return entries;\n};\n\ndescribe(\"WebsiteBuilderWorkflows root\", () => {\n it(\"mounts the editor menu and the page editor config and registers the mounting feature\", () => {\n const entries = renderRoot();\n const typeNames = entries.map(entry => entry.typeName);\n const featureNames = entries.map(entry => entry.featureName).filter(name => name !== null);\n\n expect(typeNames).toContain(\"WebsiteBuilderWorkflowsMenu\");\n expect(typeNames).toContain(\"PageEditorConfig\");\n expect(featureNames).toContain(\"WebsiteBuilderWorkflows/EditorMounting\");\n // The feature that gates Publish in the revisions drawer.\n expect(featureNames).toContain(\"RevisionListWorkflows\");\n });\n});\n"],"names":["vi","importOriginal","original","RegisterFeature","useFeatureFlags","getTypeName","type","React","named","collectTree","node","entries","child","featureName","renderRoot","WebsiteBuilderWorkflows","describe","it","typeNames","entry","featureNames","name","expect"],"mappings":";;;AAOAA,GAAG,IAAI,CAAC,qBAAqB,OAAMC;IAC/B,MAAMC,WAAW,MAAMD;IACvB,MAAME,kBAAkB,IAAM;IAC9B,MAAMC,kBAAkB,IACb;YAAE,WAAW,IAAM;QAAK;IAEnC,OAAO;QAAE,GAAGF,QAAQ;QAAEC;QAAiBC;IAAgB;AAC3D;AAiBA,MAAMC,cAAc,CAACC;IACjB,IAAI,AAAgB,YAAhB,OAAOA,MACP,OAAOA;IAEX,IAAIA,SAASC,MAAAA,QAAc,EACvB,OAAO;IAEX,MAAMC,QAAQF;IACd,OAAOE,MAAM,WAAW,IAAIA,MAAM,IAAI,IAAI;AAC9C;AAEA,MAAMC,cAAc,CAACC,MAAuBC;IACxCJ,MAAAA,QAAAA,CAAAA,OAAsB,CAACG,MAAME,CAAAA;QACzB,IAAI,CAAC,WAAD,GAACL,MAAAA,cAAoB,CAAYK,QACjC;QAEJ,MAAMC,cAAcD,MAAM,KAAK,CAAC,OAAO,GAAGA,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG;QACrED,QAAQ,IAAI,CAAC;YAAE,UAAUN,YAAYO,MAAM,IAAI;YAAGC;QAAY;QAC9DJ,YAAYG,MAAM,KAAK,CAAC,QAAQ,EAAED;IACtC;AACJ;AAEA,MAAMG,aAAa;IACf,MAAMH,UAAuB,EAAE;IAC/BF,YAAYM,2BAA2BJ;IACvC,OAAOA;AACX;AAEAK,SAAS,gCAAgC;IACrCC,GAAG,wFAAwF;QACvF,MAAMN,UAAUG;QAChB,MAAMI,YAAYP,QAAQ,GAAG,CAACQ,CAAAA,QAASA,MAAM,QAAQ;QACrD,MAAMC,eAAeT,QAAQ,GAAG,CAACQ,CAAAA,QAASA,MAAM,WAAW,EAAE,MAAM,CAACE,CAAAA,OAAQA,AAAS,SAATA;QAE5EC,OAAOJ,WAAW,SAAS,CAAC;QAC5BI,OAAOJ,WAAW,SAAS,CAAC;QAC5BI,OAAOF,cAAc,SAAS,CAAC;QAE/BE,OAAOF,cAAc,SAAS,CAAC;IACnC;AACJ"}
|
package/index.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|