@webiny/app-headless-cms-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/CmsEntriesList/CmsReviewMoveEntryAction.d.ts +2 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.js +43 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.js.map +1 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.d.ts +1 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.js +118 -0
- package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.js.map +1 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.d.ts +2 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js +22 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js.map +1 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.d.ts +1 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.js +98 -0
- package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.js +32 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.test.js +128 -0
- package/Components/ContentEntryForm/CmsEntryReviewBar.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.js +46 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.js +222 -0
- package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.js +32 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.js +94 -0
- package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.js +56 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.js +186 -0
- package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.d.ts +2 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.js +26 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.js.map +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.d.ts +1 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.js +78 -0
- package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.js.map +1 -0
- package/Components/ContentEntryForm/getModelFieldLabels.d.ts +3 -0
- package/Components/ContentEntryForm/getModelFieldLabels.js +8 -0
- package/Components/ContentEntryForm/getModelFieldLabels.js.map +1 -0
- package/Components/ContentEntryForm/index.d.ts +5 -0
- package/Components/ContentEntryForm/index.js +5 -0
- package/Components/ContentReviews/CmsContentReviews.d.ts +2 -0
- package/Components/ContentReviews/CmsContentReviews.js +11 -0
- package/Components/ContentReviews/CmsContentReviews.js.map +1 -0
- package/Components/ContentReviews/CmsContentReviews.test.d.ts +1 -0
- package/Components/ContentReviews/CmsContentReviews.test.js +214 -0
- package/Components/ContentReviews/CmsContentReviews.test.js.map +1 -0
- package/Components/ContentReviews/CmsContentReviewsMount.d.ts +4 -0
- package/Components/ContentReviews/CmsContentReviewsMount.js +44 -0
- package/Components/ContentReviews/CmsContentReviewsMount.js.map +1 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.d.ts +2 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.js +20 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.js.map +1 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.d.ts +1 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.js +83 -0
- package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.js.map +1 -0
- package/Components/ModelDelete/ModelBoundToWorkflowErrorData.d.ts +8 -0
- package/Components/ModelDelete/ModelBoundToWorkflowErrorData.js +0 -0
- package/Components/ModelDelete/ModelDeleteWorkflowCopy.d.ts +10 -0
- package/Components/ModelDelete/ModelDeleteWorkflowCopy.js +0 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.d.ts +2 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.js +34 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.js.map +1 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.test.d.ts +1 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.test.js +73 -0
- package/Components/ModelDelete/ModelDeleteWorkflowError.test.js.map +1 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.d.ts +3 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.js +17 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.js.map +1 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.d.ts +1 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.js +28 -0
- package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.js.map +1 -0
- package/Components/ignoreAction.d.ts +1 -0
- package/Components/ignoreAction.js +4 -0
- package/Components/ignoreAction.js.map +1 -0
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/Routes/CmsWorkflowEditor.d.ts +2 -0
- package/Routes/CmsWorkflowEditor.js +23 -0
- package/Routes/CmsWorkflowEditor.js.map +1 -0
- package/Routes/CmsWorkflowEditor.test.d.ts +1 -0
- package/Routes/CmsWorkflowEditor.test.js +141 -0
- package/Routes/CmsWorkflowEditor.test.js.map +1 -0
- package/Routes/index.d.ts +1 -0
- package/Routes/index.js +1 -0
- package/features/cache/CmsReviewCacheSyncHandler.d.ts +8 -0
- package/features/cache/CmsReviewCacheSyncHandler.js +14 -0
- package/features/cache/CmsReviewCacheSyncHandler.js.map +1 -0
- package/features/cache/CmsReviewCacheWriter.d.ts +14 -0
- package/features/cache/CmsReviewCacheWriter.js +39 -0
- package/features/cache/CmsReviewCacheWriter.js.map +1 -0
- package/features/cache/CmsReviewCacheWriter.test.d.ts +1 -0
- package/features/cache/CmsReviewCacheWriter.test.js +207 -0
- package/features/cache/CmsReviewCacheWriter.test.js.map +1 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.d.ts +12 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.js +17 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.js.map +1 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.d.ts +1 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.js +129 -0
- package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.js.map +1 -0
- package/features/cache/ReviewPreservingEntriesCache.d.ts +18 -0
- package/features/cache/ReviewPreservingEntriesCache.js +54 -0
- package/features/cache/ReviewPreservingEntriesCache.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/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.d.ts +26 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js +104 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js.map +1 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.d.ts +1 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js +589 -0
- package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.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 +272 -0
- package/features/editorGateway/feature.test.js.map +1 -0
- package/features/editorGateway/graphql/cmsEntryFolderExists.d.ts +1 -0
- package/features/editorGateway/graphql/cmsEntryFolderExists.js +16 -0
- package/features/editorGateway/graphql/cmsEntryFolderExists.js.map +1 -0
- package/features/editorGateway/graphql/deleteCmsEntryWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/deleteCmsEntryWorkflow.js +19 -0
- package/features/editorGateway/graphql/deleteCmsEntryWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/getCmsEntryWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/getCmsEntryWorkflow.js +19 -0
- package/features/editorGateway/graphql/getCmsEntryWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/inspectCmsEntryRouting.d.ts +1 -0
- package/features/editorGateway/graphql/inspectCmsEntryRouting.js +19 -0
- package/features/editorGateway/graphql/inspectCmsEntryRouting.js.map +1 -0
- package/features/editorGateway/graphql/listCmsEntryWorkflowModels.d.ts +1 -0
- package/features/editorGateway/graphql/listCmsEntryWorkflowModels.js +29 -0
- package/features/editorGateway/graphql/listCmsEntryWorkflowModels.js.map +1 -0
- package/features/editorGateway/graphql/storeCmsEntryWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/storeCmsEntryWorkflow.js +19 -0
- package/features/editorGateway/graphql/storeCmsEntryWorkflow.js.map +1 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.d.ts +25 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.js +51 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.js.map +1 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.d.ts +1 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.js +185 -0
- package/features/editorMounting/CmsWorkflowEditorAppAdapter.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 +100 -0
- package/features/editorMounting/feature.test.js.map +1 -0
- package/features/editorReview/CmsEntryReview.d.ts +8 -0
- package/features/editorReview/CmsEntryReview.js +14 -0
- package/features/editorReview/CmsEntryReview.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/editorReview/feature.test.d.ts +1 -0
- package/features/editorReview/feature.test.js +46 -0
- package/features/editorReview/feature.test.js.map +1 -0
- package/features/editorReview/useCmsEntryReview.d.ts +2 -0
- package/features/editorReview/useCmsEntryReview.js +8 -0
- package/features/editorReview/useCmsEntryReview.js.map +1 -0
- package/features/feature.d.ts +1 -0
- package/features/feature.js +15 -0
- package/features/feature.js.map +1 -0
- package/features/gateway/CmsReviewChangeMessageHandler.d.ts +8 -0
- package/features/gateway/CmsReviewChangeMessageHandler.js +16 -0
- package/features/gateway/CmsReviewChangeMessageHandler.js.map +1 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.d.ts +16 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.js +39 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.js.map +1 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.d.ts +1 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.js +83 -0
- package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.js.map +1 -0
- package/features/gateway/CmsReviewContentAdapter/abstractions.d.ts +5 -0
- package/features/gateway/CmsReviewContentAdapter/abstractions.js +5 -0
- package/features/gateway/CmsReviewContentAdapter/abstractions.js.map +1 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.d.ts +52 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.js +221 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.js.map +1 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.d.ts +1 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.js +689 -0
- package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.js.map +1 -0
- package/features/gateway/CmsReviewNotificationHandler.d.ts +8 -0
- package/features/gateway/CmsReviewNotificationHandler.js +16 -0
- package/features/gateway/CmsReviewNotificationHandler.js.map +1 -0
- package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.d.ts +8 -0
- package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.js +14 -0
- package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.js.map +1 -0
- package/features/gateway/CmsReviewRowProvider/abstractions.d.ts +5 -0
- package/features/gateway/CmsReviewRowProvider/abstractions.js +5 -0
- package/features/gateway/CmsReviewRowProvider/abstractions.js.map +1 -0
- package/features/gateway/contentReviewsBindings.test.d.ts +1 -0
- package/features/gateway/contentReviewsBindings.test.js +125 -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 +79 -0
- package/features/gateway/feature.test.js.map +1 -0
- package/features/gateway/graphql/CmsOperationResponse.d.ts +3 -0
- package/features/gateway/graphql/CmsOperationResponse.js +0 -0
- package/features/gateway/graphql/approveCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/approveCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/approveCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/cancelCmsEntryReview.d.ts +1 -0
- package/features/gateway/graphql/cancelCmsEntryReview.js +18 -0
- package/features/gateway/graphql/cancelCmsEntryReview.js.map +1 -0
- package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.d.ts +1 -0
- package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.js +28 -0
- package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.js.map +1 -0
- package/features/gateway/graphql/getCmsEntryReview.d.ts +1 -0
- package/features/gateway/graphql/getCmsEntryReview.js +18 -0
- package/features/gateway/graphql/getCmsEntryReview.js.map +1 -0
- package/features/gateway/graphql/getCmsEntryReviewStepRun.d.ts +1 -0
- package/features/gateway/graphql/getCmsEntryReviewStepRun.js +18 -0
- package/features/gateway/graphql/getCmsEntryReviewStepRun.js.map +1 -0
- package/features/gateway/graphql/getCmsEntryTargetReview.d.ts +1 -0
- package/features/gateway/graphql/getCmsEntryTargetReview.js +18 -0
- package/features/gateway/graphql/getCmsEntryTargetReview.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryBlockingReviews.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryBlockingReviews.js +18 -0
- package/features/gateway/graphql/listCmsEntryBlockingReviews.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryReviewStepCandidates.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryReviewStepCandidates.js +18 -0
- package/features/gateway/graphql/listCmsEntryReviewStepCandidates.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryReviews.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryReviews.js +34 -0
- package/features/gateway/graphql/listCmsEntryReviews.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryStepCandidates.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryStepCandidates.js +28 -0
- package/features/gateway/graphql/listCmsEntryStepCandidates.js.map +1 -0
- package/features/gateway/graphql/listCmsEntryWorkflows.d.ts +1 -0
- package/features/gateway/graphql/listCmsEntryWorkflows.js +18 -0
- package/features/gateway/graphql/listCmsEntryWorkflows.js.map +1 -0
- package/features/gateway/graphql/reassignCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/reassignCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/reassignCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/rejectCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/rejectCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/rejectCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/requestCmsEntryReview.d.ts +1 -0
- package/features/gateway/graphql/requestCmsEntryReview.js +28 -0
- package/features/gateway/graphql/requestCmsEntryReview.js.map +1 -0
- package/features/gateway/graphql/restartCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/restartCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/restartCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/startCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/startCmsEntryReviewStep.js +18 -0
- package/features/gateway/graphql/startCmsEntryReviewStep.js.map +1 -0
- package/features/gateway/graphql/takeOverCmsEntryReviewStep.d.ts +1 -0
- package/features/gateway/graphql/takeOverCmsEntryReviewStep.js +22 -0
- package/features/gateway/graphql/takeOverCmsEntryReviewStep.js.map +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.d.ts +20 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.js +81 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.js.map +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.d.ts +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.js +693 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.js.map +1 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.js +23 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.js +123 -0
- package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.js +23 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.test.js +139 -0
- package/features/trash/DeleteEntryUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.js +23 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.js +122 -0
- package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/feature.d.ts +1 -0
- package/features/trash/feature.js +17 -0
- package/features/trash/feature.js.map +1 -0
- package/features/trash/feature.test.d.ts +1 -0
- package/features/trash/feature.test.js +213 -0
- package/features/trash/feature.test.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.editor.test.d.ts +1 -0
- package/index.editor.test.js +149 -0
- package/index.editor.test.js.map +1 -0
- package/index.js +41 -0
- package/index.js.map +1 -0
- package/index.lists.test.d.ts +1 -0
- package/index.lists.test.js +172 -0
- package/index.lists.test.js.map +1 -0
- package/index.mount.test.d.ts +1 -0
- package/index.mount.test.js +49 -0
- package/index.mount.test.js.map +1 -0
- package/index.test.d.ts +1 -0
- package/index.test.js +414 -0
- package/index.test.js.map +1 -0
- package/package.json +54 -0
- package/presentation/CmsEntryContentReloader.d.ts +8 -0
- package/presentation/CmsEntryContentReloader.js +20 -0
- package/presentation/CmsEntryContentReloader.js.map +1 -0
- package/presentation/CmsEntryContentReloader.test.d.ts +1 -0
- package/presentation/CmsEntryContentReloader.test.js +118 -0
- package/presentation/CmsEntryContentReloader.test.js.map +1 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.d.ts +27 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.js +167 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.js.map +1 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.test.d.ts +1 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.test.js +601 -0
- package/presentation/CmsEntryFormPresenterReviewDecorator.test.js.map +1 -0
- package/presentation/CmsEntryUnsavedChanges.d.ts +7 -0
- package/presentation/CmsEntryUnsavedChanges.js +12 -0
- package/presentation/CmsEntryUnsavedChanges.js.map +1 -0
- package/presentation/CmsEntryUnsavedChanges.test.d.ts +1 -0
- package/presentation/CmsEntryUnsavedChanges.test.js +23 -0
- package/presentation/CmsEntryUnsavedChanges.test.js.map +1 -0
- package/presentation/CmsReviewFieldSelections.test.d.ts +1 -0
- package/presentation/CmsReviewFieldSelections.test.js +27 -0
- package/presentation/CmsReviewFieldSelections.test.js.map +1 -0
- package/presentation/CmsReviewGetEntryFieldSelection.d.ts +8 -0
- package/presentation/CmsReviewGetEntryFieldSelection.js +16 -0
- package/presentation/CmsReviewGetEntryFieldSelection.js.map +1 -0
- package/presentation/CmsReviewListEntriesFieldSelection.d.ts +8 -0
- package/presentation/CmsReviewListEntriesFieldSelection.js +16 -0
- package/presentation/CmsReviewListEntriesFieldSelection.js.map +1 -0
- package/presentation/CmsReviewTableRowMapperDecorator.d.ts +11 -0
- package/presentation/CmsReviewTableRowMapperDecorator.js +24 -0
- package/presentation/CmsReviewTableRowMapperDecorator.js.map +1 -0
- package/presentation/CmsReviewTableRowMapperDecorator.test.d.ts +1 -0
- package/presentation/CmsReviewTableRowMapperDecorator.test.js +120 -0
- package/presentation/CmsReviewTableRowMapperDecorator.test.js.map +1 -0
- package/presentation/CmsRevisionsListPresenterDecorator.d.ts +24 -0
- package/presentation/CmsRevisionsListPresenterDecorator.js +66 -0
- package/presentation/CmsRevisionsListPresenterDecorator.js.map +1 -0
- package/presentation/CmsRevisionsListPresenterDecorator.test.d.ts +1 -0
- package/presentation/CmsRevisionsListPresenterDecorator.test.js +174 -0
- package/presentation/CmsRevisionsListPresenterDecorator.test.js.map +1 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.d.ts +28 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.js +103 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.js.map +1 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.test.d.ts +1 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.test.js +238 -0
- package/presentation/contentReviews/CmsContentReviewsPresenter.test.js.map +1 -0
- package/presentation/contentReviews/abstractions.d.ts +31 -0
- package/presentation/contentReviews/abstractions.js +5 -0
- package/presentation/contentReviews/abstractions.js.map +1 -0
- package/presentation/contentReviews/feature.d.ts +3 -0
- package/presentation/contentReviews/feature.js +17 -0
- package/presentation/contentReviews/feature.js.map +1 -0
- package/presentation/contentReviews/toContentTypes.d.ts +3 -0
- package/presentation/contentReviews/toContentTypes.js +14 -0
- package/presentation/contentReviews/toContentTypes.js.map +1 -0
- package/presentation/contentReviews/toContentTypes.test.d.ts +1 -0
- package/presentation/contentReviews/toContentTypes.test.js +20 -0
- package/presentation/contentReviews/toContentTypes.test.js.map +1 -0
- package/presentation/feature.d.ts +1 -0
- package/presentation/feature.js +19 -0
- package/presentation/feature.js.map +1 -0
- package/presentation/getCmsEntryReviewContext.d.ts +4 -0
- package/presentation/getCmsEntryReviewContext.js +12 -0
- package/presentation/getCmsEntryReviewContext.js.map +1 -0
- package/presentation/getCmsEntryReviewInitParams.d.ts +13 -0
- package/presentation/getCmsEntryReviewInitParams.js +18 -0
- package/presentation/getCmsEntryReviewInitParams.js.map +1 -0
- package/presentation/getCmsEntryReviewInitParams.test.d.ts +1 -0
- package/presentation/getCmsEntryReviewInitParams.test.js +69 -0
- package/presentation/getCmsEntryReviewInitParams.test.js.map +1 -0
- package/routes.d.ts +11 -0
- package/routes.js +21 -0
- package/routes.js.map +1 -0
- package/testing/createEntry.d.ts +3 -0
- package/testing/createEntry.js +22 -0
- package/testing/createEntry.js.map +1 -0
- package/testing/createEntrySession.d.ts +9 -0
- package/testing/createEntrySession.js +29 -0
- package/testing/createEntrySession.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/createFormVm.d.ts +2 -0
- package/testing/createFormVm.js +22 -0
- package/testing/createFormVm.js.map +1 -0
- package/testing/models.d.ts +4 -0
- package/testing/models.js +23 -0
- package/testing/models.js.map +1 -0
- package/testing/renderEditorTree.d.ts +17 -0
- package/testing/renderEditorTree.js +93 -0
- package/testing/renderEditorTree.js.map +1 -0
- package/testing/reviewStates.d.ts +17 -0
- package/testing/reviewStates.js +65 -0
- package/testing/reviewStates.js.map +1 -0
- package/types.d.ts +10 -0
- package/types.js +0 -0
- package/utils/appName.d.ts +4 -0
- package/utils/appName.js +13 -0
- package/utils/appName.js.map +1 -0
- package/utils/isReviewableModel.d.ts +2 -0
- package/utils/isReviewableModel.js +7 -0
- package/utils/isReviewableModel.js.map +1 -0
- package/utils/renderModelIcon.d.ts +3 -0
- package/utils/renderModelIcon.js +19 -0
- package/utils/renderModelIcon.js.map +1 -0
- package/utils/renderModelIconOrFallback.d.ts +3 -0
- package/utils/renderModelIconOrFallback.js +17 -0
- package/utils/renderModelIconOrFallback.js.map +1 -0
|
@@ -0,0 +1,589 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { Container } from "@webiny/di";
|
|
3
|
+
import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
|
|
4
|
+
import { ERROR_FIELDS } from "@webiny/app-workflows/review/gateway/reviewFields.js";
|
|
5
|
+
import { EDITOR_ROUTING_INSPECTION_FIELDS, EDITOR_WORKFLOW_FIELDS } from "@webiny/app-workflows/editor/gateway/editorFields.js";
|
|
6
|
+
import { EDITOR_SAVED_ON, createEditorWorkflowDto, createRoutingInspectionDto, createWorkflowModelRowDto } from "@webiny/app-workflows/editor/testing/editorFixtures.js";
|
|
7
|
+
import { WorkflowEditorAppGateway } from "@webiny/app-workflows/editor/appGateway/abstractions.js";
|
|
8
|
+
import { CmsWorkflowEditorGateway } from "./CmsWorkflowEditorGateway.js";
|
|
9
|
+
const input = {
|
|
10
|
+
id: "workflow-1",
|
|
11
|
+
name: "Article review",
|
|
12
|
+
models: [
|
|
13
|
+
"cms.article"
|
|
14
|
+
],
|
|
15
|
+
steps: [
|
|
16
|
+
{
|
|
17
|
+
id: "step-1",
|
|
18
|
+
title: "Editorial check",
|
|
19
|
+
color: "var(--color-primary-500)",
|
|
20
|
+
description: null,
|
|
21
|
+
type: "review",
|
|
22
|
+
notifications: [
|
|
23
|
+
{
|
|
24
|
+
id: "e-mail"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
config: {
|
|
28
|
+
teams: [
|
|
29
|
+
"team-1"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
};
|
|
35
|
+
const inspectParams = {
|
|
36
|
+
stepConfig: {
|
|
37
|
+
teams: [
|
|
38
|
+
"team-1"
|
|
39
|
+
],
|
|
40
|
+
assignment: {
|
|
41
|
+
strategy: "roundRobin",
|
|
42
|
+
allowManualPick: false,
|
|
43
|
+
rules: [
|
|
44
|
+
{
|
|
45
|
+
id: "rule-1",
|
|
46
|
+
conditions: {},
|
|
47
|
+
target: {
|
|
48
|
+
type: "team",
|
|
49
|
+
id: "team-1"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
requesterId: "user-1",
|
|
56
|
+
folderId: "folder-1",
|
|
57
|
+
modelId: "article"
|
|
58
|
+
};
|
|
59
|
+
const folderParams = {
|
|
60
|
+
id: "folder-1",
|
|
61
|
+
type: "cms:article"
|
|
62
|
+
};
|
|
63
|
+
describe("CmsWorkflowEditorGateway", ()=>{
|
|
64
|
+
const client = {
|
|
65
|
+
execute: vi.fn()
|
|
66
|
+
};
|
|
67
|
+
let gateway;
|
|
68
|
+
beforeEach(()=>{
|
|
69
|
+
client.execute.mockReset();
|
|
70
|
+
const container = new Container();
|
|
71
|
+
container.registerInstance(MainGraphQLClient, client);
|
|
72
|
+
container.register(CmsWorkflowEditorGateway);
|
|
73
|
+
gateway = container.resolve(WorkflowEditorAppGateway);
|
|
74
|
+
});
|
|
75
|
+
it("declares the cms app, the key the routing gateway picks it by (R347)", ()=>{
|
|
76
|
+
expect(gateway.app).toBe("cms");
|
|
77
|
+
});
|
|
78
|
+
describe("listModels", ()=>{
|
|
79
|
+
it("sends search, limit and after and folds data and meta into one page", async ()=>{
|
|
80
|
+
const rows = [
|
|
81
|
+
createWorkflowModelRowDto()
|
|
82
|
+
];
|
|
83
|
+
client.execute.mockResolvedValue({
|
|
84
|
+
cms: {
|
|
85
|
+
listCmsEntryWorkflowModels: {
|
|
86
|
+
data: rows,
|
|
87
|
+
meta: {
|
|
88
|
+
cursor: "cursor-2",
|
|
89
|
+
hasMoreItems: true
|
|
90
|
+
},
|
|
91
|
+
error: null
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
const result = await gateway.listModels({
|
|
96
|
+
search: "art",
|
|
97
|
+
limit: 20,
|
|
98
|
+
after: "cursor-1"
|
|
99
|
+
});
|
|
100
|
+
expect(result).toEqual({
|
|
101
|
+
data: {
|
|
102
|
+
rows,
|
|
103
|
+
meta: {
|
|
104
|
+
cursor: "cursor-2",
|
|
105
|
+
hasMoreItems: true
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
error: null
|
|
109
|
+
});
|
|
110
|
+
expect(client.execute).toHaveBeenCalledTimes(1);
|
|
111
|
+
const request = client.execute.mock.calls[0][0];
|
|
112
|
+
expect(request.variables).toEqual({
|
|
113
|
+
search: "art",
|
|
114
|
+
limit: 20,
|
|
115
|
+
after: "cursor-1"
|
|
116
|
+
});
|
|
117
|
+
expect(request.query).toContain("listCmsEntryWorkflowModels(search: $search, limit: $limit, after: $after)");
|
|
118
|
+
expect(request.query).toContain("meta");
|
|
119
|
+
expect(request.query).toContain(ERROR_FIELDS);
|
|
120
|
+
});
|
|
121
|
+
it("selects the model, its name and the bound workflow's id and name", async ()=>{
|
|
122
|
+
client.execute.mockResolvedValue({
|
|
123
|
+
cms: {
|
|
124
|
+
listCmsEntryWorkflowModels: {
|
|
125
|
+
data: [],
|
|
126
|
+
meta: null,
|
|
127
|
+
error: null
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
await gateway.listModels({
|
|
132
|
+
search: "",
|
|
133
|
+
limit: 20,
|
|
134
|
+
after: null
|
|
135
|
+
});
|
|
136
|
+
const query = client.execute.mock.calls[0][0].query;
|
|
137
|
+
expect(query).toMatch(/model\s+modelId\s+name\s+workflow\s*\{\s*id\s+name\s+stepCount\s*\}/);
|
|
138
|
+
});
|
|
139
|
+
it("sends an empty search as null", async ()=>{
|
|
140
|
+
client.execute.mockResolvedValue({
|
|
141
|
+
cms: {
|
|
142
|
+
listCmsEntryWorkflowModels: {
|
|
143
|
+
data: [],
|
|
144
|
+
meta: null,
|
|
145
|
+
error: null
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
await gateway.listModels({
|
|
150
|
+
search: "",
|
|
151
|
+
limit: 20,
|
|
152
|
+
after: null
|
|
153
|
+
});
|
|
154
|
+
const request = client.execute.mock.calls[0][0];
|
|
155
|
+
expect(request.variables).toEqual({
|
|
156
|
+
search: null,
|
|
157
|
+
limit: 20,
|
|
158
|
+
after: null
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
it("answers the default meta when the server sends none", async ()=>{
|
|
162
|
+
client.execute.mockResolvedValue({
|
|
163
|
+
cms: {
|
|
164
|
+
listCmsEntryWorkflowModels: {
|
|
165
|
+
data: [],
|
|
166
|
+
meta: null,
|
|
167
|
+
error: null
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
const result = await gateway.listModels({
|
|
172
|
+
search: "",
|
|
173
|
+
limit: 20,
|
|
174
|
+
after: null
|
|
175
|
+
});
|
|
176
|
+
expect(result).toEqual({
|
|
177
|
+
data: {
|
|
178
|
+
rows: [],
|
|
179
|
+
meta: {
|
|
180
|
+
cursor: null,
|
|
181
|
+
hasMoreItems: false
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
error: null
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
it("answers an error envelope without data and does not throw (R204)", async ()=>{
|
|
188
|
+
const error = {
|
|
189
|
+
code: "Workflows/NotAuthorized",
|
|
190
|
+
message: "No.",
|
|
191
|
+
data: null
|
|
192
|
+
};
|
|
193
|
+
client.execute.mockResolvedValue({
|
|
194
|
+
cms: {
|
|
195
|
+
listCmsEntryWorkflowModels: {
|
|
196
|
+
data: null,
|
|
197
|
+
meta: null,
|
|
198
|
+
error
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
const result = await gateway.listModels({
|
|
203
|
+
search: "",
|
|
204
|
+
limit: 20,
|
|
205
|
+
after: null
|
|
206
|
+
});
|
|
207
|
+
expect(result).toEqual({
|
|
208
|
+
data: null,
|
|
209
|
+
error
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
it("answers neither data nor error when the server sends neither", async ()=>{
|
|
213
|
+
client.execute.mockResolvedValue({
|
|
214
|
+
cms: {
|
|
215
|
+
listCmsEntryWorkflowModels: {
|
|
216
|
+
data: null,
|
|
217
|
+
meta: null,
|
|
218
|
+
error: null
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
const result = await gateway.listModels({
|
|
223
|
+
search: "",
|
|
224
|
+
limit: 20,
|
|
225
|
+
after: null
|
|
226
|
+
});
|
|
227
|
+
expect(result).toEqual({
|
|
228
|
+
data: null,
|
|
229
|
+
error: null
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
it("lets a transport failure pass as it is", async ()=>{
|
|
233
|
+
const failure = new Error("Network down.");
|
|
234
|
+
client.execute.mockRejectedValue(failure);
|
|
235
|
+
await expect(gateway.listModels({
|
|
236
|
+
search: "",
|
|
237
|
+
limit: 20,
|
|
238
|
+
after: null
|
|
239
|
+
})).rejects.toBe(failure);
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
describe("getWorkflow", ()=>{
|
|
243
|
+
it("reads the workflow by id and returns the envelope as it is", async ()=>{
|
|
244
|
+
const envelope = {
|
|
245
|
+
data: createEditorWorkflowDto(),
|
|
246
|
+
error: null
|
|
247
|
+
};
|
|
248
|
+
client.execute.mockResolvedValue({
|
|
249
|
+
cms: {
|
|
250
|
+
getCmsEntryWorkflow: envelope
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
const result = await gateway.getWorkflow("workflow-1");
|
|
254
|
+
expect(result).toEqual(envelope);
|
|
255
|
+
const request = client.execute.mock.calls[0][0];
|
|
256
|
+
expect(request.variables).toEqual({
|
|
257
|
+
id: "workflow-1"
|
|
258
|
+
});
|
|
259
|
+
expect(request.query).toContain("getCmsEntryWorkflow(id: $id)");
|
|
260
|
+
expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);
|
|
261
|
+
expect(request.query).toContain(ERROR_FIELDS);
|
|
262
|
+
});
|
|
263
|
+
it("returns an error envelope as it is", async ()=>{
|
|
264
|
+
const envelope = {
|
|
265
|
+
data: null,
|
|
266
|
+
error: {
|
|
267
|
+
code: "Workflows/Workflow/NotFound",
|
|
268
|
+
message: "Gone.",
|
|
269
|
+
data: {
|
|
270
|
+
id: "x"
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
client.execute.mockResolvedValue({
|
|
275
|
+
cms: {
|
|
276
|
+
getCmsEntryWorkflow: envelope
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
expect(await gateway.getWorkflow("x")).toEqual(envelope);
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
describe("storeWorkflow", ()=>{
|
|
283
|
+
it("sends the data and the loaded savedOn string unchanged (D131)", async ()=>{
|
|
284
|
+
const envelope = {
|
|
285
|
+
data: createEditorWorkflowDto(),
|
|
286
|
+
error: null
|
|
287
|
+
};
|
|
288
|
+
client.execute.mockResolvedValue({
|
|
289
|
+
cms: {
|
|
290
|
+
storeCmsEntryWorkflow: envelope
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
const result = await gateway.storeWorkflow({
|
|
294
|
+
data: input,
|
|
295
|
+
savedOn: EDITOR_SAVED_ON
|
|
296
|
+
});
|
|
297
|
+
expect(result).toEqual(envelope);
|
|
298
|
+
const request = client.execute.mock.calls[0][0];
|
|
299
|
+
expect(request.variables).toEqual({
|
|
300
|
+
data: input,
|
|
301
|
+
savedOn: "2026-10-18T09:15:30.123Z"
|
|
302
|
+
});
|
|
303
|
+
expect(request.variables.data).toBe(input);
|
|
304
|
+
expect(request.query).toContain("mutation");
|
|
305
|
+
expect(request.query).toContain("storeCmsEntryWorkflow(data: $data, savedOn: $savedOn)");
|
|
306
|
+
expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);
|
|
307
|
+
expect(request.query).toContain(ERROR_FIELDS);
|
|
308
|
+
});
|
|
309
|
+
it("sends a null savedOn for a new workflow", async ()=>{
|
|
310
|
+
client.execute.mockResolvedValue({
|
|
311
|
+
cms: {
|
|
312
|
+
storeCmsEntryWorkflow: {
|
|
313
|
+
data: createEditorWorkflowDto(),
|
|
314
|
+
error: null
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
await gateway.storeWorkflow({
|
|
319
|
+
data: input,
|
|
320
|
+
savedOn: null
|
|
321
|
+
});
|
|
322
|
+
const request = client.execute.mock.calls[0][0];
|
|
323
|
+
expect(request.variables).toEqual({
|
|
324
|
+
data: input,
|
|
325
|
+
savedOn: null
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
it("returns a conflict envelope as it is and does not throw (R204)", async ()=>{
|
|
329
|
+
const envelope = {
|
|
330
|
+
data: null,
|
|
331
|
+
error: {
|
|
332
|
+
code: "Workflows/Workflow/Conflict",
|
|
333
|
+
message: "The workflow was changed.",
|
|
334
|
+
data: {
|
|
335
|
+
savedOn: "2026-10-18T10:00:00.000Z"
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
client.execute.mockResolvedValue({
|
|
340
|
+
cms: {
|
|
341
|
+
storeCmsEntryWorkflow: envelope
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
const result = await gateway.storeWorkflow({
|
|
345
|
+
data: input,
|
|
346
|
+
savedOn: EDITOR_SAVED_ON
|
|
347
|
+
});
|
|
348
|
+
expect(result).toEqual(envelope);
|
|
349
|
+
});
|
|
350
|
+
it("returns a validation envelope with the rule id as it is (R288)", async ()=>{
|
|
351
|
+
const envelope = {
|
|
352
|
+
data: null,
|
|
353
|
+
error: {
|
|
354
|
+
code: "Workflows/Workflow/Validation",
|
|
355
|
+
message: "The target team is not one of the step's reviewing teams.",
|
|
356
|
+
data: {
|
|
357
|
+
stepId: "step-1",
|
|
358
|
+
field: "config.assignment.rules.target",
|
|
359
|
+
workflowId: null,
|
|
360
|
+
ruleId: "r-1"
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
client.execute.mockResolvedValue({
|
|
365
|
+
cms: {
|
|
366
|
+
storeCmsEntryWorkflow: envelope
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
const result = await gateway.storeWorkflow({
|
|
370
|
+
data: input,
|
|
371
|
+
savedOn: EDITOR_SAVED_ON
|
|
372
|
+
});
|
|
373
|
+
expect(result).toEqual(envelope);
|
|
374
|
+
expect(result.error?.data).toMatchObject({
|
|
375
|
+
ruleId: "r-1"
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
it("lets a transport failure pass as it is", async ()=>{
|
|
379
|
+
const failure = new Error("Network down.");
|
|
380
|
+
client.execute.mockRejectedValue(failure);
|
|
381
|
+
await expect(gateway.storeWorkflow({
|
|
382
|
+
data: input,
|
|
383
|
+
savedOn: EDITOR_SAVED_ON
|
|
384
|
+
})).rejects.toBe(failure);
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
describe("inspectRouting", ()=>{
|
|
388
|
+
it("sends the step config, the bare model id, the requester and the folder as variables", async ()=>{
|
|
389
|
+
const envelope = {
|
|
390
|
+
data: createRoutingInspectionDto(),
|
|
391
|
+
error: null
|
|
392
|
+
};
|
|
393
|
+
client.execute.mockResolvedValue({
|
|
394
|
+
cms: {
|
|
395
|
+
inspectCmsEntryRouting: envelope
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
const result = await gateway.inspectRouting(inspectParams);
|
|
399
|
+
expect(result).toEqual(envelope);
|
|
400
|
+
expect(client.execute).toHaveBeenCalledTimes(1);
|
|
401
|
+
const request = client.execute.mock.calls[0][0];
|
|
402
|
+
expect(request.variables).toEqual({
|
|
403
|
+
stepConfig: inspectParams.stepConfig,
|
|
404
|
+
modelId: "article",
|
|
405
|
+
requesterId: "user-1",
|
|
406
|
+
folderId: "folder-1"
|
|
407
|
+
});
|
|
408
|
+
expect(request.query).toContain("query InspectCmsEntryRouting");
|
|
409
|
+
expect(request.query).toContain("cms");
|
|
410
|
+
expect(request.query).toContain("inspectCmsEntryRouting(stepConfig: $stepConfig, modelId: $modelId, requesterId: $requesterId, folderId: $folderId)");
|
|
411
|
+
expect(request.query).toContain("$stepConfig: JSON!");
|
|
412
|
+
expect(request.query).toContain("$modelId: ID!");
|
|
413
|
+
expect(request.query).toContain("$requesterId: ID!");
|
|
414
|
+
expect(request.query).toContain("$folderId: ID");
|
|
415
|
+
expect(request.query).toContain(EDITOR_ROUTING_INSPECTION_FIELDS);
|
|
416
|
+
expect(request.query).toContain(ERROR_FIELDS);
|
|
417
|
+
});
|
|
418
|
+
it("sends a null folder as the root", async ()=>{
|
|
419
|
+
client.execute.mockResolvedValue({
|
|
420
|
+
cms: {
|
|
421
|
+
inspectCmsEntryRouting: {
|
|
422
|
+
data: createRoutingInspectionDto(),
|
|
423
|
+
error: null
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
await gateway.inspectRouting({
|
|
428
|
+
...inspectParams,
|
|
429
|
+
folderId: null
|
|
430
|
+
});
|
|
431
|
+
const request = client.execute.mock.calls[0][0];
|
|
432
|
+
expect(request.variables.folderId).toBeNull();
|
|
433
|
+
});
|
|
434
|
+
it("selects every field of the extended inspection (R289)", async ()=>{
|
|
435
|
+
client.execute.mockResolvedValue({
|
|
436
|
+
cms: {
|
|
437
|
+
inspectCmsEntryRouting: {
|
|
438
|
+
data: createRoutingInspectionDto(),
|
|
439
|
+
error: null
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
await gateway.inspectRouting(inspectParams);
|
|
444
|
+
const query = client.execute.mock.calls[0][0].query;
|
|
445
|
+
expect(query).toMatch(/narrowedTeamId\s+candidateIds\s+candidateCount/);
|
|
446
|
+
expect(query).toMatch(/trace\s*\{\s*ruleId\s+outcome\s+reason\s+failedConditions\s*\}/);
|
|
447
|
+
expect(query).toMatch(/skipped\s*\{\s*userId\s+displayName\s+reason\s*\}/);
|
|
448
|
+
});
|
|
449
|
+
it("returns a validation error of a rule as an envelope and does not throw (R204)", async ()=>{
|
|
450
|
+
const error = {
|
|
451
|
+
code: "Workflows/Workflow/Validation",
|
|
452
|
+
message: "The target user is not a member of the step's teams.",
|
|
453
|
+
data: {
|
|
454
|
+
stepId: "step-1",
|
|
455
|
+
field: "config.assignment.rules.target",
|
|
456
|
+
ruleId: "rule-1",
|
|
457
|
+
workflowId: null
|
|
458
|
+
}
|
|
459
|
+
};
|
|
460
|
+
client.execute.mockResolvedValue({
|
|
461
|
+
cms: {
|
|
462
|
+
inspectCmsEntryRouting: {
|
|
463
|
+
data: null,
|
|
464
|
+
error
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
const result = await gateway.inspectRouting(inspectParams);
|
|
469
|
+
expect(result).toEqual({
|
|
470
|
+
data: null,
|
|
471
|
+
error
|
|
472
|
+
});
|
|
473
|
+
});
|
|
474
|
+
it("lets a transport failure pass as it is", async ()=>{
|
|
475
|
+
const failure = new Error("Network down.");
|
|
476
|
+
client.execute.mockRejectedValue(failure);
|
|
477
|
+
await expect(gateway.inspectRouting(inspectParams)).rejects.toBe(failure);
|
|
478
|
+
});
|
|
479
|
+
});
|
|
480
|
+
describe("folderExists", ()=>{
|
|
481
|
+
it("sends the folder id and the folder type as variables", async ()=>{
|
|
482
|
+
const envelope = {
|
|
483
|
+
data: true,
|
|
484
|
+
error: null
|
|
485
|
+
};
|
|
486
|
+
client.execute.mockResolvedValue({
|
|
487
|
+
cms: {
|
|
488
|
+
cmsEntryFolderExists: envelope
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
const result = await gateway.folderExists(folderParams);
|
|
492
|
+
expect(result).toEqual(envelope);
|
|
493
|
+
const request = client.execute.mock.calls[0][0];
|
|
494
|
+
expect(request.variables).toEqual({
|
|
495
|
+
id: "folder-1",
|
|
496
|
+
type: "cms:article"
|
|
497
|
+
});
|
|
498
|
+
expect(request.query).toContain("query CmsEntryFolderExists");
|
|
499
|
+
expect(request.query).toContain("cmsEntryFolderExists(id: $id, type: $type)");
|
|
500
|
+
expect(request.query).toContain("$id: ID!");
|
|
501
|
+
expect(request.query).toContain("$type: String!");
|
|
502
|
+
expect(request.query).toContain(ERROR_FIELDS);
|
|
503
|
+
});
|
|
504
|
+
it("returns false as an answer, not an error", async ()=>{
|
|
505
|
+
const envelope = {
|
|
506
|
+
data: false,
|
|
507
|
+
error: null
|
|
508
|
+
};
|
|
509
|
+
client.execute.mockResolvedValue({
|
|
510
|
+
cms: {
|
|
511
|
+
cmsEntryFolderExists: envelope
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
const result = await gateway.folderExists(folderParams);
|
|
515
|
+
expect(result).toEqual({
|
|
516
|
+
data: false,
|
|
517
|
+
error: null
|
|
518
|
+
});
|
|
519
|
+
});
|
|
520
|
+
it("returns a server error as an envelope and does not throw (R204)", async ()=>{
|
|
521
|
+
const error = {
|
|
522
|
+
code: "Workflows/NotAuthorized",
|
|
523
|
+
message: "No.",
|
|
524
|
+
data: null
|
|
525
|
+
};
|
|
526
|
+
client.execute.mockResolvedValue({
|
|
527
|
+
cms: {
|
|
528
|
+
cmsEntryFolderExists: {
|
|
529
|
+
data: null,
|
|
530
|
+
error
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
});
|
|
534
|
+
const result = await gateway.folderExists(folderParams);
|
|
535
|
+
expect(result).toEqual({
|
|
536
|
+
data: null,
|
|
537
|
+
error
|
|
538
|
+
});
|
|
539
|
+
});
|
|
540
|
+
it("lets a transport failure pass as it is", async ()=>{
|
|
541
|
+
const failure = new Error("Network down.");
|
|
542
|
+
client.execute.mockRejectedValue(failure);
|
|
543
|
+
await expect(gateway.folderExists(folderParams)).rejects.toBe(failure);
|
|
544
|
+
});
|
|
545
|
+
});
|
|
546
|
+
describe("deleteWorkflow", ()=>{
|
|
547
|
+
it("deletes the workflow by id and returns the envelope as it is", async ()=>{
|
|
548
|
+
const envelope = {
|
|
549
|
+
data: createEditorWorkflowDto(),
|
|
550
|
+
error: null
|
|
551
|
+
};
|
|
552
|
+
client.execute.mockResolvedValue({
|
|
553
|
+
cms: {
|
|
554
|
+
deleteCmsEntryWorkflow: envelope
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
const result = await gateway.deleteWorkflow("workflow-1");
|
|
558
|
+
expect(result).toEqual(envelope);
|
|
559
|
+
const request = client.execute.mock.calls[0][0];
|
|
560
|
+
expect(request.variables).toEqual({
|
|
561
|
+
id: "workflow-1"
|
|
562
|
+
});
|
|
563
|
+
expect(request.query).toContain("mutation");
|
|
564
|
+
expect(request.query).toContain("deleteCmsEntryWorkflow(id: $id)");
|
|
565
|
+
expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);
|
|
566
|
+
});
|
|
567
|
+
it("returns a blocked delete envelope as it is", async ()=>{
|
|
568
|
+
const envelope = {
|
|
569
|
+
data: null,
|
|
570
|
+
error: {
|
|
571
|
+
code: "Workflows/Workflow/HasActiveReviews",
|
|
572
|
+
message: "In use.",
|
|
573
|
+
data: {
|
|
574
|
+
count: 2,
|
|
575
|
+
reviews: []
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
};
|
|
579
|
+
client.execute.mockResolvedValue({
|
|
580
|
+
cms: {
|
|
581
|
+
deleteCmsEntryWorkflow: envelope
|
|
582
|
+
}
|
|
583
|
+
});
|
|
584
|
+
expect(await gateway.deleteWorkflow("workflow-1")).toEqual(envelope);
|
|
585
|
+
});
|
|
586
|
+
});
|
|
587
|
+
});
|
|
588
|
+
|
|
589
|
+
//# sourceMappingURL=CmsWorkflowEditorGateway.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js","sources":["../../../../src/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.ts"],"sourcesContent":["import { beforeEach } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { Container } from \"@webiny/di\";\nimport { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/abstractions.js\";\nimport { ERROR_FIELDS } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\nimport { EDITOR_ROUTING_INSPECTION_FIELDS } from \"@webiny/app-workflows/editor/gateway/editorFields.js\";\nimport { EDITOR_WORKFLOW_FIELDS } from \"@webiny/app-workflows/editor/gateway/editorFields.js\";\nimport type { EditorWorkflowInput } from \"@webiny/app-workflows/editor/domain/types.js\";\nimport type { FolderExistsParams } from \"@webiny/app-workflows/editor/appGateway/IWorkflowEditorAppGateway.js\";\nimport type { InspectRoutingParams } from \"@webiny/app-workflows/editor/appGateway/IWorkflowEditorAppGateway.js\";\nimport { EDITOR_SAVED_ON } from \"@webiny/app-workflows/editor/testing/editorFixtures.js\";\nimport { createEditorWorkflowDto } from \"@webiny/app-workflows/editor/testing/editorFixtures.js\";\nimport { createRoutingInspectionDto } from \"@webiny/app-workflows/editor/testing/editorFixtures.js\";\nimport { createWorkflowModelRowDto } from \"@webiny/app-workflows/editor/testing/editorFixtures.js\";\nimport { WorkflowEditorAppGateway as GatewayAbstraction } from \"@webiny/app-workflows/editor/appGateway/abstractions.js\";\nimport { CmsWorkflowEditorGateway } from \"./CmsWorkflowEditorGateway.js\";\n\nconst input: EditorWorkflowInput = {\n id: \"workflow-1\",\n name: \"Article review\",\n models: [\"cms.article\"],\n steps: [\n {\n id: \"step-1\",\n title: \"Editorial check\",\n color: \"var(--color-primary-500)\",\n description: null,\n type: \"review\",\n notifications: [{ id: \"e-mail\" }],\n config: { teams: [\"team-1\"] }\n }\n ]\n};\n\nconst inspectParams: InspectRoutingParams = {\n stepConfig: {\n teams: [\"team-1\"],\n assignment: {\n strategy: \"roundRobin\",\n allowManualPick: false,\n rules: [{ id: \"rule-1\", conditions: {}, target: { type: \"team\", id: \"team-1\" } }]\n }\n },\n requesterId: \"user-1\",\n folderId: \"folder-1\",\n modelId: \"article\"\n};\n\nconst folderParams: FolderExistsParams = { id: \"folder-1\", type: \"cms:article\" };\n\ndescribe(\"CmsWorkflowEditorGateway\", () => {\n const client = { execute: vi.fn() };\n let gateway: GatewayAbstraction.Interface;\n\n beforeEach(() => {\n client.execute.mockReset();\n\n const container = new Container();\n container.registerInstance(MainGraphQLClient, client);\n container.register(CmsWorkflowEditorGateway);\n gateway = container.resolve(GatewayAbstraction);\n });\n\n it(\"declares the cms app, the key the routing gateway picks it by (R347)\", () => {\n expect(gateway.app).toBe(\"cms\");\n });\n\n describe(\"listModels\", () => {\n it(\"sends search, limit and after and folds data and meta into one page\", async () => {\n const rows = [createWorkflowModelRowDto()];\n client.execute.mockResolvedValue({\n cms: {\n listCmsEntryWorkflowModels: {\n data: rows,\n meta: { cursor: \"cursor-2\", hasMoreItems: true },\n error: null\n }\n }\n });\n\n const result = await gateway.listModels({\n search: \"art\",\n limit: 20,\n after: \"cursor-1\"\n });\n\n expect(result).toEqual({\n data: { rows, meta: { cursor: \"cursor-2\", hasMoreItems: true } },\n error: null\n });\n expect(client.execute).toHaveBeenCalledTimes(1);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ search: \"art\", limit: 20, after: \"cursor-1\" });\n expect(request.query).toContain(\n \"listCmsEntryWorkflowModels(search: $search, limit: $limit, after: $after)\"\n );\n expect(request.query).toContain(\"meta\");\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"selects the model, its name and the bound workflow's id and name\", async () => {\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: [], meta: null, error: null } }\n });\n\n await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n const query: string = client.execute.mock.calls[0][0].query;\n expect(query).toMatch(\n /model\\s+modelId\\s+name\\s+workflow\\s*\\{\\s*id\\s+name\\s+stepCount\\s*\\}/\n );\n });\n\n it(\"sends an empty search as null\", async () => {\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: [], meta: null, error: null } }\n });\n\n await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ search: null, limit: 20, after: null });\n });\n\n it(\"answers the default meta when the server sends none\", async () => {\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: [], meta: null, error: null } }\n });\n\n const result = await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n expect(result).toEqual({\n data: { rows: [], meta: { cursor: null, hasMoreItems: false } },\n error: null\n });\n });\n\n it(\"answers an error envelope without data and does not throw (R204)\", async () => {\n const error = { code: \"Workflows/NotAuthorized\", message: \"No.\", data: null };\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: null, meta: null, error } }\n });\n\n const result = await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n expect(result).toEqual({ data: null, error });\n });\n\n it(\"answers neither data nor error when the server sends neither\", async () => {\n client.execute.mockResolvedValue({\n cms: { listCmsEntryWorkflowModels: { data: null, meta: null, error: null } }\n });\n\n const result = await gateway.listModels({ search: \"\", limit: 20, after: null });\n\n expect(result).toEqual({ data: null, error: null });\n });\n\n it(\"lets a transport failure pass as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n\n await expect(gateway.listModels({ search: \"\", limit: 20, after: null })).rejects.toBe(\n failure\n );\n });\n });\n\n describe(\"getWorkflow\", () => {\n it(\"reads the workflow by id and returns the envelope as it is\", async () => {\n const envelope = { data: createEditorWorkflowDto(), error: null };\n client.execute.mockResolvedValue({ cms: { getCmsEntryWorkflow: envelope } });\n\n const result = await gateway.getWorkflow(\"workflow-1\");\n\n expect(result).toEqual(envelope);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ id: \"workflow-1\" });\n expect(request.query).toContain(\"getCmsEntryWorkflow(id: $id)\");\n expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"returns an error envelope as it is\", async () => {\n const envelope = {\n data: null,\n error: { code: \"Workflows/Workflow/NotFound\", message: \"Gone.\", data: { id: \"x\" } }\n };\n client.execute.mockResolvedValue({ cms: { getCmsEntryWorkflow: envelope } });\n\n expect(await gateway.getWorkflow(\"x\")).toEqual(envelope);\n });\n });\n\n describe(\"storeWorkflow\", () => {\n it(\"sends the data and the loaded savedOn string unchanged (D131)\", async () => {\n const envelope = { data: createEditorWorkflowDto(), error: null };\n client.execute.mockResolvedValue({ cms: { storeCmsEntryWorkflow: envelope } });\n\n const result = await gateway.storeWorkflow({ data: input, savedOn: EDITOR_SAVED_ON });\n\n expect(result).toEqual(envelope);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ data: input, savedOn: \"2026-10-18T09:15:30.123Z\" });\n expect(request.variables.data).toBe(input);\n expect(request.query).toContain(\"mutation\");\n expect(request.query).toContain(\n \"storeCmsEntryWorkflow(data: $data, savedOn: $savedOn)\"\n );\n expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"sends a null savedOn for a new workflow\", async () => {\n client.execute.mockResolvedValue({\n cms: { storeCmsEntryWorkflow: { data: createEditorWorkflowDto(), error: null } }\n });\n\n await gateway.storeWorkflow({ data: input, savedOn: null });\n\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ data: input, savedOn: null });\n });\n\n it(\"returns a conflict envelope as it is and does not throw (R204)\", async () => {\n const envelope = {\n data: null,\n error: {\n code: \"Workflows/Workflow/Conflict\",\n message: \"The workflow was changed.\",\n data: { savedOn: \"2026-10-18T10:00:00.000Z\" }\n }\n };\n client.execute.mockResolvedValue({ cms: { storeCmsEntryWorkflow: envelope } });\n\n const result = await gateway.storeWorkflow({ data: input, savedOn: EDITOR_SAVED_ON });\n\n expect(result).toEqual(envelope);\n });\n\n it(\"returns a validation envelope with the rule id as it is (R288)\", async () => {\n const envelope = {\n data: null,\n error: {\n code: \"Workflows/Workflow/Validation\",\n message: \"The target team is not one of the step's reviewing teams.\",\n data: {\n stepId: \"step-1\",\n field: \"config.assignment.rules.target\",\n workflowId: null,\n ruleId: \"r-1\"\n }\n }\n };\n client.execute.mockResolvedValue({ cms: { storeCmsEntryWorkflow: envelope } });\n\n const result = await gateway.storeWorkflow({ data: input, savedOn: EDITOR_SAVED_ON });\n\n expect(result).toEqual(envelope);\n expect(result.error?.data).toMatchObject({ ruleId: \"r-1\" });\n });\n\n it(\"lets a transport failure pass as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n\n await expect(\n gateway.storeWorkflow({ data: input, savedOn: EDITOR_SAVED_ON })\n ).rejects.toBe(failure);\n });\n });\n\n describe(\"inspectRouting\", () => {\n it(\"sends the step config, the bare model id, the requester and the folder as variables\", async () => {\n const envelope = { data: createRoutingInspectionDto(), error: null };\n client.execute.mockResolvedValue({ cms: { inspectCmsEntryRouting: envelope } });\n\n const result = await gateway.inspectRouting(inspectParams);\n\n expect(result).toEqual(envelope);\n expect(client.execute).toHaveBeenCalledTimes(1);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({\n stepConfig: inspectParams.stepConfig,\n modelId: \"article\",\n requesterId: \"user-1\",\n folderId: \"folder-1\"\n });\n expect(request.query).toContain(\"query InspectCmsEntryRouting\");\n expect(request.query).toContain(\"cms\");\n expect(request.query).toContain(\n \"inspectCmsEntryRouting(stepConfig: $stepConfig, modelId: $modelId, requesterId: $requesterId, folderId: $folderId)\"\n );\n expect(request.query).toContain(\"$stepConfig: JSON!\");\n expect(request.query).toContain(\"$modelId: ID!\");\n expect(request.query).toContain(\"$requesterId: ID!\");\n expect(request.query).toContain(\"$folderId: ID\");\n expect(request.query).toContain(EDITOR_ROUTING_INSPECTION_FIELDS);\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"sends a null folder as the root\", async () => {\n client.execute.mockResolvedValue({\n cms: { inspectCmsEntryRouting: { data: createRoutingInspectionDto(), error: null } }\n });\n\n await gateway.inspectRouting({ ...inspectParams, folderId: null });\n\n const request = client.execute.mock.calls[0][0];\n expect(request.variables.folderId).toBeNull();\n });\n\n it(\"selects every field of the extended inspection (R289)\", async () => {\n client.execute.mockResolvedValue({\n cms: { inspectCmsEntryRouting: { data: createRoutingInspectionDto(), error: null } }\n });\n\n await gateway.inspectRouting(inspectParams);\n\n const query: string = client.execute.mock.calls[0][0].query;\n expect(query).toMatch(/narrowedTeamId\\s+candidateIds\\s+candidateCount/);\n expect(query).toMatch(/trace\\s*\\{\\s*ruleId\\s+outcome\\s+reason\\s+failedConditions\\s*\\}/);\n expect(query).toMatch(/skipped\\s*\\{\\s*userId\\s+displayName\\s+reason\\s*\\}/);\n });\n\n it(\"returns a validation error of a rule as an envelope and does not throw (R204)\", async () => {\n const error = {\n code: \"Workflows/Workflow/Validation\",\n message: \"The target user is not a member of the step's teams.\",\n data: {\n stepId: \"step-1\",\n field: \"config.assignment.rules.target\",\n ruleId: \"rule-1\",\n workflowId: null\n }\n };\n client.execute.mockResolvedValue({\n cms: { inspectCmsEntryRouting: { data: null, error } }\n });\n\n const result = await gateway.inspectRouting(inspectParams);\n\n expect(result).toEqual({ data: null, error });\n });\n\n it(\"lets a transport failure pass as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n\n await expect(gateway.inspectRouting(inspectParams)).rejects.toBe(failure);\n });\n });\n\n describe(\"folderExists\", () => {\n it(\"sends the folder id and the folder type as variables\", async () => {\n const envelope = { data: true, error: null };\n client.execute.mockResolvedValue({ cms: { cmsEntryFolderExists: envelope } });\n\n const result = await gateway.folderExists(folderParams);\n\n expect(result).toEqual(envelope);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ id: \"folder-1\", type: \"cms:article\" });\n expect(request.query).toContain(\"query CmsEntryFolderExists\");\n expect(request.query).toContain(\"cmsEntryFolderExists(id: $id, type: $type)\");\n expect(request.query).toContain(\"$id: ID!\");\n expect(request.query).toContain(\"$type: String!\");\n expect(request.query).toContain(ERROR_FIELDS);\n });\n\n it(\"returns false as an answer, not an error\", async () => {\n const envelope = { data: false, error: null };\n client.execute.mockResolvedValue({ cms: { cmsEntryFolderExists: envelope } });\n\n const result = await gateway.folderExists(folderParams);\n\n expect(result).toEqual({ data: false, error: null });\n });\n\n it(\"returns a server error as an envelope and does not throw (R204)\", async () => {\n const error = { code: \"Workflows/NotAuthorized\", message: \"No.\", data: null };\n client.execute.mockResolvedValue({\n cms: { cmsEntryFolderExists: { data: null, error } }\n });\n\n const result = await gateway.folderExists(folderParams);\n\n expect(result).toEqual({ data: null, error });\n });\n\n it(\"lets a transport failure pass as it is\", async () => {\n const failure = new Error(\"Network down.\");\n client.execute.mockRejectedValue(failure);\n\n await expect(gateway.folderExists(folderParams)).rejects.toBe(failure);\n });\n });\n\n describe(\"deleteWorkflow\", () => {\n it(\"deletes the workflow by id and returns the envelope as it is\", async () => {\n const envelope = { data: createEditorWorkflowDto(), error: null };\n client.execute.mockResolvedValue({ cms: { deleteCmsEntryWorkflow: envelope } });\n\n const result = await gateway.deleteWorkflow(\"workflow-1\");\n\n expect(result).toEqual(envelope);\n const request = client.execute.mock.calls[0][0];\n expect(request.variables).toEqual({ id: \"workflow-1\" });\n expect(request.query).toContain(\"mutation\");\n expect(request.query).toContain(\"deleteCmsEntryWorkflow(id: $id)\");\n expect(request.query).toContain(EDITOR_WORKFLOW_FIELDS);\n });\n\n it(\"returns a blocked delete envelope as it is\", async () => {\n const envelope = {\n data: null,\n error: {\n code: \"Workflows/Workflow/HasActiveReviews\",\n message: \"In use.\",\n data: { count: 2, reviews: [] }\n }\n };\n client.execute.mockResolvedValue({ cms: { deleteCmsEntryWorkflow: envelope } });\n\n expect(await gateway.deleteWorkflow(\"workflow-1\")).toEqual(envelope);\n });\n });\n});\n"],"names":["input","inspectParams","folderParams","describe","client","vi","gateway","beforeEach","container","Container","MainGraphQLClient","CmsWorkflowEditorGateway","GatewayAbstraction","it","expect","rows","createWorkflowModelRowDto","result","request","ERROR_FIELDS","query","error","failure","Error","envelope","createEditorWorkflowDto","EDITOR_WORKFLOW_FIELDS","EDITOR_SAVED_ON","createRoutingInspectionDto","EDITOR_ROUTING_INSPECTION_FIELDS"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CmsWorkflowEditorFeature: import("@webiny/feature/admin").FeatureDefinition<any, []>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/admin";
|
|
2
|
+
import { CmsWorkflowEditorGateway } from "./CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js";
|
|
3
|
+
const CmsWorkflowEditorFeature = createFeature({
|
|
4
|
+
name: "CmsWorkflows/WorkflowEditor",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(CmsWorkflowEditorGateway).inSingletonScope();
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { CmsWorkflowEditorFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/editorGateway/feature.js","sources":["../../../src/features/editorGateway/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { CmsWorkflowEditorGateway } from \"./CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js\";\n\n/*\n * Registers the CMS editor gateway under the shared `WorkflowEditorAppGateway` token (R347, R354);\n * the routing gateway of app-workflows picks it for `app: \"cms\"`. Nothing to resolve.\n */\nexport const CmsWorkflowEditorFeature = createFeature({\n name: \"CmsWorkflows/WorkflowEditor\",\n register(container) {\n container.register(CmsWorkflowEditorGateway).inSingletonScope();\n }\n});\n"],"names":["CmsWorkflowEditorFeature","createFeature","container","CmsWorkflowEditorGateway"],"mappings":";;AAOO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,0BAA0B,gBAAgB;IACjE;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|