@raketa-cloud/admin 1.8.3 → 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 (320) hide show
  1. package/dist/application.css +36 -0
  2. package/package.json +2 -2
  3. package/src/cloud/ResourceChanges.js +41 -0
  4. package/src/cloud/ResourceRevisions.js +242 -0
  5. package/src/cloud/Resources.js +219 -0
  6. package/src/cloud/documents/common.js +0 -30
  7. package/src/cloud/documents/resourcesDocuments.js +371 -0
  8. package/src/handlers/_shared/getResourceUpdateDestination.js +11 -0
  9. package/src/handlers/resource_revisions/CancelSchedulesHandler.js +31 -0
  10. package/src/handlers/resource_revisions/CodeHandler.js +70 -0
  11. package/src/handlers/resource_revisions/GeneralHandler.js +72 -0
  12. package/src/handlers/{article_revisions → resource_revisions}/LocksHandler.js +15 -10
  13. package/src/handlers/resource_revisions/MetaHandler.js +70 -0
  14. package/src/handlers/{article_revisions → resource_revisions}/PublishesHandler.js +27 -19
  15. package/src/handlers/resource_revisions/ResourceRevisionsHandler.js +65 -0
  16. package/src/handlers/{article_revisions → resource_revisions}/RevertsHandler.js +7 -5
  17. package/src/handlers/{page_revisions → resource_revisions}/TagHandler.js +31 -16
  18. package/src/handlers/resource_revisions/UnlocksHandler.js +29 -0
  19. package/src/handlers/resource_revisions/VisualHandler.js +71 -0
  20. package/src/handlers/{article_revisions → resource_revisions}/WidgetHandler.js +11 -6
  21. package/src/handlers/{pages → resources}/ChangeHandler.js +5 -3
  22. package/src/handlers/resources/ClonesHandler.js +24 -0
  23. package/src/handlers/resources/DeletesHandler.js +79 -0
  24. package/src/handlers/{pages → resources}/ExportsHandler.js +8 -4
  25. package/src/handlers/resources/HistoryHandler.js +39 -0
  26. package/src/handlers/{pages/PagesAPIHandler.js → resources/ResourcesAPIHandler.js} +4 -2
  27. package/src/handlers/{pages/PagesHandler.js → resources/ResourcesHandler.js} +35 -18
  28. package/src/handlers/{pages → resources}/TranslationsHandler.js +65 -37
  29. package/src/handlers/resources/URLsHandler.js +84 -0
  30. package/src/helpers/CSVExportHelper.js +5 -6
  31. package/src/index.js +28 -69
  32. package/src/routeArticlesModule.js +7 -167
  33. package/src/routeEventsModule.js +7 -182
  34. package/src/routePagesModule.js +7 -179
  35. package/src/routeResource.js +197 -0
  36. package/src/routeStandard.js +1 -1
  37. package/src/setupCloud.js +10 -30
  38. package/src/tests/HonoAdapter.coverage.test.js +640 -0
  39. package/src/tests/HonoAdapter.test.js +3 -0
  40. package/src/tests/buildResourcePath.test.js +69 -0
  41. package/src/tests/handlers/_shared/getResourceUpdateDestination.test.js +63 -0
  42. package/src/tests/handlers/{article_revisions/CancelScheduledHandler.test → resource_revisions/CancelSchedulesHandler.test}/create.test.js +26 -26
  43. package/src/tests/handlers/{page_revisions/CodesHandler.test → resource_revisions/CodeHandler.test}/edit_form.test.js +13 -16
  44. package/src/tests/handlers/{article_revisions/CodesHandler.test → resource_revisions/CodeHandler.test}/update.test.js +38 -57
  45. package/src/tests/handlers/resource_revisions/GeneralHandler.test/edit_form.test.js +58 -0
  46. package/src/tests/handlers/{article_revisions → resource_revisions}/GeneralHandler.test/update.test.js +39 -53
  47. package/src/tests/handlers/{event_revisions → resource_revisions}/LocksHandler.test/create.test.js +34 -31
  48. package/src/tests/handlers/{event_revisions → resource_revisions}/LocksHandler.test/create_form.test.js +16 -12
  49. package/src/tests/handlers/{page_revisions → resource_revisions}/MetaHandler.test/edit_form.test.js +13 -9
  50. package/src/tests/handlers/{article_revisions → resource_revisions}/MetaHandler.test/update.test.js +38 -57
  51. package/src/tests/handlers/{article_revisions → resource_revisions}/PublishesHandler.test/create.test.js +60 -72
  52. package/src/tests/handlers/{page_revisions → resource_revisions}/PublishesHandler.test/create_form.test.js +14 -10
  53. package/src/tests/handlers/resource_revisions/ResourceRevisionsHandler.test/create.test.js +87 -0
  54. package/src/tests/handlers/{article_revisions/ArticleRevisionsHandler.test → resource_revisions/ResourceRevisionsHandler.test}/destroy.test.js +13 -13
  55. package/src/tests/handlers/resource_revisions/RevertsHandler.test/create.test.js +83 -0
  56. package/src/tests/handlers/{event_revisions → resource_revisions}/TagHandler.test/edit_form.test.js +23 -19
  57. package/src/tests/handlers/{article_revisions → resource_revisions}/TagHandler.test/update.test.js +44 -49
  58. package/src/tests/handlers/{article_revisions → resource_revisions}/UnlocksHandler.test/create.test.js +22 -22
  59. package/src/tests/handlers/{page_revisions/VisualHandler.test.test → resource_revisions/VisualHandler.test}/edit_form.test.js +13 -16
  60. package/src/tests/handlers/resource_revisions/VisualHandler.test/update.test.js +130 -0
  61. package/src/tests/handlers/{event_revisions → resource_revisions}/WidgetHandler.test/show.test.js +11 -7
  62. package/src/tests/handlers/{event_revisions → resource_revisions}/WidgetHandler.test/update.test.js +28 -14
  63. package/src/tests/handlers/resources/ChangeHandler.test/show.test.js +57 -0
  64. package/src/tests/handlers/resources/ClonesHandler.test/create.test.js +57 -0
  65. package/src/tests/handlers/{articles → resources}/DeletesHandler.test/create.test.js +30 -30
  66. package/src/tests/handlers/resources/DeletesHandler.test/create_form.test.js +60 -0
  67. package/src/tests/handlers/{articles → resources}/ExportsHandler.test/index.test.js +57 -57
  68. package/src/tests/handlers/{articles/ArticlesHistoryHandler.test → resources/HistoryHandler.test}/index.test.js +19 -20
  69. package/src/tests/handlers/resources/ResourcesAPIHandler.test/index.test.js +41 -0
  70. package/src/tests/handlers/{pages/PagesHandler.test → resources/ResourcesHandler.test}/create.test.js +23 -22
  71. package/src/tests/handlers/{events/EventsHandler.test → resources/ResourcesHandler.test}/create_form.test.js +12 -11
  72. package/src/tests/handlers/{events/EventsHandler.test → resources/ResourcesHandler.test}/index.test.js +18 -18
  73. package/src/tests/handlers/resources/ResourcesHandler.test/show.test.js +111 -0
  74. package/src/tests/handlers/resources/TranslationsHandler.test/create.test.js +320 -0
  75. package/src/tests/handlers/resources/TranslationsHandler.test/create_form.test.js +85 -0
  76. package/src/tests/handlers/resources/TranslationsHandler.test/index.test.js +99 -0
  77. package/src/tests/handlers/{articles → resources}/URLsHandler.test/create.test.js +48 -43
  78. package/src/tests/handlers/resources/URLsHandler.test/create_form.test.js +55 -0
  79. package/src/tests/routeArticlesModule.test.js +43 -0
  80. package/src/tests/routeCategoriesModule.test.js +23 -0
  81. package/src/tests/routeEventsModule.test.js +43 -0
  82. package/src/tests/routePagesModule.test.js +43 -0
  83. package/src/tests/routeResource.test.js +202 -0
  84. package/src/tests/routeSettings.test.js +40 -0
  85. package/src/tests/routeStandard.test.js +70 -0
  86. package/src/tests/setGlobalContext.test.js +12 -0
  87. package/src/tests/setupAuthentication.test.js +407 -0
  88. package/src/tests/setupCloud.test.js +51 -0
  89. package/src/tests/support/factory.js +15 -86
  90. package/src/views/article_revisions/_nav.ejs +6 -6
  91. package/src/views/article_revisions/codes/_form.ejs +2 -2
  92. package/src/views/article_revisions/general/_form.ejs +3 -3
  93. package/src/views/article_revisions/locks/_form.ejs +2 -2
  94. package/src/views/article_revisions/meta/_form.ejs +2 -2
  95. package/src/views/article_revisions/publishes/_form.ejs +3 -3
  96. package/src/views/article_revisions/tags/_form.ejs +2 -2
  97. package/src/views/article_revisions/visuals/_form.ejs +2 -2
  98. package/src/views/articles/_form.ejs +9 -9
  99. package/src/views/articles/_shared/_export_button.ejs +1 -1
  100. package/src/views/articles/_shared/_history_toolbar.ejs +2 -2
  101. package/src/views/articles/_shared/_revision_operator.ejs +8 -0
  102. package/src/views/articles/_shared/_revision_toolbar.ejs +7 -7
  103. package/src/views/articles/_shared/_title.ejs +2 -2
  104. package/src/views/articles/_shared/_toolbar.ejs +6 -6
  105. package/src/views/articles/_shared/history_table.ejs +1 -1
  106. package/src/views/articles/create_form.ejs +1 -1
  107. package/src/views/articles/deletes/create_form.ejs +3 -3
  108. package/src/views/articles/history/index.ejs +4 -4
  109. package/src/views/articles/index.ejs +14 -12
  110. package/src/views/articles/show.ejs +8 -22
  111. package/src/views/articles/translations/_translation_toolbar.ejs +2 -2
  112. package/src/views/articles/translations/create_form.ejs +2 -2
  113. package/src/views/articles/translations/index.ejs +3 -3
  114. package/src/views/articles/urls/create_form.ejs +3 -3
  115. package/src/views/event_revisions/_nav.ejs +6 -6
  116. package/src/views/event_revisions/codes/_form.ejs +2 -2
  117. package/src/views/event_revisions/general/_form.ejs +5 -5
  118. package/src/views/event_revisions/locks/_form.ejs +2 -2
  119. package/src/views/event_revisions/meta/_form.ejs +2 -2
  120. package/src/views/event_revisions/publishes/_form.ejs +3 -3
  121. package/src/views/event_revisions/tags/_form.ejs +2 -2
  122. package/src/views/event_revisions/visuals/_form.ejs +2 -2
  123. package/src/views/events/_form.ejs +6 -6
  124. package/src/views/events/_shared/_export_button.ejs +1 -1
  125. package/src/views/events/_shared/_history_toolbar.ejs +2 -2
  126. package/src/views/events/_shared/_revision_operator.ejs +8 -0
  127. package/src/views/events/_shared/_revision_toolbar.ejs +7 -7
  128. package/src/views/events/_shared/_title.ejs +2 -2
  129. package/src/views/events/_shared/_toolbar.ejs +6 -6
  130. package/src/views/events/_shared/history_table.ejs +1 -1
  131. package/src/views/events/create_form.ejs +1 -1
  132. package/src/views/events/deletes/create_form.ejs +3 -3
  133. package/src/views/events/history/index.ejs +4 -4
  134. package/src/views/events/index.ejs +14 -12
  135. package/src/views/events/show.ejs +8 -22
  136. package/src/views/events/translations/_translation_toolbar.ejs +2 -2
  137. package/src/views/events/translations/create_form.ejs +2 -2
  138. package/src/views/events/translations/index.ejs +3 -3
  139. package/src/views/events/urls/create_form.ejs +3 -3
  140. package/src/views/layouts/application.ejs +30 -0
  141. package/src/views/page_revisions/_nav.ejs +6 -6
  142. package/src/views/page_revisions/codes/_form.ejs +2 -2
  143. package/src/views/page_revisions/general/_form.ejs +2 -2
  144. package/src/views/page_revisions/locks/_form.ejs +2 -2
  145. package/src/views/page_revisions/meta/_form.ejs +2 -2
  146. package/src/views/page_revisions/publishes/_form.ejs +3 -3
  147. package/src/views/page_revisions/tags/_form.ejs +2 -2
  148. package/src/views/page_revisions/visuals/_form.ejs +2 -2
  149. package/src/views/pages/_form.ejs +3 -3
  150. package/src/views/pages/_shared/_export_button.ejs +1 -1
  151. package/src/views/pages/_shared/_history_toolbar.ejs +2 -2
  152. package/src/views/pages/_shared/_revision_operator.ejs +8 -0
  153. package/src/views/pages/_shared/_revision_toolbar.ejs +7 -7
  154. package/src/views/pages/_shared/_title.ejs +2 -2
  155. package/src/views/pages/_shared/_toolbar.ejs +6 -6
  156. package/src/views/pages/_shared/history_table.ejs +1 -1
  157. package/src/views/pages/create_form.ejs +1 -1
  158. package/src/views/pages/deletes/create_form.ejs +3 -3
  159. package/src/views/pages/history/index.ejs +4 -4
  160. package/src/views/pages/index.ejs +12 -10
  161. package/src/views/pages/show.ejs +8 -22
  162. package/src/views/pages/translations/_translation_toolbar.ejs +2 -2
  163. package/src/views/pages/translations/create_form.ejs +2 -2
  164. package/src/views/pages/translations/index.ejs +3 -3
  165. package/src/views/pages/urls/create_form.ejs +3 -3
  166. package/src/cloud/ArticleChanges.js +0 -36
  167. package/src/cloud/ArticleRevisions.js +0 -239
  168. package/src/cloud/Articles.js +0 -216
  169. package/src/cloud/EventChanges.js +0 -36
  170. package/src/cloud/EventRevisions.js +0 -246
  171. package/src/cloud/Events.js +0 -231
  172. package/src/cloud/PageChanges.js +0 -36
  173. package/src/cloud/PageRevisions.js +0 -226
  174. package/src/cloud/Pages.js +0 -204
  175. package/src/cloud/documents/articlesDocuments.js +0 -375
  176. package/src/cloud/documents/eventsDocuments.js +0 -390
  177. package/src/cloud/documents/pagesDocuments.js +0 -370
  178. package/src/handlers/_shared/getArticlesUpdateDestination.js +0 -7
  179. package/src/handlers/_shared/getEventsUpdateDestination.js +0 -7
  180. package/src/handlers/_shared/getPagesUpdateDestination.js +0 -8
  181. package/src/handlers/article_revisions/ArticleRevisionsHandler.js +0 -57
  182. package/src/handlers/article_revisions/CancelSchedulesHandler.js +0 -26
  183. package/src/handlers/article_revisions/CodeHandler.js +0 -75
  184. package/src/handlers/article_revisions/GeneralHandler.js +0 -77
  185. package/src/handlers/article_revisions/MetaHandler.js +0 -75
  186. package/src/handlers/article_revisions/TagHandler.js +0 -83
  187. package/src/handlers/article_revisions/UnlocksHandler.js +0 -24
  188. package/src/handlers/article_revisions/VisualHandler.js +0 -75
  189. package/src/handlers/articles/ArticlesAPIHandler.js +0 -15
  190. package/src/handlers/articles/ArticlesHandler.js +0 -126
  191. package/src/handlers/articles/ChangeHandler.js +0 -22
  192. package/src/handlers/articles/ClonesHandler.js +0 -19
  193. package/src/handlers/articles/DeletesHandler.js +0 -72
  194. package/src/handlers/articles/ExportsHandler.js +0 -35
  195. package/src/handlers/articles/HistoryHandler.js +0 -31
  196. package/src/handlers/articles/TranslationsHandler.js +0 -231
  197. package/src/handlers/articles/URLsHandler.js +0 -83
  198. package/src/handlers/event_revisions/CancelSchedulesHandler.js +0 -26
  199. package/src/handlers/event_revisions/CodeHandler.js +0 -73
  200. package/src/handlers/event_revisions/EventRevisionsHandler.js +0 -55
  201. package/src/handlers/event_revisions/GeneralHandler.js +0 -75
  202. package/src/handlers/event_revisions/LocksHandler.js +0 -65
  203. package/src/handlers/event_revisions/MetaHandler.js +0 -73
  204. package/src/handlers/event_revisions/PublishesHandler.js +0 -112
  205. package/src/handlers/event_revisions/RevertsHandler.js +0 -26
  206. package/src/handlers/event_revisions/TagHandler.js +0 -80
  207. package/src/handlers/event_revisions/UnlocksHandler.js +0 -24
  208. package/src/handlers/event_revisions/VisualHandler.js +0 -73
  209. package/src/handlers/event_revisions/WidgetHandler.js +0 -41
  210. package/src/handlers/events/ChangeHandler.js +0 -22
  211. package/src/handlers/events/ClonesHandler.js +0 -19
  212. package/src/handlers/events/DeletesHandler.js +0 -72
  213. package/src/handlers/events/EventsAPIHandler.js +0 -15
  214. package/src/handlers/events/EventsHandler.js +0 -128
  215. package/src/handlers/events/ExportsHandler.js +0 -35
  216. package/src/handlers/events/HistoryHandler.js +0 -31
  217. package/src/handlers/events/TranslationsHandler.js +0 -233
  218. package/src/handlers/events/URLsHandler.js +0 -81
  219. package/src/handlers/page_revisions/CancelSchedulesHandler.js +0 -26
  220. package/src/handlers/page_revisions/CodeHandler.js +0 -59
  221. package/src/handlers/page_revisions/GeneralHandler.js +0 -61
  222. package/src/handlers/page_revisions/LocksHandler.js +0 -69
  223. package/src/handlers/page_revisions/MetaHandler.js +0 -59
  224. package/src/handlers/page_revisions/PageRevisionsHandler.js +0 -55
  225. package/src/handlers/page_revisions/PublishesHandler.js +0 -112
  226. package/src/handlers/page_revisions/RevertsHandler.js +0 -26
  227. package/src/handlers/page_revisions/UnlocksHandler.js +0 -22
  228. package/src/handlers/page_revisions/VisualHandler.js +0 -60
  229. package/src/handlers/page_revisions/WidgetHandler.js +0 -41
  230. package/src/handlers/pages/ClonesHandler.js +0 -19
  231. package/src/handlers/pages/DeletesHandler.js +0 -68
  232. package/src/handlers/pages/HistoryHandler.js +0 -31
  233. package/src/handlers/pages/URLsHandler.js +0 -77
  234. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +0 -87
  235. package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +0 -56
  236. package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +0 -59
  237. package/src/tests/handlers/article_revisions/LocksHandler.test/create.test.js +0 -142
  238. package/src/tests/handlers/article_revisions/LocksHandler.test/create_form.test.js +0 -55
  239. package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +0 -56
  240. package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +0 -48
  241. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +0 -86
  242. package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +0 -72
  243. package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +0 -56
  244. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +0 -146
  245. package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +0 -46
  246. package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +0 -103
  247. package/src/tests/handlers/articles/ArticlesAPIHandler.test/index.test.js +0 -43
  248. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +0 -172
  249. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +0 -44
  250. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +0 -73
  251. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +0 -120
  252. package/src/tests/handlers/articles/ChangeHandler.test/show.test.js +0 -59
  253. package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +0 -57
  254. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +0 -60
  255. package/src/tests/handlers/articles/TranslationHandler.test/create.test.js +0 -297
  256. package/src/tests/handlers/articles/TranslationHandler.test/create_form.test.js +0 -71
  257. package/src/tests/handlers/articles/TranslationHandler.test/index.test.js +0 -91
  258. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +0 -55
  259. package/src/tests/handlers/event_revisions/CancelScheduledHandler.test/create.test.js +0 -90
  260. package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +0 -60
  261. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +0 -171
  262. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +0 -87
  263. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +0 -57
  264. package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +0 -63
  265. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +0 -172
  266. package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +0 -60
  267. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +0 -173
  268. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +0 -333
  269. package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +0 -48
  270. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +0 -83
  271. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +0 -163
  272. package/src/tests/handlers/event_revisions/UnlocksHandler.test/create.test.js +0 -84
  273. package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +0 -60
  274. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +0 -156
  275. package/src/tests/handlers/events/ChangeHandler.test/show.test.js +0 -59
  276. package/src/tests/handlers/events/ClonesHandler.test/create.test.js +0 -57
  277. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +0 -115
  278. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +0 -60
  279. package/src/tests/handlers/events/EventsAPIHandler.test/index.test.js +0 -39
  280. package/src/tests/handlers/events/EventsHandler.test/create.test.js +0 -172
  281. package/src/tests/handlers/events/EventsHandler.test/show.test.js +0 -120
  282. package/src/tests/handlers/events/EventsHistoryHandler.test/index.test.js +0 -87
  283. package/src/tests/handlers/events/ExportsHandler.test/index.test.js +0 -212
  284. package/src/tests/handlers/events/TranslationHandler.test/create.test.js +0 -303
  285. package/src/tests/handlers/events/TranslationHandler.test/create_form.test.js +0 -71
  286. package/src/tests/handlers/events/TranslationHandler.test/index.test.js +0 -91
  287. package/src/tests/handlers/events/URLsHandler.test/create.test.js +0 -160
  288. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +0 -55
  289. package/src/tests/handlers/page_revisions/CancelScheduledHandler.test/create.test.js +0 -86
  290. package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +0 -204
  291. package/src/tests/handlers/page_revisions/GeneralHandler.test/edit_form.test.js +0 -54
  292. package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +0 -219
  293. package/src/tests/handlers/page_revisions/LocksHandler.test/create.test.js +0 -138
  294. package/src/tests/handlers/page_revisions/LocksHandler.test/create_form.test.js +0 -55
  295. package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +0 -211
  296. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +0 -85
  297. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +0 -57
  298. package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +0 -333
  299. package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +0 -83
  300. package/src/tests/handlers/page_revisions/TagHandler.test/edit_form.test.js +0 -100
  301. package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +0 -223
  302. package/src/tests/handlers/page_revisions/UnlocksHandler.test/create.test.js +0 -80
  303. package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +0 -183
  304. package/src/tests/handlers/page_revisions/WidgetHandler.test/show.test.js +0 -46
  305. package/src/tests/handlers/page_revisions/WidgetHandler.test/update.test.js +0 -103
  306. package/src/tests/handlers/pages/ChangeHandler.test/show.test.js +0 -59
  307. package/src/tests/handlers/pages/ConesHandler.test/create.test.js +0 -57
  308. package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +0 -115
  309. package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +0 -60
  310. package/src/tests/handlers/pages/ExportsHandler.test/index.test.js +0 -212
  311. package/src/tests/handlers/pages/PagesAPIHandler.test/index.test.js +0 -39
  312. package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +0 -41
  313. package/src/tests/handlers/pages/PagesHandler.test/index.test.js +0 -69
  314. package/src/tests/handlers/pages/PagesHandler.test/show.test.js +0 -118
  315. package/src/tests/handlers/pages/PagesHistoryHandler.test/index.test.js +0 -87
  316. package/src/tests/handlers/pages/TranslationHandler.test/create.test.js +0 -290
  317. package/src/tests/handlers/pages/TranslationHandler.test/create_form.test.js +0 -71
  318. package/src/tests/handlers/pages/TranslationHandler.test/index.test.js +0 -87
  319. package/src/tests/handlers/pages/URLsHandler.test/create.test.js +0 -160
  320. package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +0 -58
@@ -1,94 +1,98 @@
1
- import URLsHandler from "../../../../handlers/articles/URLsHandler";
2
- import Articles from "../../../../cloud/Articles";
1
+ import URLsHandler from "../../../../handlers/resources/URLsHandler";
2
+ import Resources from "../../../../cloud/Resources";
3
3
  import Factory from "../../../support/factory";
4
4
  import { remoteConfig } from "../../../support/handlersHelper";
5
5
 
6
- function buildCtx(article, updateSettings) {
6
+ function buildCtx(resource, updateSettings) {
7
7
  return {
8
8
  client: {
9
- articles: new Articles(() => ({}), "token"),
9
+ resources: new Resources(() => ({}), "token"),
10
10
  },
11
- params: { parent_id: article.id },
11
+ params: { parent_id: resource.id },
12
12
  resourceParams: {
13
13
  resource: updateSettings,
14
14
  },
15
15
  locale: "en",
16
16
  remoteConfig: remoteConfig(),
17
17
  resourceConfig: {
18
- articleType: "article",
19
- articleTypePlural: "articles",
18
+ resourceType: "article",
19
+ resourceTypePlural: "articles",
20
20
  },
21
21
  };
22
22
  }
23
23
 
24
- describe("Article change url", () => {
24
+ describe("Resource change url", () => {
25
25
  test("create successful", async () => {
26
- const article = Factory.build("article");
26
+ const resource = Factory.build("resource");
27
27
  const updateSettings = {
28
28
  slug: "new-slug",
29
29
  redirect: "1",
30
30
  };
31
- const ctx = buildCtx(article, updateSettings);
31
+ const ctx = buildCtx(resource, updateSettings);
32
32
 
33
33
  const mockFind = jest
34
- .spyOn(ctx.client.articles, "find")
35
- .mockImplementation(() => article);
34
+ .spyOn(ctx.client.resources, "find")
35
+ .mockImplementation(() => resource);
36
36
 
37
37
  const mockChange = jest
38
- .spyOn(ctx.client.articles, "updateSlug")
39
- .mockImplementation(() => ({ article, errors: null }));
38
+ .spyOn(ctx.client.resources, "updateSlug")
39
+ .mockImplementation(() => ({ resource, errors: null }));
40
40
 
41
41
  const result = await URLsHandler.create(ctx);
42
42
 
43
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
43
+ expect(mockFind).toHaveBeenCalledWith(resource.id, "en", "article");
44
44
  expect(mockChange).toHaveBeenCalledWith(
45
- article.id,
45
+ resource.id,
46
46
  updateSettings.slug,
47
47
  "en",
48
+ "article",
48
49
  {
49
- url: `/en/blog/${article.slug}`,
50
+ url: `/en/blog/${resource.slug}`,
50
51
  destination: `/en/blog/${updateSettings.slug}`,
51
52
  httpResponseCode: 301,
52
- note: "Created with changed URL for a resource of type article",
53
+ note: "Created with changed URL for a article",
53
54
  }
54
55
  );
55
56
 
56
57
  expect(result).toEqual({
57
- redirect: `/en/articles/${article.id}`,
58
+ redirect: `/en/articles/${resource.id}`,
58
59
  });
59
60
  });
60
61
 
61
62
  test("create failed due to slug error", async () => {
62
- const article = Factory.build("article");
63
+ const resource = Factory.build("resource");
63
64
  const updateSettings = {
64
65
  slug: "new-slug",
65
66
  };
66
- const ctx = buildCtx(article, updateSettings);
67
+ const ctx = buildCtx(resource, updateSettings);
67
68
 
68
69
  const mockFind = jest
69
- .spyOn(ctx.client.articles, "find")
70
- .mockImplementation(() => article);
70
+ .spyOn(ctx.client.resources, "find")
71
+ .mockImplementation(() => resource);
71
72
 
72
73
  const mockChange = jest
73
- .spyOn(ctx.client.articles, "updateSlug")
74
+ .spyOn(ctx.client.resources, "updateSlug")
74
75
  .mockImplementation(() => ({
75
- article: null,
76
- errors: [{ codes: [], key: "slug", message: "has already been taken" }],
76
+ resource: null,
77
+ errors: [
78
+ { codes: [], key: "slug", message: "has already been taken" },
79
+ ],
77
80
  }));
78
81
 
79
82
  const result = await URLsHandler.create(ctx);
80
83
 
81
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
84
+ expect(mockFind).toHaveBeenCalledWith(resource.id, "en", "article");
82
85
  expect(mockChange).toHaveBeenCalledWith(
83
- article.id,
86
+ resource.id,
84
87
  updateSettings.slug,
85
88
  "en",
89
+ "article",
86
90
  null
87
91
  );
88
92
 
89
93
  expect(result).toEqual({
90
94
  assigns: {
91
- resource: { ...updateSettings, id: article.id },
95
+ resource: { ...updateSettings, id: resource.id },
92
96
  errors: { resource: { slug: "has already been taken" } },
93
97
  _translations: [],
94
98
  },
@@ -96,21 +100,21 @@ describe("Article change url", () => {
96
100
  });
97
101
 
98
102
  test("create failed due to redirect create", async () => {
99
- const article = Factory.build("article");
103
+ const resource = Factory.build("resource");
100
104
  const updateSettings = {
101
105
  slug: "new-slug",
102
106
  redirect: "1",
103
107
  };
104
- const ctx = buildCtx(article, updateSettings);
108
+ const ctx = buildCtx(resource, updateSettings);
105
109
 
106
110
  const mockFind = jest
107
- .spyOn(ctx.client.articles, "find")
108
- .mockImplementation(() => article);
111
+ .spyOn(ctx.client.resources, "find")
112
+ .mockImplementation(() => resource);
109
113
 
110
114
  const mockChange = jest
111
- .spyOn(ctx.client.articles, "updateSlug")
115
+ .spyOn(ctx.client.resources, "updateSlug")
112
116
  .mockImplementation(() => ({
113
- article: null,
117
+ resource: null,
114
118
  errors: [
115
119
  {
116
120
  codes: [],
@@ -122,39 +126,40 @@ describe("Article change url", () => {
122
126
 
123
127
  const result = await URLsHandler.create(ctx);
124
128
 
125
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
129
+ expect(mockFind).toHaveBeenCalledWith(resource.id, "en", "article");
126
130
  expect(mockChange).toHaveBeenCalledWith(
127
- article.id,
131
+ resource.id,
128
132
  updateSettings.slug,
129
133
  "en",
134
+ "article",
130
135
  {
131
- url: `/en/blog/${article.slug}`,
136
+ url: `/en/blog/${resource.slug}`,
132
137
  destination: `/en/blog/${updateSettings.slug}`,
133
138
  httpResponseCode: 301,
134
- note: "Created with changed URL for a resource of type article",
139
+ note: "Created with changed URL for a article",
135
140
  }
136
141
  );
137
142
 
138
143
  expect(result).toEqual({
139
144
  assigns: {
140
- resource: { ...updateSettings, id: article.id },
145
+ resource: { ...updateSettings, id: resource.id },
141
146
  errors: { resource: { redirect: "url: has already been taken" } },
142
147
  _translations: [],
143
148
  },
144
149
  });
145
150
  });
146
151
 
147
- test("create for non existing article", async () => {
152
+ test("create for non existing resource", async () => {
148
153
  const ctx = buildCtx({ id: "42" }, {});
149
154
 
150
155
  const mockFind = jest
151
- .spyOn(ctx.client.articles, "find")
156
+ .spyOn(ctx.client.resources, "find")
152
157
  .mockImplementation(() => null);
153
158
 
154
159
  expect(async () => {
155
160
  await URLsHandler.create(ctx);
156
161
  }).rejects.toThrow("Cannot find article with id 42");
157
162
 
158
- expect(mockFind).toHaveBeenCalledWith("42", "en");
163
+ expect(mockFind).toHaveBeenCalledWith("42", "en", "article");
159
164
  });
160
165
  });
@@ -0,0 +1,55 @@
1
+ import Resources from "../../../../cloud/Resources";
2
+ import URLsHandler from "../../../../handlers/resources/URLsHandler";
3
+ import Factory from "../../../support/factory";
4
+
5
+ function buildCtx(resource) {
6
+ return {
7
+ client: {
8
+ resources: new Resources(() => ({}), "token"),
9
+ },
10
+ params: { parent_id: resource.id },
11
+ locale: "en",
12
+ resourceConfig: {
13
+ resourceType: "article",
14
+ resourceTypePlural: "articles",
15
+ },
16
+ };
17
+ }
18
+
19
+ describe("Resource change url", () => {
20
+ test("create_form for existing resource", async () => {
21
+ const resource = Factory.build("resource");
22
+ const ctx = buildCtx(resource);
23
+
24
+ const mockFind = jest
25
+ .spyOn(ctx.client.resources, "find")
26
+ .mockImplementation(() => resource);
27
+
28
+ const result = await URLsHandler.create_form(ctx);
29
+
30
+ expect(mockFind).toHaveBeenCalledWith(resource.id, "en", "article");
31
+
32
+ expect(result).toEqual({
33
+ assigns: {
34
+ record: resource,
35
+ resource: { slug: resource.slug, id: resource.id, redirect: null },
36
+ errors: {},
37
+ _translations: [],
38
+ },
39
+ });
40
+ });
41
+
42
+ test("create_form for non existing resource", async () => {
43
+ const ctx = buildCtx({ id: "42" });
44
+
45
+ const mockFind = jest
46
+ .spyOn(ctx.client.resources, "find")
47
+ .mockImplementation(() => null);
48
+
49
+ expect(async () => {
50
+ await URLsHandler.create_form(ctx);
51
+ }).rejects.toThrow("Cannot find article with id 42");
52
+
53
+ expect(mockFind).toHaveBeenCalledWith("42", "en", "article");
54
+ });
55
+ });
@@ -0,0 +1,43 @@
1
+ import routeArticlesModule from "../routeArticlesModule";
2
+ import routeResource from "../routeResource";
3
+
4
+ jest.mock("../routeResource", () => jest.fn());
5
+
6
+ describe("routeArticlesModule", () => {
7
+ beforeEach(() => {
8
+ routeResource.mockClear();
9
+ });
10
+
11
+ test("delegates to routeResource with default types and publish_at dateField", () => {
12
+ const adapter = {};
13
+
14
+ routeArticlesModule(adapter);
15
+
16
+ expect(routeResource).toHaveBeenCalledWith(adapter, "article", "articles", {
17
+ viewsType: "article",
18
+ viewsTypePlural: "articles",
19
+ dateFields: ["publish_at"],
20
+ });
21
+ });
22
+
23
+ test("delegates to routeResource with custom types", () => {
24
+ const adapter = {};
25
+
26
+ routeArticlesModule(adapter, "post", "posts");
27
+
28
+ expect(routeResource).toHaveBeenCalledWith(adapter, "post", "posts", {
29
+ viewsType: "article",
30
+ viewsTypePlural: "articles",
31
+ dateFields: ["publish_at"],
32
+ });
33
+ });
34
+
35
+ test("returns value of routeResource", () => {
36
+ const adapter = {};
37
+ routeResource.mockReturnValueOnce("ok");
38
+
39
+ const result = routeArticlesModule(adapter);
40
+
41
+ expect(result).toBe("ok");
42
+ });
43
+ });
@@ -0,0 +1,23 @@
1
+ import routeCategoriesModule from "../routeCategoriesModule";
2
+ import routeCollection from "../routeCollection";
3
+ import CategoriesHandler from "../handlers/categories";
4
+
5
+ jest.mock("../routeCollection", () => jest.fn());
6
+
7
+ describe("routeCategoriesModule", () => {
8
+ beforeEach(() => {
9
+ routeCollection.mockClear();
10
+ });
11
+
12
+ test("registers categories collection with categoryType + plural + viewsFallback", () => {
13
+ const adapter = {};
14
+
15
+ routeCategoriesModule(adapter, "tag", "tags");
16
+
17
+ expect(routeCollection).toHaveBeenCalledWith(adapter, "tags", CategoriesHandler, {
18
+ categoryType: "tag",
19
+ categoryTypePlural: "tags",
20
+ viewsFallback: "categories",
21
+ });
22
+ });
23
+ });
@@ -0,0 +1,43 @@
1
+ import routeEventsModule from "../routeEventsModule";
2
+ import routeResource from "../routeResource";
3
+
4
+ jest.mock("../routeResource", () => jest.fn());
5
+
6
+ describe("routeEventsModule", () => {
7
+ beforeEach(() => {
8
+ routeResource.mockClear();
9
+ });
10
+
11
+ test("delegates to routeResource with default types and event dateFields", () => {
12
+ const adapter = {};
13
+
14
+ routeEventsModule(adapter);
15
+
16
+ expect(routeResource).toHaveBeenCalledWith(adapter, "event", "events", {
17
+ viewsType: "event",
18
+ viewsTypePlural: "events",
19
+ dateFields: ["publish_at", "starts_at", "ends_at"],
20
+ });
21
+ });
22
+
23
+ test("delegates to routeResource with custom types", () => {
24
+ const adapter = {};
25
+
26
+ routeEventsModule(adapter, "meeting", "meetings");
27
+
28
+ expect(routeResource).toHaveBeenCalledWith(adapter, "meeting", "meetings", {
29
+ viewsType: "event",
30
+ viewsTypePlural: "events",
31
+ dateFields: ["publish_at", "starts_at", "ends_at"],
32
+ });
33
+ });
34
+
35
+ test("returns value of routeResource", () => {
36
+ const adapter = {};
37
+ routeResource.mockReturnValueOnce("ok");
38
+
39
+ const result = routeEventsModule(adapter);
40
+
41
+ expect(result).toBe("ok");
42
+ });
43
+ });
@@ -0,0 +1,43 @@
1
+ import routePagesModule from "../routePagesModule";
2
+ import routeResource from "../routeResource";
3
+
4
+ jest.mock("../routeResource", () => jest.fn());
5
+
6
+ describe("routePagesModule", () => {
7
+ beforeEach(() => {
8
+ routeResource.mockClear();
9
+ });
10
+
11
+ test("delegates to routeResource with default types", () => {
12
+ const adapter = {};
13
+
14
+ routePagesModule(adapter);
15
+
16
+ expect(routeResource).toHaveBeenCalledWith(adapter, "page", "pages", {
17
+ viewsType: "page",
18
+ viewsTypePlural: "pages",
19
+ dateFields: [],
20
+ });
21
+ });
22
+
23
+ test("delegates to routeResource with custom types", () => {
24
+ const adapter = {};
25
+
26
+ routePagesModule(adapter, "landing", "landings");
27
+
28
+ expect(routeResource).toHaveBeenCalledWith(adapter, "landing", "landings", {
29
+ viewsType: "page",
30
+ viewsTypePlural: "pages",
31
+ dateFields: [],
32
+ });
33
+ });
34
+
35
+ test("returns value of routeResource", () => {
36
+ const adapter = {};
37
+ routeResource.mockReturnValueOnce("ok");
38
+
39
+ const result = routePagesModule(adapter);
40
+
41
+ expect(result).toBe("ok");
42
+ });
43
+ });
@@ -0,0 +1,202 @@
1
+ import routeResource from "../routeResource";
2
+
3
+ function makeAdapter() {
4
+ return {
5
+ routeCollection: jest.fn(),
6
+ routeNestedCollection: jest.fn(),
7
+ routeNestedMember: jest.fn(),
8
+ };
9
+ }
10
+
11
+ describe("routeResource", () => {
12
+ test("registers exports collection with explicit mapping", () => {
13
+ const adapter = makeAdapter();
14
+
15
+ routeResource(adapter, "article", "articles", {
16
+ viewsType: "article",
17
+ viewsTypePlural: "articles",
18
+ dateFields: ["publish_at"],
19
+ });
20
+
21
+ const exportsCall = adapter.routeCollection.mock.calls[0];
22
+
23
+ expect(exportsCall[0]).toEqual([
24
+ [
25
+ "GET",
26
+ "/articles/exports",
27
+ "exports",
28
+ "articles/exports",
29
+ "index",
30
+ expect.any(Function),
31
+ ],
32
+ ]);
33
+ expect(exportsCall[1]).toEqual({
34
+ resourceType: "article",
35
+ resourceTypePlural: "articles",
36
+ dateFields: ["publish_at"],
37
+ });
38
+ });
39
+
40
+ test("propagates resourceConfig with dateFields to all helpers", () => {
41
+ const adapter = makeAdapter();
42
+
43
+ routeResource(adapter, "event", "events", {
44
+ viewsType: "event",
45
+ viewsTypePlural: "events",
46
+ dateFields: ["publish_at", "starts_at", "ends_at"],
47
+ });
48
+
49
+ const allCalls = [
50
+ ...adapter.routeCollection.mock.calls,
51
+ ...adapter.routeNestedCollection.mock.calls,
52
+ ...adapter.routeNestedMember.mock.calls,
53
+ ];
54
+
55
+ for (const [, resourceConfig] of allCalls) {
56
+ expect(resourceConfig).toMatchObject({
57
+ resourceType: "event",
58
+ resourceTypePlural: "events",
59
+ dateFields: ["publish_at", "starts_at", "ends_at"],
60
+ });
61
+ }
62
+ });
63
+
64
+ test("registers ResourcesHandler collection at base resource", () => {
65
+ const adapter = makeAdapter();
66
+
67
+ routeResource(adapter, "page", "pages", {
68
+ viewsType: "page",
69
+ viewsTypePlural: "pages",
70
+ });
71
+
72
+ const baseCollection = adapter.routeCollection.mock.calls.find(
73
+ ([mapping]) => mapping.some(([, path]) => path === "/pages")
74
+ );
75
+
76
+ expect(baseCollection).toBeDefined();
77
+ expect(baseCollection[1]).toMatchObject({
78
+ viewsFallback: "pages",
79
+ });
80
+ });
81
+
82
+ test("registers api collection for resources", () => {
83
+ const adapter = makeAdapter();
84
+
85
+ routeResource(adapter, "page", "pages", {
86
+ viewsType: "page",
87
+ viewsTypePlural: "pages",
88
+ });
89
+
90
+ const apiCollection = adapter.routeCollection.mock.calls.find(
91
+ ([mapping]) => mapping.some(([, path]) => path === "/api/pages")
92
+ );
93
+
94
+ expect(apiCollection).toBeDefined();
95
+ });
96
+
97
+ test("registers nested collections for revisions, translations, history, locks, unlocks, clones, urls, deletes, publishes, cancel_schedules, reverts", () => {
98
+ const adapter = makeAdapter();
99
+
100
+ routeResource(adapter, "article", "articles", {
101
+ viewsType: "article",
102
+ viewsTypePlural: "articles",
103
+ });
104
+
105
+ const nestedPaths = adapter.routeNestedCollection.mock.calls.flatMap(
106
+ ([mapping]) => mapping.map(([, path]) => path)
107
+ );
108
+
109
+ expect(nestedPaths).toEqual(
110
+ expect.arrayContaining([
111
+ "/articles/:parent_id/translations",
112
+ "/articles/:parent_id/history",
113
+ "/articles/:parent_id/article_revisions",
114
+ "/article_revisions/:parent_id/locks",
115
+ "/article_revisions/:parent_id/unlocks",
116
+ "/articles/:parent_id/clones",
117
+ "/articles/:parent_id/urls",
118
+ "/articles/:parent_id/deletes",
119
+ "/articles/:parent_id/article_changes/reverts",
120
+ "/article_revisions/:parent_id/publishes",
121
+ "/article_revisions/:parent_id/cancel_schedules",
122
+ ])
123
+ );
124
+ });
125
+
126
+ test("registers nested members for general, visuals, codes, meta, tags", () => {
127
+ const adapter = makeAdapter();
128
+
129
+ routeResource(adapter, "article", "articles", {
130
+ viewsType: "article",
131
+ viewsTypePlural: "articles",
132
+ });
133
+
134
+ const nestedMemberPaths = adapter.routeNestedMember.mock.calls.flatMap(
135
+ ([mapping]) => mapping.map(([, path]) => path)
136
+ );
137
+
138
+ expect(nestedMemberPaths).toEqual(
139
+ expect.arrayContaining([
140
+ "/article_revisions/:parent_id/general",
141
+ "/article_revisions/:parent_id/visuals",
142
+ "/article_revisions/:parent_id/codes",
143
+ "/article_revisions/:parent_id/meta",
144
+ "/article_revisions/:parent_id/tags",
145
+ ])
146
+ );
147
+ });
148
+
149
+ test("registers api widgets and change endpoints", () => {
150
+ const adapter = makeAdapter();
151
+
152
+ routeResource(adapter, "page", "pages", {
153
+ viewsType: "page",
154
+ viewsTypePlural: "pages",
155
+ });
156
+
157
+ const nestedMemberPaths = adapter.routeNestedMember.mock.calls.flatMap(
158
+ ([mapping]) => mapping.map(([, path]) => path)
159
+ );
160
+
161
+ expect(nestedMemberPaths).toEqual(
162
+ expect.arrayContaining([
163
+ "/api/page_revisions/:parent_id/widgets",
164
+ "/api/page/:parent_id/change",
165
+ ])
166
+ );
167
+ });
168
+
169
+ test("uses default empty dateFields when not provided", () => {
170
+ const adapter = makeAdapter();
171
+
172
+ routeResource(adapter, "page", "pages", {
173
+ viewsType: "page",
174
+ viewsTypePlural: "pages",
175
+ });
176
+
177
+ const firstCall = adapter.routeCollection.mock.calls[0];
178
+ expect(firstCall[1].dateFields).toEqual([]);
179
+ });
180
+
181
+ test("propagates viewsFallback with viewsTypePlural for collection helpers", () => {
182
+ const adapter = makeAdapter();
183
+
184
+ routeResource(adapter, "event", "events", {
185
+ viewsType: "event",
186
+ viewsTypePlural: "events",
187
+ });
188
+
189
+ const baseCollection = adapter.routeCollection.mock.calls.find(
190
+ ([mapping]) => mapping.some(([, path]) => path === "/events")
191
+ );
192
+
193
+ expect(baseCollection[1].viewsFallback).toBe("events");
194
+
195
+ const translationsCall = adapter.routeNestedCollection.mock.calls.find(
196
+ ([mapping]) =>
197
+ mapping.some(([, path]) => path === "/events/:parent_id/translations")
198
+ );
199
+
200
+ expect(translationsCall[1].viewsFallback).toBe("events/translations");
201
+ });
202
+ });
@@ -0,0 +1,40 @@
1
+ import routeSettings from "../routeSettings";
2
+ import routeMember from "../routeMember";
3
+ import SettingsHandler from "../handlers/_shared/SettingsHandler";
4
+
5
+ jest.mock("../routeMember", () => jest.fn());
6
+
7
+ describe("routeSettings", () => {
8
+ beforeEach(() => {
9
+ routeMember.mockClear();
10
+ });
11
+
12
+ test("registers meta, layout, variables members", () => {
13
+ const adapter = {};
14
+
15
+ routeSettings(adapter);
16
+
17
+ expect(routeMember).toHaveBeenCalledTimes(3);
18
+ expect(routeMember).toHaveBeenNthCalledWith(
19
+ 1,
20
+ adapter,
21
+ "settings/meta",
22
+ SettingsHandler,
23
+ { resource: "settings/meta" }
24
+ );
25
+ expect(routeMember).toHaveBeenNthCalledWith(
26
+ 2,
27
+ adapter,
28
+ "settings/layout",
29
+ SettingsHandler,
30
+ { resource: "settings/layout" }
31
+ );
32
+ expect(routeMember).toHaveBeenNthCalledWith(
33
+ 3,
34
+ adapter,
35
+ "settings/variables",
36
+ SettingsHandler,
37
+ { resource: "settings/variables" }
38
+ );
39
+ });
40
+ });