@raketa-cloud/admin 1.8.4 → 1.8.6
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/package.json +1 -1
- package/src/cloud/ResourceChanges.js +41 -0
- package/src/cloud/ResourceRevisions.js +242 -0
- package/src/cloud/Resources.js +219 -0
- package/src/cloud/documents/common.js +0 -30
- package/src/cloud/documents/resourcesDocuments.js +371 -0
- package/src/handlers/_shared/getResourceUpdateDestination.js +11 -0
- package/src/handlers/resource_revisions/CancelSchedulesHandler.js +31 -0
- package/src/handlers/resource_revisions/CodeHandler.js +70 -0
- package/src/handlers/resource_revisions/GeneralHandler.js +72 -0
- package/src/handlers/{article_revisions → resource_revisions}/LocksHandler.js +15 -10
- package/src/handlers/resource_revisions/MetaHandler.js +70 -0
- package/src/handlers/{article_revisions → resource_revisions}/PublishesHandler.js +27 -19
- package/src/handlers/resource_revisions/ResourceRevisionsHandler.js +65 -0
- package/src/handlers/{article_revisions → resource_revisions}/RevertsHandler.js +7 -5
- package/src/handlers/{page_revisions → resource_revisions}/TagHandler.js +31 -16
- package/src/handlers/resource_revisions/UnlocksHandler.js +29 -0
- package/src/handlers/resource_revisions/VisualHandler.js +71 -0
- package/src/handlers/{article_revisions → resource_revisions}/WidgetHandler.js +11 -6
- package/src/handlers/{pages → resources}/ChangeHandler.js +5 -3
- package/src/handlers/resources/ClonesHandler.js +24 -0
- package/src/handlers/resources/DeletesHandler.js +79 -0
- package/src/handlers/{pages → resources}/ExportsHandler.js +8 -4
- package/src/handlers/resources/HistoryHandler.js +39 -0
- package/src/handlers/{pages/PagesAPIHandler.js → resources/ResourcesAPIHandler.js} +4 -2
- package/src/handlers/{pages/PagesHandler.js → resources/ResourcesHandler.js} +35 -18
- package/src/handlers/{pages → resources}/TranslationsHandler.js +65 -37
- package/src/handlers/resources/URLsHandler.js +84 -0
- package/src/helpers/CSVExportHelper.js +5 -6
- package/src/index.js +28 -69
- package/src/routeArticlesModule.js +7 -167
- package/src/routeEventsModule.js +7 -182
- package/src/routePagesModule.js +7 -179
- package/src/routeResource.js +197 -0
- package/src/routeStandard.js +1 -1
- package/src/setupCloud.js +10 -30
- package/src/tests/HonoAdapter.coverage.test.js +640 -0
- package/src/tests/buildResourcePath.test.js +69 -0
- package/src/tests/handlers/_shared/getResourceUpdateDestination.test.js +63 -0
- package/src/tests/handlers/{article_revisions/CancelScheduledHandler.test → resource_revisions/CancelSchedulesHandler.test}/create.test.js +26 -26
- package/src/tests/handlers/{page_revisions/CodesHandler.test → resource_revisions/CodeHandler.test}/edit_form.test.js +13 -16
- package/src/tests/handlers/{article_revisions/CodesHandler.test → resource_revisions/CodeHandler.test}/update.test.js +38 -57
- package/src/tests/handlers/resource_revisions/GeneralHandler.test/edit_form.test.js +58 -0
- package/src/tests/handlers/{article_revisions → resource_revisions}/GeneralHandler.test/update.test.js +39 -53
- package/src/tests/handlers/{event_revisions → resource_revisions}/LocksHandler.test/create.test.js +34 -31
- package/src/tests/handlers/{event_revisions → resource_revisions}/LocksHandler.test/create_form.test.js +16 -12
- package/src/tests/handlers/{page_revisions → resource_revisions}/MetaHandler.test/edit_form.test.js +13 -9
- package/src/tests/handlers/{article_revisions → resource_revisions}/MetaHandler.test/update.test.js +38 -57
- package/src/tests/handlers/{article_revisions → resource_revisions}/PublishesHandler.test/create.test.js +60 -72
- package/src/tests/handlers/{page_revisions → resource_revisions}/PublishesHandler.test/create_form.test.js +14 -10
- package/src/tests/handlers/resource_revisions/ResourceRevisionsHandler.test/create.test.js +87 -0
- package/src/tests/handlers/{article_revisions/ArticleRevisionsHandler.test → resource_revisions/ResourceRevisionsHandler.test}/destroy.test.js +13 -13
- package/src/tests/handlers/resource_revisions/RevertsHandler.test/create.test.js +83 -0
- package/src/tests/handlers/{event_revisions → resource_revisions}/TagHandler.test/edit_form.test.js +23 -19
- package/src/tests/handlers/{article_revisions → resource_revisions}/TagHandler.test/update.test.js +44 -49
- package/src/tests/handlers/{article_revisions → resource_revisions}/UnlocksHandler.test/create.test.js +22 -22
- package/src/tests/handlers/{page_revisions/VisualHandler.test.test → resource_revisions/VisualHandler.test}/edit_form.test.js +13 -16
- package/src/tests/handlers/resource_revisions/VisualHandler.test/update.test.js +130 -0
- package/src/tests/handlers/{event_revisions → resource_revisions}/WidgetHandler.test/show.test.js +11 -7
- package/src/tests/handlers/{event_revisions → resource_revisions}/WidgetHandler.test/update.test.js +28 -14
- package/src/tests/handlers/resources/ChangeHandler.test/show.test.js +57 -0
- package/src/tests/handlers/resources/ClonesHandler.test/create.test.js +57 -0
- package/src/tests/handlers/{articles → resources}/DeletesHandler.test/create.test.js +30 -30
- package/src/tests/handlers/resources/DeletesHandler.test/create_form.test.js +60 -0
- package/src/tests/handlers/{articles → resources}/ExportsHandler.test/index.test.js +57 -57
- package/src/tests/handlers/{articles/ArticlesHistoryHandler.test → resources/HistoryHandler.test}/index.test.js +19 -20
- package/src/tests/handlers/resources/ResourcesAPIHandler.test/index.test.js +41 -0
- package/src/tests/handlers/{pages/PagesHandler.test → resources/ResourcesHandler.test}/create.test.js +23 -22
- package/src/tests/handlers/{events/EventsHandler.test → resources/ResourcesHandler.test}/create_form.test.js +12 -11
- package/src/tests/handlers/{events/EventsHandler.test → resources/ResourcesHandler.test}/index.test.js +18 -18
- package/src/tests/handlers/resources/ResourcesHandler.test/show.test.js +111 -0
- package/src/tests/handlers/resources/TranslationsHandler.test/create.test.js +320 -0
- package/src/tests/handlers/resources/TranslationsHandler.test/create_form.test.js +85 -0
- package/src/tests/handlers/resources/TranslationsHandler.test/index.test.js +99 -0
- package/src/tests/handlers/{articles → resources}/URLsHandler.test/create.test.js +48 -43
- package/src/tests/handlers/resources/URLsHandler.test/create_form.test.js +55 -0
- package/src/tests/routeArticlesModule.test.js +43 -0
- package/src/tests/routeCategoriesModule.test.js +23 -0
- package/src/tests/routeEventsModule.test.js +43 -0
- package/src/tests/routePagesModule.test.js +43 -0
- package/src/tests/routeResource.test.js +202 -0
- package/src/tests/routeSettings.test.js +40 -0
- package/src/tests/routeStandard.test.js +70 -0
- package/src/tests/setGlobalContext.test.js +12 -0
- package/src/tests/setupAuthentication.test.js +407 -0
- package/src/tests/setupCloud.test.js +51 -0
- package/src/tests/support/factory.js +15 -86
- package/src/views/article_revisions/_nav.ejs +6 -6
- package/src/views/article_revisions/codes/_form.ejs +2 -2
- package/src/views/article_revisions/general/_form.ejs +3 -3
- package/src/views/article_revisions/locks/_form.ejs +2 -2
- package/src/views/article_revisions/meta/_form.ejs +2 -2
- package/src/views/article_revisions/publishes/_form.ejs +2 -2
- package/src/views/article_revisions/tags/_form.ejs +2 -2
- package/src/views/article_revisions/visuals/_form.ejs +2 -2
- package/src/views/articles/_form.ejs +9 -9
- package/src/views/articles/_shared/_export_button.ejs +1 -1
- package/src/views/articles/_shared/_history_toolbar.ejs +2 -2
- package/src/views/articles/_shared/_revision_toolbar.ejs +7 -7
- package/src/views/articles/_shared/_title.ejs +2 -2
- package/src/views/articles/_shared/_toolbar.ejs +6 -6
- package/src/views/articles/_shared/history_table.ejs +1 -1
- package/src/views/articles/create_form.ejs +1 -1
- package/src/views/articles/deletes/create_form.ejs +3 -3
- package/src/views/articles/history/index.ejs +4 -4
- package/src/views/articles/index.ejs +11 -11
- package/src/views/articles/show.ejs +6 -6
- package/src/views/articles/translations/_translation_toolbar.ejs +2 -2
- package/src/views/articles/translations/create_form.ejs +2 -2
- package/src/views/articles/translations/index.ejs +3 -3
- package/src/views/articles/urls/create_form.ejs +3 -3
- package/src/views/event_revisions/_nav.ejs +6 -6
- package/src/views/event_revisions/codes/_form.ejs +2 -2
- package/src/views/event_revisions/general/_form.ejs +5 -5
- package/src/views/event_revisions/locks/_form.ejs +2 -2
- package/src/views/event_revisions/meta/_form.ejs +2 -2
- package/src/views/event_revisions/publishes/_form.ejs +2 -2
- package/src/views/event_revisions/tags/_form.ejs +2 -2
- package/src/views/event_revisions/visuals/_form.ejs +2 -2
- package/src/views/events/_form.ejs +6 -6
- package/src/views/events/_shared/_export_button.ejs +1 -1
- package/src/views/events/_shared/_history_toolbar.ejs +2 -2
- package/src/views/events/_shared/_revision_toolbar.ejs +7 -7
- package/src/views/events/_shared/_title.ejs +2 -2
- package/src/views/events/_shared/_toolbar.ejs +6 -6
- package/src/views/events/_shared/history_table.ejs +1 -1
- package/src/views/events/create_form.ejs +1 -1
- package/src/views/events/deletes/create_form.ejs +3 -3
- package/src/views/events/history/index.ejs +4 -4
- package/src/views/events/index.ejs +11 -11
- package/src/views/events/show.ejs +6 -6
- package/src/views/events/translations/_translation_toolbar.ejs +2 -2
- package/src/views/events/translations/create_form.ejs +2 -2
- package/src/views/events/translations/index.ejs +3 -3
- package/src/views/events/urls/create_form.ejs +3 -3
- package/src/views/page_revisions/_nav.ejs +6 -6
- package/src/views/page_revisions/codes/_form.ejs +2 -2
- package/src/views/page_revisions/general/_form.ejs +2 -2
- package/src/views/page_revisions/locks/_form.ejs +2 -2
- package/src/views/page_revisions/meta/_form.ejs +2 -2
- package/src/views/page_revisions/publishes/_form.ejs +2 -2
- package/src/views/page_revisions/tags/_form.ejs +2 -2
- package/src/views/page_revisions/visuals/_form.ejs +2 -2
- package/src/views/pages/_form.ejs +3 -3
- package/src/views/pages/_shared/_export_button.ejs +1 -1
- package/src/views/pages/_shared/_history_toolbar.ejs +2 -2
- package/src/views/pages/_shared/_revision_toolbar.ejs +7 -7
- package/src/views/pages/_shared/_title.ejs +2 -2
- package/src/views/pages/_shared/_toolbar.ejs +6 -6
- package/src/views/pages/_shared/history_table.ejs +1 -1
- package/src/views/pages/create_form.ejs +1 -1
- package/src/views/pages/deletes/create_form.ejs +3 -3
- package/src/views/pages/history/index.ejs +4 -4
- package/src/views/pages/index.ejs +9 -9
- package/src/views/pages/show.ejs +6 -6
- package/src/views/pages/translations/_translation_toolbar.ejs +2 -2
- package/src/views/pages/translations/create_form.ejs +2 -2
- package/src/views/pages/translations/index.ejs +3 -3
- package/src/views/pages/urls/create_form.ejs +3 -3
- package/src/cloud/ArticleChanges.js +0 -36
- package/src/cloud/ArticleRevisions.js +0 -239
- package/src/cloud/Articles.js +0 -216
- package/src/cloud/EventChanges.js +0 -36
- package/src/cloud/EventRevisions.js +0 -246
- package/src/cloud/Events.js +0 -231
- package/src/cloud/PageChanges.js +0 -36
- package/src/cloud/PageRevisions.js +0 -226
- package/src/cloud/Pages.js +0 -204
- package/src/cloud/documents/articlesDocuments.js +0 -375
- package/src/cloud/documents/eventsDocuments.js +0 -390
- package/src/cloud/documents/pagesDocuments.js +0 -370
- package/src/handlers/_shared/getArticlesUpdateDestination.js +0 -7
- package/src/handlers/_shared/getEventsUpdateDestination.js +0 -7
- package/src/handlers/_shared/getPagesUpdateDestination.js +0 -8
- package/src/handlers/article_revisions/ArticleRevisionsHandler.js +0 -57
- package/src/handlers/article_revisions/CancelSchedulesHandler.js +0 -26
- package/src/handlers/article_revisions/CodeHandler.js +0 -75
- package/src/handlers/article_revisions/GeneralHandler.js +0 -77
- package/src/handlers/article_revisions/MetaHandler.js +0 -75
- package/src/handlers/article_revisions/TagHandler.js +0 -83
- package/src/handlers/article_revisions/UnlocksHandler.js +0 -24
- package/src/handlers/article_revisions/VisualHandler.js +0 -75
- package/src/handlers/articles/ArticlesAPIHandler.js +0 -15
- package/src/handlers/articles/ArticlesHandler.js +0 -126
- package/src/handlers/articles/ChangeHandler.js +0 -22
- package/src/handlers/articles/ClonesHandler.js +0 -19
- package/src/handlers/articles/DeletesHandler.js +0 -72
- package/src/handlers/articles/ExportsHandler.js +0 -35
- package/src/handlers/articles/HistoryHandler.js +0 -31
- package/src/handlers/articles/TranslationsHandler.js +0 -231
- package/src/handlers/articles/URLsHandler.js +0 -83
- package/src/handlers/event_revisions/CancelSchedulesHandler.js +0 -26
- package/src/handlers/event_revisions/CodeHandler.js +0 -73
- package/src/handlers/event_revisions/EventRevisionsHandler.js +0 -55
- package/src/handlers/event_revisions/GeneralHandler.js +0 -75
- package/src/handlers/event_revisions/LocksHandler.js +0 -65
- package/src/handlers/event_revisions/MetaHandler.js +0 -73
- package/src/handlers/event_revisions/PublishesHandler.js +0 -112
- package/src/handlers/event_revisions/RevertsHandler.js +0 -26
- package/src/handlers/event_revisions/TagHandler.js +0 -80
- package/src/handlers/event_revisions/UnlocksHandler.js +0 -24
- package/src/handlers/event_revisions/VisualHandler.js +0 -73
- package/src/handlers/event_revisions/WidgetHandler.js +0 -41
- package/src/handlers/events/ChangeHandler.js +0 -22
- package/src/handlers/events/ClonesHandler.js +0 -19
- package/src/handlers/events/DeletesHandler.js +0 -72
- package/src/handlers/events/EventsAPIHandler.js +0 -15
- package/src/handlers/events/EventsHandler.js +0 -128
- package/src/handlers/events/ExportsHandler.js +0 -35
- package/src/handlers/events/HistoryHandler.js +0 -31
- package/src/handlers/events/TranslationsHandler.js +0 -233
- package/src/handlers/events/URLsHandler.js +0 -81
- package/src/handlers/page_revisions/CancelSchedulesHandler.js +0 -26
- package/src/handlers/page_revisions/CodeHandler.js +0 -59
- package/src/handlers/page_revisions/GeneralHandler.js +0 -61
- package/src/handlers/page_revisions/LocksHandler.js +0 -69
- package/src/handlers/page_revisions/MetaHandler.js +0 -59
- package/src/handlers/page_revisions/PageRevisionsHandler.js +0 -55
- package/src/handlers/page_revisions/PublishesHandler.js +0 -112
- package/src/handlers/page_revisions/RevertsHandler.js +0 -26
- package/src/handlers/page_revisions/UnlocksHandler.js +0 -22
- package/src/handlers/page_revisions/VisualHandler.js +0 -60
- package/src/handlers/page_revisions/WidgetHandler.js +0 -41
- package/src/handlers/pages/ClonesHandler.js +0 -19
- package/src/handlers/pages/DeletesHandler.js +0 -68
- package/src/handlers/pages/HistoryHandler.js +0 -31
- package/src/handlers/pages/URLsHandler.js +0 -77
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +0 -87
- package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +0 -56
- package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +0 -59
- package/src/tests/handlers/article_revisions/LocksHandler.test/create.test.js +0 -142
- package/src/tests/handlers/article_revisions/LocksHandler.test/create_form.test.js +0 -55
- package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +0 -56
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +0 -48
- package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +0 -86
- package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +0 -72
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +0 -56
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +0 -146
- package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +0 -46
- package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +0 -103
- package/src/tests/handlers/articles/ArticlesAPIHandler.test/index.test.js +0 -43
- package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +0 -172
- package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +0 -44
- package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +0 -73
- package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +0 -120
- package/src/tests/handlers/articles/ChangeHandler.test/show.test.js +0 -59
- package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +0 -57
- package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +0 -60
- package/src/tests/handlers/articles/TranslationHandler.test/create.test.js +0 -297
- package/src/tests/handlers/articles/TranslationHandler.test/create_form.test.js +0 -71
- package/src/tests/handlers/articles/TranslationHandler.test/index.test.js +0 -91
- package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +0 -55
- package/src/tests/handlers/event_revisions/CancelScheduledHandler.test/create.test.js +0 -90
- package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +0 -60
- package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +0 -171
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +0 -87
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +0 -57
- package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +0 -63
- package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +0 -172
- package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +0 -60
- package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +0 -173
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +0 -333
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +0 -48
- package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +0 -83
- package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +0 -163
- package/src/tests/handlers/event_revisions/UnlocksHandler.test/create.test.js +0 -84
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +0 -60
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +0 -156
- package/src/tests/handlers/events/ChangeHandler.test/show.test.js +0 -59
- package/src/tests/handlers/events/ClonesHandler.test/create.test.js +0 -57
- package/src/tests/handlers/events/DeletesHandler.test/create.test.js +0 -115
- package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +0 -60
- package/src/tests/handlers/events/EventsAPIHandler.test/index.test.js +0 -39
- package/src/tests/handlers/events/EventsHandler.test/create.test.js +0 -172
- package/src/tests/handlers/events/EventsHandler.test/show.test.js +0 -120
- package/src/tests/handlers/events/EventsHistoryHandler.test/index.test.js +0 -87
- package/src/tests/handlers/events/ExportsHandler.test/index.test.js +0 -212
- package/src/tests/handlers/events/TranslationHandler.test/create.test.js +0 -303
- package/src/tests/handlers/events/TranslationHandler.test/create_form.test.js +0 -71
- package/src/tests/handlers/events/TranslationHandler.test/index.test.js +0 -91
- package/src/tests/handlers/events/URLsHandler.test/create.test.js +0 -160
- package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +0 -55
- package/src/tests/handlers/page_revisions/CancelScheduledHandler.test/create.test.js +0 -86
- package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +0 -204
- package/src/tests/handlers/page_revisions/GeneralHandler.test/edit_form.test.js +0 -54
- package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +0 -219
- package/src/tests/handlers/page_revisions/LocksHandler.test/create.test.js +0 -138
- package/src/tests/handlers/page_revisions/LocksHandler.test/create_form.test.js +0 -55
- package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +0 -211
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +0 -85
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +0 -57
- package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +0 -333
- package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +0 -83
- package/src/tests/handlers/page_revisions/TagHandler.test/edit_form.test.js +0 -100
- package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +0 -223
- package/src/tests/handlers/page_revisions/UnlocksHandler.test/create.test.js +0 -80
- package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +0 -183
- package/src/tests/handlers/page_revisions/WidgetHandler.test/show.test.js +0 -46
- package/src/tests/handlers/page_revisions/WidgetHandler.test/update.test.js +0 -103
- package/src/tests/handlers/pages/ChangeHandler.test/show.test.js +0 -59
- package/src/tests/handlers/pages/ConesHandler.test/create.test.js +0 -57
- package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +0 -115
- package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +0 -60
- package/src/tests/handlers/pages/ExportsHandler.test/index.test.js +0 -212
- package/src/tests/handlers/pages/PagesAPIHandler.test/index.test.js +0 -39
- package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +0 -41
- package/src/tests/handlers/pages/PagesHandler.test/index.test.js +0 -69
- package/src/tests/handlers/pages/PagesHandler.test/show.test.js +0 -118
- package/src/tests/handlers/pages/PagesHistoryHandler.test/index.test.js +0 -87
- package/src/tests/handlers/pages/TranslationHandler.test/create.test.js +0 -290
- package/src/tests/handlers/pages/TranslationHandler.test/create_form.test.js +0 -71
- package/src/tests/handlers/pages/TranslationHandler.test/index.test.js +0 -87
- package/src/tests/handlers/pages/URLsHandler.test/create.test.js +0 -160
- package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +0 -58
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import PublishesHandler from "../../../../handlers/
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import PublishesHandler from "../../../../handlers/resource_revisions/PublishesHandler";
|
|
2
|
+
import ResourceRevisions from "../../../../cloud/ResourceRevisions";
|
|
3
|
+
import Resources from "../../../../cloud/Resources";
|
|
4
4
|
|
|
5
5
|
import Factory from "../../../support/factory";
|
|
6
6
|
|
|
7
7
|
function buildCtx(revision, resourceParams) {
|
|
8
8
|
return {
|
|
9
9
|
client: {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
resourceRevisions: new ResourceRevisions(() => ({}), "token"),
|
|
11
|
+
resources: new Resources(() => ({}), "token"),
|
|
12
12
|
},
|
|
13
13
|
params: { parent_id: revision.id },
|
|
14
14
|
resourceParams,
|
|
15
15
|
locale: "en",
|
|
16
16
|
resourceConfig: {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
resourceType: "article",
|
|
18
|
+
resourceTypePlural: "articles",
|
|
19
19
|
},
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
describe("Publish
|
|
23
|
+
describe("Publish resource revision", () => {
|
|
24
24
|
test("create successful for publishing", async () => {
|
|
25
|
-
const revision = Factory.build("
|
|
25
|
+
const revision = Factory.build("resource_revision");
|
|
26
26
|
const publishing = {
|
|
27
27
|
title: "A new revision!",
|
|
28
28
|
description: "Nice!",
|
|
@@ -32,11 +32,9 @@ describe("Publish article revision", () => {
|
|
|
32
32
|
type: "now",
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
const ctx = buildCtx(revision, {
|
|
36
|
-
publishing,
|
|
37
|
-
});
|
|
35
|
+
const ctx = buildCtx(revision, { publishing });
|
|
38
36
|
|
|
39
|
-
const
|
|
37
|
+
const updatedResource = Factory.build("resource", {
|
|
40
38
|
id: revision.originalId,
|
|
41
39
|
settings: {
|
|
42
40
|
credentials: {
|
|
@@ -47,16 +45,16 @@ describe("Publish article revision", () => {
|
|
|
47
45
|
});
|
|
48
46
|
|
|
49
47
|
const mockFind = jest
|
|
50
|
-
.spyOn(ctx.client.
|
|
48
|
+
.spyOn(ctx.client.resourceRevisions, "find")
|
|
51
49
|
.mockImplementation(() => revision);
|
|
52
50
|
|
|
53
51
|
const mockPublish = jest
|
|
54
|
-
.spyOn(ctx.client.
|
|
55
|
-
.mockImplementation(() => ({
|
|
52
|
+
.spyOn(ctx.client.resourceRevisions, "publish")
|
|
53
|
+
.mockImplementation(() => ({ resource: updatedResource, errors: null }));
|
|
56
54
|
|
|
57
55
|
const result = await PublishesHandler.create(ctx);
|
|
58
56
|
|
|
59
|
-
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
57
|
+
expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
|
|
60
58
|
expect(mockPublish).toHaveBeenCalledWith(
|
|
61
59
|
revision.id,
|
|
62
60
|
"en",
|
|
@@ -73,16 +71,17 @@ describe("Publish article revision", () => {
|
|
|
73
71
|
password: publishing.password,
|
|
74
72
|
},
|
|
75
73
|
}),
|
|
76
|
-
}
|
|
74
|
+
},
|
|
75
|
+
"article"
|
|
77
76
|
);
|
|
78
77
|
|
|
79
78
|
expect(result).toEqual({
|
|
80
|
-
redirect: `/en/articles/${
|
|
79
|
+
redirect: `/en/articles/${revision.originalId}`,
|
|
81
80
|
});
|
|
82
81
|
});
|
|
83
82
|
|
|
84
83
|
test("create failed for publishing", async () => {
|
|
85
|
-
const revision = Factory.build("
|
|
84
|
+
const revision = Factory.build("resource_revision");
|
|
86
85
|
const publishing = {
|
|
87
86
|
title: "A new revision!",
|
|
88
87
|
description: "Nice!",
|
|
@@ -90,24 +89,22 @@ describe("Publish article revision", () => {
|
|
|
90
89
|
type: "now",
|
|
91
90
|
};
|
|
92
91
|
|
|
93
|
-
const ctx = buildCtx(revision, {
|
|
94
|
-
publishing,
|
|
95
|
-
});
|
|
92
|
+
const ctx = buildCtx(revision, { publishing });
|
|
96
93
|
|
|
97
94
|
const mockFind = jest
|
|
98
|
-
.spyOn(ctx.client.
|
|
95
|
+
.spyOn(ctx.client.resourceRevisions, "find")
|
|
99
96
|
.mockImplementation(() => revision);
|
|
100
97
|
|
|
101
98
|
const mockPublish = jest
|
|
102
|
-
.spyOn(ctx.client.
|
|
99
|
+
.spyOn(ctx.client.resourceRevisions, "publish")
|
|
103
100
|
.mockImplementation(() => ({
|
|
104
|
-
|
|
101
|
+
resource: null,
|
|
105
102
|
errors: [{ key: "url", message: "Oops" }],
|
|
106
103
|
}));
|
|
107
104
|
|
|
108
105
|
const result = await PublishesHandler.create(ctx);
|
|
109
106
|
|
|
110
|
-
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
107
|
+
expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
|
|
111
108
|
expect(mockPublish).toHaveBeenCalledWith(
|
|
112
109
|
revision.id,
|
|
113
110
|
"en",
|
|
@@ -117,7 +114,8 @@ describe("Publish article revision", () => {
|
|
|
117
114
|
},
|
|
118
115
|
{
|
|
119
116
|
visibility: publishing.visibility,
|
|
120
|
-
}
|
|
117
|
+
},
|
|
118
|
+
"article"
|
|
121
119
|
);
|
|
122
120
|
|
|
123
121
|
expect(result).toEqual({
|
|
@@ -132,19 +130,16 @@ describe("Publish article revision", () => {
|
|
|
132
130
|
password: publishing.password,
|
|
133
131
|
type: publishing.type,
|
|
134
132
|
},
|
|
135
|
-
visibilityOptions: ctx.client.
|
|
136
|
-
errors: {
|
|
137
|
-
|
|
138
|
-
},
|
|
139
|
-
articleErrors: null,
|
|
133
|
+
visibilityOptions: ctx.client.resources.visibilityOptions(),
|
|
134
|
+
errors: { url: "Oops" },
|
|
135
|
+
resourceErrors: null,
|
|
140
136
|
_translations: [],
|
|
141
137
|
},
|
|
142
138
|
});
|
|
143
139
|
});
|
|
144
140
|
|
|
145
141
|
test("create successful for scheduling", async () => {
|
|
146
|
-
const revision = Factory.build("
|
|
147
|
-
const schedule = Factory.build("revision_schedule");
|
|
142
|
+
const revision = Factory.build("resource_revision");
|
|
148
143
|
const publishing = {
|
|
149
144
|
mergeAt: "2024-12-20T20:20",
|
|
150
145
|
title: "A new revision!",
|
|
@@ -155,27 +150,25 @@ describe("Publish article revision", () => {
|
|
|
155
150
|
type: "later",
|
|
156
151
|
};
|
|
157
152
|
|
|
158
|
-
const ctx = buildCtx(revision, {
|
|
159
|
-
publishing,
|
|
160
|
-
});
|
|
153
|
+
const ctx = buildCtx(revision, { publishing });
|
|
161
154
|
|
|
162
|
-
const updatedRevision = { ...revision
|
|
155
|
+
const updatedRevision = { ...revision };
|
|
163
156
|
|
|
164
157
|
const mockFind = jest
|
|
165
|
-
.spyOn(ctx.client.
|
|
158
|
+
.spyOn(ctx.client.resourceRevisions, "find")
|
|
166
159
|
.mockImplementation(() => revision);
|
|
167
160
|
|
|
168
161
|
const mockSchedule = jest
|
|
169
|
-
.spyOn(ctx.client.
|
|
162
|
+
.spyOn(ctx.client.resourceRevisions, "schedule")
|
|
170
163
|
.mockImplementation(() => ({
|
|
171
164
|
revision: updatedRevision,
|
|
172
165
|
errors: null,
|
|
173
|
-
|
|
166
|
+
resourceErrors: null,
|
|
174
167
|
}));
|
|
175
168
|
|
|
176
169
|
const result = await PublishesHandler.create(ctx);
|
|
177
170
|
|
|
178
|
-
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
171
|
+
expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
|
|
179
172
|
expect(mockSchedule).toHaveBeenCalledWith(
|
|
180
173
|
revision.id,
|
|
181
174
|
"en",
|
|
@@ -193,7 +186,8 @@ describe("Publish article revision", () => {
|
|
|
193
186
|
password: publishing.password,
|
|
194
187
|
},
|
|
195
188
|
}),
|
|
196
|
-
}
|
|
189
|
+
},
|
|
190
|
+
"article"
|
|
197
191
|
);
|
|
198
192
|
|
|
199
193
|
expect(result).toEqual({
|
|
@@ -201,8 +195,8 @@ describe("Publish article revision", () => {
|
|
|
201
195
|
});
|
|
202
196
|
});
|
|
203
197
|
|
|
204
|
-
test("create failed for scheduling -
|
|
205
|
-
const revision = Factory.build("
|
|
198
|
+
test("create failed for scheduling - resourceErrors", async () => {
|
|
199
|
+
const revision = Factory.build("resource_revision");
|
|
206
200
|
const publishing = {
|
|
207
201
|
mergeAt: "2024-12-20T20:20",
|
|
208
202
|
title: "A new revision!",
|
|
@@ -211,25 +205,23 @@ describe("Publish article revision", () => {
|
|
|
211
205
|
type: "later",
|
|
212
206
|
};
|
|
213
207
|
|
|
214
|
-
const ctx = buildCtx(revision, {
|
|
215
|
-
publishing,
|
|
216
|
-
});
|
|
208
|
+
const ctx = buildCtx(revision, { publishing });
|
|
217
209
|
|
|
218
210
|
const mockFind = jest
|
|
219
|
-
.spyOn(ctx.client.
|
|
211
|
+
.spyOn(ctx.client.resourceRevisions, "find")
|
|
220
212
|
.mockImplementation(() => revision);
|
|
221
213
|
|
|
222
214
|
const mockSchedule = jest
|
|
223
|
-
.spyOn(ctx.client.
|
|
215
|
+
.spyOn(ctx.client.resourceRevisions, "schedule")
|
|
224
216
|
.mockImplementation(() => ({
|
|
225
217
|
revision: null,
|
|
226
|
-
|
|
218
|
+
resourceErrors: [{ key: "slug", message: "Oops" }],
|
|
227
219
|
errors: null,
|
|
228
220
|
}));
|
|
229
221
|
|
|
230
222
|
const result = await PublishesHandler.create(ctx);
|
|
231
223
|
|
|
232
|
-
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
224
|
+
expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
|
|
233
225
|
expect(mockSchedule).toHaveBeenCalledWith(
|
|
234
226
|
revision.id,
|
|
235
227
|
"en",
|
|
@@ -240,7 +232,8 @@ describe("Publish article revision", () => {
|
|
|
240
232
|
},
|
|
241
233
|
{
|
|
242
234
|
visibility: publishing.visibility,
|
|
243
|
-
}
|
|
235
|
+
},
|
|
236
|
+
"article"
|
|
244
237
|
);
|
|
245
238
|
|
|
246
239
|
expect(result).toEqual({
|
|
@@ -256,10 +249,8 @@ describe("Publish article revision", () => {
|
|
|
256
249
|
password: publishing.password,
|
|
257
250
|
type: publishing.type,
|
|
258
251
|
},
|
|
259
|
-
visibilityOptions: ctx.client.
|
|
260
|
-
|
|
261
|
-
slug: "Oops",
|
|
262
|
-
},
|
|
252
|
+
visibilityOptions: ctx.client.resources.visibilityOptions(),
|
|
253
|
+
resourceErrors: { slug: "Oops" },
|
|
263
254
|
errors: null,
|
|
264
255
|
_translations: [],
|
|
265
256
|
},
|
|
@@ -267,7 +258,7 @@ describe("Publish article revision", () => {
|
|
|
267
258
|
});
|
|
268
259
|
|
|
269
260
|
test("create failed for scheduling - errors", async () => {
|
|
270
|
-
const revision = Factory.build("
|
|
261
|
+
const revision = Factory.build("resource_revision");
|
|
271
262
|
const publishing = {
|
|
272
263
|
mergeAt: "2024-12-20T20:20",
|
|
273
264
|
title: "A new revision!",
|
|
@@ -276,25 +267,23 @@ describe("Publish article revision", () => {
|
|
|
276
267
|
type: "later",
|
|
277
268
|
};
|
|
278
269
|
|
|
279
|
-
const ctx = buildCtx(revision, {
|
|
280
|
-
publishing,
|
|
281
|
-
});
|
|
270
|
+
const ctx = buildCtx(revision, { publishing });
|
|
282
271
|
|
|
283
272
|
const mockFind = jest
|
|
284
|
-
.spyOn(ctx.client.
|
|
273
|
+
.spyOn(ctx.client.resourceRevisions, "find")
|
|
285
274
|
.mockImplementation(() => revision);
|
|
286
275
|
|
|
287
276
|
const mockSchedule = jest
|
|
288
|
-
.spyOn(ctx.client.
|
|
277
|
+
.spyOn(ctx.client.resourceRevisions, "schedule")
|
|
289
278
|
.mockImplementation(() => ({
|
|
290
279
|
revision: null,
|
|
291
280
|
errors: [{ key: "slug", message: "Oops" }],
|
|
292
|
-
|
|
281
|
+
resourceErrors: null,
|
|
293
282
|
}));
|
|
294
283
|
|
|
295
284
|
const result = await PublishesHandler.create(ctx);
|
|
296
285
|
|
|
297
|
-
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
286
|
+
expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
|
|
298
287
|
expect(mockSchedule).toHaveBeenCalledWith(
|
|
299
288
|
revision.id,
|
|
300
289
|
"en",
|
|
@@ -305,7 +294,8 @@ describe("Publish article revision", () => {
|
|
|
305
294
|
},
|
|
306
295
|
{
|
|
307
296
|
visibility: publishing.visibility,
|
|
308
|
-
}
|
|
297
|
+
},
|
|
298
|
+
"article"
|
|
309
299
|
);
|
|
310
300
|
|
|
311
301
|
expect(result).toEqual({
|
|
@@ -321,11 +311,9 @@ describe("Publish article revision", () => {
|
|
|
321
311
|
password: publishing.password,
|
|
322
312
|
type: publishing.type,
|
|
323
313
|
},
|
|
324
|
-
visibilityOptions: ctx.client.
|
|
325
|
-
errors: {
|
|
326
|
-
|
|
327
|
-
},
|
|
328
|
-
articleErrors: null,
|
|
314
|
+
visibilityOptions: ctx.client.resources.visibilityOptions(),
|
|
315
|
+
errors: { slug: "Oops" },
|
|
316
|
+
resourceErrors: null,
|
|
329
317
|
_translations: [],
|
|
330
318
|
},
|
|
331
319
|
});
|
|
@@ -1,31 +1,35 @@
|
|
|
1
|
-
import PublishesHandler from "../../../../handlers/
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import PublishesHandler from "../../../../handlers/resource_revisions/PublishesHandler";
|
|
2
|
+
import ResourceRevisions from "../../../../cloud/ResourceRevisions";
|
|
3
|
+
import Resources from "../../../../cloud/Resources";
|
|
4
4
|
|
|
5
5
|
import Factory from "../../../support/factory";
|
|
6
6
|
|
|
7
7
|
function buildCtx(revision) {
|
|
8
8
|
return {
|
|
9
9
|
client: {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
resourceRevisions: new ResourceRevisions(() => ({}), "token"),
|
|
11
|
+
resources: new Resources(() => ({}), "token"),
|
|
12
12
|
},
|
|
13
13
|
params: { parent_id: revision.id },
|
|
14
14
|
locale: "en",
|
|
15
|
+
resourceConfig: {
|
|
16
|
+
resourceType: "article",
|
|
17
|
+
resourceTypePlural: "articles",
|
|
18
|
+
},
|
|
15
19
|
};
|
|
16
20
|
}
|
|
17
21
|
|
|
18
|
-
describe("Publish
|
|
22
|
+
describe("Publish resource revision", () => {
|
|
19
23
|
test("create_form", async () => {
|
|
20
|
-
const revision = Factory.build("
|
|
24
|
+
const revision = Factory.build("resource_revision");
|
|
21
25
|
const ctx = buildCtx(revision);
|
|
22
26
|
const mockFind = jest
|
|
23
|
-
.spyOn(ctx.client.
|
|
27
|
+
.spyOn(ctx.client.resourceRevisions, "find")
|
|
24
28
|
.mockImplementation(() => revision);
|
|
25
29
|
|
|
26
30
|
const result = await PublishesHandler.create_form(ctx);
|
|
27
31
|
|
|
28
|
-
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
32
|
+
expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
|
|
29
33
|
|
|
30
34
|
expect(result).toEqual({
|
|
31
35
|
assigns: {
|
|
@@ -39,7 +43,7 @@ describe("Publish page revision", () => {
|
|
|
39
43
|
password: revision.settings?.credentials?.password,
|
|
40
44
|
type: "now",
|
|
41
45
|
},
|
|
42
|
-
visibilityOptions: ctx.client.
|
|
46
|
+
visibilityOptions: ctx.client.resources.visibilityOptions(),
|
|
43
47
|
errors: {},
|
|
44
48
|
_translations: [],
|
|
45
49
|
},
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import ResourceRevisions from "../../../../cloud/ResourceRevisions";
|
|
2
|
+
import Resources from "../../../../cloud/Resources";
|
|
3
|
+
import ResourceRevisionsHandler from "../../../../handlers/resource_revisions/ResourceRevisionsHandler";
|
|
4
|
+
import Factory from "../../../support/factory";
|
|
5
|
+
|
|
6
|
+
function buildCtx(resourceID) {
|
|
7
|
+
return {
|
|
8
|
+
client: {
|
|
9
|
+
resourceRevisions: new ResourceRevisions(() => ({}), "token"),
|
|
10
|
+
resources: new Resources(() => ({}), "token"),
|
|
11
|
+
},
|
|
12
|
+
params: { parent_id: resourceID },
|
|
13
|
+
locale: "en",
|
|
14
|
+
resourceConfig: {
|
|
15
|
+
resourceType: "article",
|
|
16
|
+
resourceTypePlural: "articles",
|
|
17
|
+
},
|
|
18
|
+
maxOpenRevisions: 1,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
describe("Resource revisions", () => {
|
|
23
|
+
test("create successful", async () => {
|
|
24
|
+
const resource = Factory.build("resource", { id: 1, revisionsCount: 0 });
|
|
25
|
+
const revision = Factory.build("resource_revision", { originalId: 1 });
|
|
26
|
+
const ctx = buildCtx(resource.id);
|
|
27
|
+
|
|
28
|
+
jest.spyOn(ctx.client.resources, "find").mockResolvedValue(resource);
|
|
29
|
+
|
|
30
|
+
jest
|
|
31
|
+
.spyOn(ctx.client.resourceRevisions, "create")
|
|
32
|
+
.mockResolvedValue({ revision, errors: null, resourceErrors: null });
|
|
33
|
+
|
|
34
|
+
const result = await ResourceRevisionsHandler.create(ctx);
|
|
35
|
+
|
|
36
|
+
expect(result).toEqual({
|
|
37
|
+
redirect: `/en/articles/${resource.id}`,
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test("create failed when there is an opened revision for the resource", async () => {
|
|
42
|
+
const resource = Factory.build("resource", { id: 1, revisionsCount: 2 });
|
|
43
|
+
const ctx = buildCtx(resource.id);
|
|
44
|
+
|
|
45
|
+
jest.spyOn(ctx.client.resources, "find").mockResolvedValue(resource);
|
|
46
|
+
|
|
47
|
+
const result = await ResourceRevisionsHandler.create(ctx);
|
|
48
|
+
|
|
49
|
+
expect(result).toEqual({
|
|
50
|
+
redirect: `/en/articles/${resource.id}?revisions_count_error=1`,
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
test("create failed with errors", async () => {
|
|
55
|
+
const resource = Factory.build("resource", { id: 1, revisionsCount: 0 });
|
|
56
|
+
const errors = [{ key: "generalError", message: "something went wrong" }];
|
|
57
|
+
const ctx = buildCtx(resource.id);
|
|
58
|
+
|
|
59
|
+
jest.spyOn(ctx.client.resources, "find").mockResolvedValue(resource);
|
|
60
|
+
|
|
61
|
+
jest
|
|
62
|
+
.spyOn(ctx.client.resourceRevisions, "create")
|
|
63
|
+
.mockResolvedValue({ revision: null, errors, resourceErrors: null });
|
|
64
|
+
|
|
65
|
+
await expect(ResourceRevisionsHandler.create(ctx)).rejects.toThrow(
|
|
66
|
+
`Failed to start revision: ${JSON.stringify(errors)}`
|
|
67
|
+
);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test("create failed with resource errors", async () => {
|
|
71
|
+
const resource = Factory.build("resource", { id: 1, revisionsCount: 0 });
|
|
72
|
+
const errors = [{ key: "generalError", message: "something went wrong" }];
|
|
73
|
+
const ctx = buildCtx(resource.id);
|
|
74
|
+
|
|
75
|
+
jest.spyOn(ctx.client.resources, "find").mockResolvedValue(resource);
|
|
76
|
+
|
|
77
|
+
jest.spyOn(ctx.client.resourceRevisions, "create").mockResolvedValue({
|
|
78
|
+
revision: null,
|
|
79
|
+
errors: null,
|
|
80
|
+
resourceErrors: errors,
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
await expect(ResourceRevisionsHandler.create(ctx)).rejects.toThrow(
|
|
84
|
+
`Failed to start revision: ${JSON.stringify(errors)}`
|
|
85
|
+
);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import ResourceRevisionsHandler from "../../../../handlers/resource_revisions/ResourceRevisionsHandler";
|
|
2
|
+
import ResourceRevisions from "../../../../cloud/ResourceRevisions";
|
|
3
3
|
|
|
4
4
|
import Factory from "../../../support/factory";
|
|
5
5
|
|
|
6
6
|
function buildCtx(revisionID) {
|
|
7
7
|
return {
|
|
8
8
|
client: {
|
|
9
|
-
|
|
9
|
+
resourceRevisions: new ResourceRevisions(() => ({}), "token"),
|
|
10
10
|
},
|
|
11
11
|
params: { id: revisionID },
|
|
12
12
|
locale: "en",
|
|
13
13
|
resourceConfig: {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
resourceType: "article",
|
|
15
|
+
resourceTypePlural: "articles",
|
|
16
16
|
},
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
describe("
|
|
20
|
+
describe("Resource revisions", () => {
|
|
21
21
|
test("destroy successful", async () => {
|
|
22
|
-
const revision = Factory.build("
|
|
22
|
+
const revision = Factory.build("resource_revision");
|
|
23
23
|
const ctx = buildCtx(1);
|
|
24
24
|
|
|
25
25
|
const mockDelete = jest
|
|
26
|
-
.spyOn(ctx.client.
|
|
26
|
+
.spyOn(ctx.client.resourceRevisions, "delete")
|
|
27
27
|
.mockImplementation(() => ({ revision, errors: null }));
|
|
28
28
|
|
|
29
|
-
const result = await
|
|
29
|
+
const result = await ResourceRevisionsHandler.destroy(ctx);
|
|
30
30
|
|
|
31
|
-
expect(mockDelete).toHaveBeenCalledWith(1, "en");
|
|
31
|
+
expect(mockDelete).toHaveBeenCalledWith(1, "en", "article");
|
|
32
32
|
|
|
33
33
|
expect(result).toEqual({
|
|
34
34
|
headers: {
|
|
@@ -43,15 +43,15 @@ describe("Article revisions", () => {
|
|
|
43
43
|
const errors = [{ key: "generalError", message: "something went wrong" }];
|
|
44
44
|
|
|
45
45
|
const mockDelete = jest
|
|
46
|
-
.spyOn(ctx.client.
|
|
46
|
+
.spyOn(ctx.client.resourceRevisions, "delete")
|
|
47
47
|
.mockImplementation(() => ({ revision: null, errors }));
|
|
48
48
|
|
|
49
49
|
expect(async () => {
|
|
50
|
-
await
|
|
50
|
+
await ResourceRevisionsHandler.destroy(ctx);
|
|
51
51
|
}).rejects.toThrow(
|
|
52
52
|
`Failed to delete revision#${1}: ${JSON.stringify(errors)}`
|
|
53
53
|
);
|
|
54
54
|
|
|
55
|
-
expect(mockDelete).toHaveBeenCalledWith(1, "en");
|
|
55
|
+
expect(mockDelete).toHaveBeenCalledWith(1, "en", "article");
|
|
56
56
|
});
|
|
57
57
|
});
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import RevertsHandler from "../../../../handlers/resource_revisions/RevertsHandler";
|
|
2
|
+
import ResourceRevisions from "../../../../cloud/ResourceRevisions";
|
|
3
|
+
|
|
4
|
+
function buildCtx(resourceID, version) {
|
|
5
|
+
return {
|
|
6
|
+
client: {
|
|
7
|
+
resourceRevisions: new ResourceRevisions(() => ({}), "token"),
|
|
8
|
+
},
|
|
9
|
+
params: { parent_id: resourceID },
|
|
10
|
+
resourceParams: { version },
|
|
11
|
+
locale: "en",
|
|
12
|
+
resourceConfig: {
|
|
13
|
+
resourceType: "article",
|
|
14
|
+
resourceTypePlural: "articles",
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
describe("Resource revision revert", () => {
|
|
20
|
+
test("create successful", async () => {
|
|
21
|
+
const resourceId = 42;
|
|
22
|
+
const version = 2;
|
|
23
|
+
const ctx = buildCtx(resourceId, version);
|
|
24
|
+
|
|
25
|
+
const mockRevert = jest
|
|
26
|
+
.spyOn(ctx.client.resourceRevisions, "revert")
|
|
27
|
+
.mockImplementation(() => ({
|
|
28
|
+
revision: {},
|
|
29
|
+
errors: null,
|
|
30
|
+
resourceErrors: null,
|
|
31
|
+
}));
|
|
32
|
+
|
|
33
|
+
const result = await RevertsHandler.create(ctx);
|
|
34
|
+
|
|
35
|
+
expect(mockRevert).toHaveBeenCalledWith(resourceId, version, "en", "article");
|
|
36
|
+
|
|
37
|
+
expect(result).toEqual({
|
|
38
|
+
redirect: `/en/articles/${resourceId}`,
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
test("create failed with errors", async () => {
|
|
43
|
+
const resourceId = 42;
|
|
44
|
+
const version = 2;
|
|
45
|
+
const ctx = buildCtx(resourceId, version);
|
|
46
|
+
const errors = [{ key: "generalError", message: "Some error" }];
|
|
47
|
+
|
|
48
|
+
const mockRevert = jest
|
|
49
|
+
.spyOn(ctx.client.resourceRevisions, "revert")
|
|
50
|
+
.mockImplementation(() => ({
|
|
51
|
+
revision: null,
|
|
52
|
+
errors,
|
|
53
|
+
resourceErrors: null,
|
|
54
|
+
}));
|
|
55
|
+
|
|
56
|
+
expect(async () => {
|
|
57
|
+
await RevertsHandler.create(ctx);
|
|
58
|
+
}).rejects.toThrow(`Failed to start revision: ${JSON.stringify(errors)}`);
|
|
59
|
+
|
|
60
|
+
expect(mockRevert).toHaveBeenCalledWith(resourceId, version, "en", "article");
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test("create failed with resource errors", async () => {
|
|
64
|
+
const resourceId = 42;
|
|
65
|
+
const version = 2;
|
|
66
|
+
const ctx = buildCtx(resourceId, version);
|
|
67
|
+
const errors = [{ key: "generalError", message: "Some error" }];
|
|
68
|
+
|
|
69
|
+
const mockRevert = jest
|
|
70
|
+
.spyOn(ctx.client.resourceRevisions, "revert")
|
|
71
|
+
.mockImplementation(() => ({
|
|
72
|
+
revision: null,
|
|
73
|
+
errors: null,
|
|
74
|
+
resourceErrors: errors,
|
|
75
|
+
}));
|
|
76
|
+
|
|
77
|
+
expect(async () => {
|
|
78
|
+
await RevertsHandler.create(ctx);
|
|
79
|
+
}).rejects.toThrow(`Failed to start revision: ${JSON.stringify(errors)}`);
|
|
80
|
+
|
|
81
|
+
expect(mockRevert).toHaveBeenCalledWith(resourceId, version, "en", "article");
|
|
82
|
+
});
|
|
83
|
+
});
|