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