@raketa-cloud/admin 0.0.99 → 0.0.102

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 (377) hide show
  1. package/dist/application.css +3804 -0
  2. package/package.json +6 -2
  3. package/babel.config.js +0 -6
  4. package/bin/tailwind +0 -2
  5. package/jest.config.js +0 -22
  6. package/src/Adapter.js +0 -265
  7. package/src/HonoAdapter.js +0 -269
  8. package/src/Logger.js +0 -21
  9. package/src/RaketaContext.js +0 -46
  10. package/src/buildResourcePath.js +0 -22
  11. package/src/cloud/ArticleChanges.js +0 -36
  12. package/src/cloud/ArticleRevisions.js +0 -239
  13. package/src/cloud/Articles.js +0 -194
  14. package/src/cloud/Categories.js +0 -97
  15. package/src/cloud/EventChanges.js +0 -36
  16. package/src/cloud/EventRevisions.js +0 -246
  17. package/src/cloud/Events.js +0 -204
  18. package/src/cloud/PageChanges.js +0 -36
  19. package/src/cloud/PageRevisions.js +0 -226
  20. package/src/cloud/Pages.js +0 -185
  21. package/src/cloud/RaketaClient.js +0 -223
  22. package/src/cloud/Redirects.js +0 -81
  23. package/src/cloud/Settings.js +0 -34
  24. package/src/cloud/Tags.js +0 -80
  25. package/src/cloud/documents/articlesDocuments.js +0 -343
  26. package/src/cloud/documents/categoryDocuments.js +0 -52
  27. package/src/cloud/documents/common.js +0 -133
  28. package/src/cloud/documents/eventsDocuments.js +0 -351
  29. package/src/cloud/documents/pagesDocuments.js +0 -339
  30. package/src/cloud/documents/redirectsDocuments.js +0 -82
  31. package/src/cloud/documents/settingsDocuments.js +0 -23
  32. package/src/cloud/documents/tagsDocuments.js +0 -63
  33. package/src/currentPath.cjs +0 -1
  34. package/src/handlers/DashboardsHandler.js +0 -9
  35. package/src/handlers/RedirectsHandler.js +0 -124
  36. package/src/handlers/TagsHandler.js +0 -113
  37. package/src/handlers/_shared/SettingsHandler.js +0 -36
  38. package/src/handlers/article_revisions/ArticleRevisionsHandler.js +0 -49
  39. package/src/handlers/article_revisions/CancelSchedulesHandler.js +0 -26
  40. package/src/handlers/article_revisions/CodeHandler.js +0 -74
  41. package/src/handlers/article_revisions/GeneralHandler.js +0 -76
  42. package/src/handlers/article_revisions/LocksHandler.js +0 -77
  43. package/src/handlers/article_revisions/MetaHandler.js +0 -74
  44. package/src/handlers/article_revisions/PublishesHandler.js +0 -120
  45. package/src/handlers/article_revisions/RevertsHandler.js +0 -28
  46. package/src/handlers/article_revisions/TagHandler.js +0 -82
  47. package/src/handlers/article_revisions/UnlocksHandler.js +0 -24
  48. package/src/handlers/article_revisions/VisualHandler.js +0 -74
  49. package/src/handlers/article_revisions/WidgetHandler.js +0 -47
  50. package/src/handlers/articles/ArticlesHandler.js +0 -109
  51. package/src/handlers/articles/ClonesHandler.js +0 -19
  52. package/src/handlers/articles/DeletesHandler.js +0 -72
  53. package/src/handlers/articles/HistoryHandler.js +0 -31
  54. package/src/handlers/articles/TranslationsHandler.js +0 -231
  55. package/src/handlers/articles/URLsHandler.js +0 -83
  56. package/src/handlers/categories/index.js +0 -122
  57. package/src/handlers/event_revisions/CancelSchedulesHandler.js +0 -26
  58. package/src/handlers/event_revisions/CodeHandler.js +0 -72
  59. package/src/handlers/event_revisions/EventRevisionsHandler.js +0 -47
  60. package/src/handlers/event_revisions/GeneralHandler.js +0 -74
  61. package/src/handlers/event_revisions/LocksHandler.js +0 -65
  62. package/src/handlers/event_revisions/MetaHandler.js +0 -72
  63. package/src/handlers/event_revisions/PublishesHandler.js +0 -112
  64. package/src/handlers/event_revisions/RevertsHandler.js +0 -26
  65. package/src/handlers/event_revisions/TagHandler.js +0 -79
  66. package/src/handlers/event_revisions/UnlocksHandler.js +0 -24
  67. package/src/handlers/event_revisions/VisualHandler.js +0 -72
  68. package/src/handlers/event_revisions/WidgetHandler.js +0 -41
  69. package/src/handlers/events/ClonesHandler.js +0 -19
  70. package/src/handlers/events/DeletesHandler.js +0 -72
  71. package/src/handlers/events/EventsHandler.js +0 -111
  72. package/src/handlers/events/HistoryHandler.js +0 -31
  73. package/src/handlers/events/TranslationsHandler.js +0 -233
  74. package/src/handlers/events/URLsHandler.js +0 -81
  75. package/src/handlers/page_revisions/CancelSchedulesHandler.js +0 -26
  76. package/src/handlers/page_revisions/CodeHandler.js +0 -57
  77. package/src/handlers/page_revisions/GeneralHandler.js +0 -59
  78. package/src/handlers/page_revisions/LocksHandler.js +0 -69
  79. package/src/handlers/page_revisions/MetaHandler.js +0 -57
  80. package/src/handlers/page_revisions/PageRevisionsHandler.js +0 -47
  81. package/src/handlers/page_revisions/PublishesHandler.js +0 -112
  82. package/src/handlers/page_revisions/RevertsHandler.js +0 -26
  83. package/src/handlers/page_revisions/TagHandler.js +0 -105
  84. package/src/handlers/page_revisions/UnlocksHandler.js +0 -22
  85. package/src/handlers/page_revisions/VisualHandler.js +0 -58
  86. package/src/handlers/page_revisions/WidgetHandler.js +0 -41
  87. package/src/handlers/pages/ClonesHandler.js +0 -19
  88. package/src/handlers/pages/DeletesHandler.js +0 -68
  89. package/src/handlers/pages/HistoryHandler.js +0 -31
  90. package/src/handlers/pages/PagesHandler.js +0 -104
  91. package/src/handlers/pages/TranslationsHandler.js +0 -233
  92. package/src/handlers/pages/URLsHandler.js +0 -77
  93. package/src/helpers/AuthHelper.js +0 -49
  94. package/src/helpers/FormBuilder.js +0 -438
  95. package/src/helpers/HTMLBuilder.js +0 -38
  96. package/src/helpers/Inflector.js +0 -9
  97. package/src/helpers/Pagination.js +0 -92
  98. package/src/helpers/SortButton.js +0 -102
  99. package/src/helpers/form_for.js +0 -8
  100. package/src/helpers/historyUtils.js +0 -133
  101. package/src/helpers/pagination_helper.js +0 -5
  102. package/src/helpers/sort_button.js +0 -5
  103. package/src/helpers/utils.js +0 -21
  104. package/src/routeArticlesModule.js +0 -151
  105. package/src/routeCategoriesModule.js +0 -16
  106. package/src/routeCollection.js +0 -90
  107. package/src/routeEventsModule.js +0 -166
  108. package/src/routeMember.js +0 -40
  109. package/src/routeNestedCollection.js +0 -96
  110. package/src/routeNestedMember.js +0 -46
  111. package/src/routePagesModule.js +0 -163
  112. package/src/routeSettings.js +0 -14
  113. package/src/routeStandard.js +0 -35
  114. package/src/setGlobalContext.js +0 -5
  115. package/src/setupAuthentication.js +0 -169
  116. package/src/setupCloud.js +0 -50
  117. package/src/simpleCipher.js +0 -58
  118. package/src/styles/application.css +0 -561
  119. package/src/tests/Adapter.test.js +0 -39
  120. package/src/tests/HonoAdapter.test.js +0 -34
  121. package/src/tests/Logger.test.js +0 -33
  122. package/src/tests/handlers/DashboardsHandler.test/index.test.js +0 -17
  123. package/src/tests/handlers/RedirectsHandler.test/create.test.js +0 -83
  124. package/src/tests/handlers/RedirectsHandler.test/create_form.test.js +0 -27
  125. package/src/tests/handlers/RedirectsHandler.test/destroy.test.js +0 -53
  126. package/src/tests/handlers/RedirectsHandler.test/edit_form.test.js +0 -37
  127. package/src/tests/handlers/RedirectsHandler.test/index.test.js +0 -41
  128. package/src/tests/handlers/RedirectsHandler.test/show.test.js +0 -41
  129. package/src/tests/handlers/RedirectsHandler.test/update.test.js +0 -88
  130. package/src/tests/handlers/TagsHandler.test/create.test.js +0 -96
  131. package/src/tests/handlers/TagsHandler.test/create_form.test.js +0 -25
  132. package/src/tests/handlers/TagsHandler.test/destroy.test.js +0 -51
  133. package/src/tests/handlers/TagsHandler.test/edit_form.test.js +0 -60
  134. package/src/tests/handlers/TagsHandler.test/index.test.js +0 -37
  135. package/src/tests/handlers/TagsHandler.test/update.test.js +0 -105
  136. package/src/tests/handlers/_shared/SettingsHandler.test/edit_form.test.js +0 -36
  137. package/src/tests/handlers/_shared/SettingsHandler.test/update.test.js +0 -114
  138. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +0 -79
  139. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +0 -57
  140. package/src/tests/handlers/article_revisions/CancelScheduledHandler.test/create.test.js +0 -90
  141. package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +0 -56
  142. package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +0 -161
  143. package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +0 -59
  144. package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +0 -162
  145. package/src/tests/handlers/article_revisions/LocksHandler.test/create.test.js +0 -142
  146. package/src/tests/handlers/article_revisions/LocksHandler.test/create_form.test.js +0 -55
  147. package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +0 -56
  148. package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +0 -163
  149. package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +0 -333
  150. package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +0 -48
  151. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +0 -86
  152. package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +0 -72
  153. package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +0 -153
  154. package/src/tests/handlers/article_revisions/UnlocksHandler.test/create.test.js +0 -84
  155. package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +0 -56
  156. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +0 -146
  157. package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +0 -46
  158. package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +0 -103
  159. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +0 -172
  160. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +0 -44
  161. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +0 -57
  162. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +0 -109
  163. package/src/tests/handlers/articles/ArticlesHistoryHandler.test/index.test.js +0 -87
  164. package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +0 -57
  165. package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +0 -115
  166. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +0 -60
  167. package/src/tests/handlers/articles/TranslationHandler.test/create.test.js +0 -297
  168. package/src/tests/handlers/articles/TranslationHandler.test/create_form.test.js +0 -71
  169. package/src/tests/handlers/articles/TranslationHandler.test/index.test.js +0 -91
  170. package/src/tests/handlers/articles/URLsHandler.test/create.test.js +0 -160
  171. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +0 -55
  172. package/src/tests/handlers/categories/create.test.js +0 -94
  173. package/src/tests/handlers/categories/create_form.test.js +0 -26
  174. package/src/tests/handlers/categories/destroy.test.js +0 -57
  175. package/src/tests/handlers/categories/edit_form.test.js +0 -59
  176. package/src/tests/handlers/categories/index.test.js +0 -46
  177. package/src/tests/handlers/categories/update.test.js +0 -88
  178. package/src/tests/handlers/event_revisions/CancelScheduledHandler.test/create.test.js +0 -90
  179. package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +0 -60
  180. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +0 -171
  181. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +0 -79
  182. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +0 -57
  183. package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +0 -63
  184. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +0 -172
  185. package/src/tests/handlers/event_revisions/LocksHandler.test/create.test.js +0 -142
  186. package/src/tests/handlers/event_revisions/LocksHandler.test/create_form.test.js +0 -55
  187. package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +0 -60
  188. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +0 -173
  189. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +0 -333
  190. package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +0 -48
  191. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +0 -83
  192. package/src/tests/handlers/event_revisions/TagHandler.test/edit_form.test.js +0 -76
  193. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +0 -163
  194. package/src/tests/handlers/event_revisions/UnlocksHandler.test/create.test.js +0 -84
  195. package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +0 -60
  196. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +0 -156
  197. package/src/tests/handlers/event_revisions/WidgetHandler.test/show.test.js +0 -46
  198. package/src/tests/handlers/event_revisions/WidgetHandler.test/update.test.js +0 -103
  199. package/src/tests/handlers/events/ClonesHandler.test/create.test.js +0 -57
  200. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +0 -115
  201. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +0 -60
  202. package/src/tests/handlers/events/EventsHandler.test/create.test.js +0 -172
  203. package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +0 -45
  204. package/src/tests/handlers/events/EventsHandler.test/index.test.js +0 -53
  205. package/src/tests/handlers/events/EventsHandler.test/show.test.js +0 -109
  206. package/src/tests/handlers/events/EventsHistoryHandler.test/index.test.js +0 -87
  207. package/src/tests/handlers/events/TranslationHandler.test/create.test.js +0 -303
  208. package/src/tests/handlers/events/TranslationHandler.test/create_form.test.js +0 -71
  209. package/src/tests/handlers/events/TranslationHandler.test/index.test.js +0 -91
  210. package/src/tests/handlers/events/URLsHandler.test/create.test.js +0 -160
  211. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +0 -55
  212. package/src/tests/handlers/page_revisions/CancelScheduledHandler.test/create.test.js +0 -86
  213. package/src/tests/handlers/page_revisions/CodesHandler.test/edit_form.test.js +0 -58
  214. package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +0 -154
  215. package/src/tests/handlers/page_revisions/GeneralHandler.test/edit_form.test.js +0 -54
  216. package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +0 -166
  217. package/src/tests/handlers/page_revisions/LocksHandler.test/create.test.js +0 -138
  218. package/src/tests/handlers/page_revisions/LocksHandler.test/create_form.test.js +0 -55
  219. package/src/tests/handlers/page_revisions/MetaHandler.test/edit_form.test.js +0 -51
  220. package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +0 -159
  221. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +0 -71
  222. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +0 -57
  223. package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +0 -333
  224. package/src/tests/handlers/page_revisions/PublishesHandler.test/create_form.test.js +0 -48
  225. package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +0 -83
  226. package/src/tests/handlers/page_revisions/TagHandler.test/edit_form.test.js +0 -100
  227. package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +0 -180
  228. package/src/tests/handlers/page_revisions/UnlocksHandler.test/create.test.js +0 -80
  229. package/src/tests/handlers/page_revisions/VisualHandler.test.test/edit_form.test.js +0 -58
  230. package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +0 -139
  231. package/src/tests/handlers/page_revisions/WidgetHandler.test/show.test.js +0 -46
  232. package/src/tests/handlers/page_revisions/WidgetHandler.test/update.test.js +0 -103
  233. package/src/tests/handlers/pages/ConesHandler.test/create.test.js +0 -57
  234. package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +0 -115
  235. package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +0 -60
  236. package/src/tests/handlers/pages/PagesHandler.test/create.test.js +0 -167
  237. package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +0 -41
  238. package/src/tests/handlers/pages/PagesHandler.test/index.test.js +0 -53
  239. package/src/tests/handlers/pages/PagesHandler.test/show.test.js +0 -107
  240. package/src/tests/handlers/pages/PagesHistoryHandler.test/index.test.js +0 -87
  241. package/src/tests/handlers/pages/TranslationHandler.test/create.test.js +0 -290
  242. package/src/tests/handlers/pages/TranslationHandler.test/create_form.test.js +0 -71
  243. package/src/tests/handlers/pages/TranslationHandler.test/index.test.js +0 -87
  244. package/src/tests/handlers/pages/URLsHandler.test/create.test.js +0 -160
  245. package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +0 -58
  246. package/src/tests/helpers/AuthHelper.test.js +0 -169
  247. package/src/tests/helpers/FormBuildert.test.js +0 -357
  248. package/src/tests/helpers/HTMLBuilder.test.js +0 -44
  249. package/src/tests/helpers/Inflector.test.js +0 -75
  250. package/src/tests/helpers/Pagination.test.js +0 -65
  251. package/src/tests/helpers/SortButton.test.js +0 -85
  252. package/src/tests/helpers/historyUtils.test.js +0 -107
  253. package/src/tests/helpers/utils.test.js +0 -27
  254. package/src/tests/routeCollection.test.js +0 -163
  255. package/src/tests/routeMember.test.js +0 -97
  256. package/src/tests/routeNestedCollection.test.js +0 -182
  257. package/src/tests/routeNestedMember.test.js +0 -102
  258. package/src/tests/support/factory.js +0 -194
  259. package/src/tests/support/handlersHelper.js +0 -31
  260. package/src/utils.js +0 -30
  261. package/src/views/_auth/login.ejs +0 -82
  262. package/src/views/_shared/_credentials_input.ejs +0 -31
  263. package/src/views/_shared/_layout_input.ejs +0 -5
  264. package/src/views/_shared/_scripts_input.ejs +0 -5
  265. package/src/views/_shared/_structured_json_input.ejs +0 -7
  266. package/src/views/article_revisions/_nav.ejs +0 -44
  267. package/src/views/article_revisions/codes/_form.ejs +0 -13
  268. package/src/views/article_revisions/codes/edit_form.ejs +0 -16
  269. package/src/views/article_revisions/general/_form.ejs +0 -17
  270. package/src/views/article_revisions/general/edit_form.ejs +0 -16
  271. package/src/views/article_revisions/locks/_form.ejs +0 -11
  272. package/src/views/article_revisions/locks/create_form.ejs +0 -27
  273. package/src/views/article_revisions/meta/_form.ejs +0 -15
  274. package/src/views/article_revisions/meta/edit_form.ejs +0 -16
  275. package/src/views/article_revisions/publishes/_form.ejs +0 -70
  276. package/src/views/article_revisions/publishes/create_form.ejs +0 -9
  277. package/src/views/article_revisions/tags/_form.ejs +0 -12
  278. package/src/views/article_revisions/tags/edit_form.ejs +0 -16
  279. package/src/views/article_revisions/visuals/_form.ejs +0 -12
  280. package/src/views/article_revisions/visuals/edit_form.ejs +0 -16
  281. package/src/views/articles/_form.ejs +0 -45
  282. package/src/views/articles/_shared/_history_toolbar.ejs +0 -24
  283. package/src/views/articles/_shared/_revision_toolbar.ejs +0 -68
  284. package/src/views/articles/_shared/_title.ejs +0 -11
  285. package/src/views/articles/_shared/_toolbar.ejs +0 -33
  286. package/src/views/articles/_shared/history_table.ejs +0 -68
  287. package/src/views/articles/create_form.ejs +0 -9
  288. package/src/views/articles/deletes/create_form.ejs +0 -68
  289. package/src/views/articles/history/index.ejs +0 -87
  290. package/src/views/articles/index.ejs +0 -171
  291. package/src/views/articles/show.ejs +0 -234
  292. package/src/views/articles/translations/_translation_toolbar.ejs +0 -18
  293. package/src/views/articles/translations/create_form.ejs +0 -75
  294. package/src/views/articles/translations/index.ejs +0 -39
  295. package/src/views/articles/urls/create_form.ejs +0 -36
  296. package/src/views/categories/_form.ejs +0 -24
  297. package/src/views/categories/create_form.ejs +0 -9
  298. package/src/views/categories/edit_form.ejs +0 -9
  299. package/src/views/categories/index.ejs +0 -35
  300. package/src/views/dashboard/index.ejs +0 -23
  301. package/src/views/event_revisions/_nav.ejs +0 -44
  302. package/src/views/event_revisions/codes/_form.ejs +0 -13
  303. package/src/views/event_revisions/codes/edit_form.ejs +0 -16
  304. package/src/views/event_revisions/general/_form.ejs +0 -19
  305. package/src/views/event_revisions/general/edit_form.ejs +0 -16
  306. package/src/views/event_revisions/locks/_form.ejs +0 -11
  307. package/src/views/event_revisions/locks/create_form.ejs +0 -27
  308. package/src/views/event_revisions/meta/_form.ejs +0 -15
  309. package/src/views/event_revisions/meta/edit_form.ejs +0 -16
  310. package/src/views/event_revisions/publishes/_form.ejs +0 -77
  311. package/src/views/event_revisions/publishes/create_form.ejs +0 -9
  312. package/src/views/event_revisions/tags/_form.ejs +0 -12
  313. package/src/views/event_revisions/tags/edit_form.ejs +0 -16
  314. package/src/views/event_revisions/visuals/_form.ejs +0 -12
  315. package/src/views/event_revisions/visuals/edit_form.ejs +0 -16
  316. package/src/views/events/_form.ejs +0 -47
  317. package/src/views/events/_shared/_history_toolbar.ejs +0 -24
  318. package/src/views/events/_shared/_revision_toolbar.ejs +0 -68
  319. package/src/views/events/_shared/_title.ejs +0 -12
  320. package/src/views/events/_shared/_toolbar.ejs +0 -33
  321. package/src/views/events/_shared/history_table.ejs +0 -68
  322. package/src/views/events/create_form.ejs +0 -9
  323. package/src/views/events/deletes/create_form.ejs +0 -68
  324. package/src/views/events/history/index.ejs +0 -87
  325. package/src/views/events/index.ejs +0 -171
  326. package/src/views/events/show.ejs +0 -234
  327. package/src/views/events/translations/_translation_toolbar.ejs +0 -18
  328. package/src/views/events/translations/create_form.ejs +0 -75
  329. package/src/views/events/translations/index.ejs +0 -39
  330. package/src/views/events/urls/create_form.ejs +0 -36
  331. package/src/views/layouts/application.ejs +0 -239
  332. package/src/views/layouts/header.ejs +0 -47
  333. package/src/views/page_revisions/_nav.ejs +0 -44
  334. package/src/views/page_revisions/codes/_form.ejs +0 -13
  335. package/src/views/page_revisions/codes/edit_form.ejs +0 -16
  336. package/src/views/page_revisions/general/_form.ejs +0 -16
  337. package/src/views/page_revisions/general/edit_form.ejs +0 -16
  338. package/src/views/page_revisions/locks/_form.ejs +0 -11
  339. package/src/views/page_revisions/locks/create_form.ejs +0 -27
  340. package/src/views/page_revisions/meta/_form.ejs +0 -15
  341. package/src/views/page_revisions/meta/edit_form.ejs +0 -16
  342. package/src/views/page_revisions/publishes/_form.ejs +0 -76
  343. package/src/views/page_revisions/publishes/create_form.ejs +0 -9
  344. package/src/views/page_revisions/tags/_form.ejs +0 -12
  345. package/src/views/page_revisions/tags/edit_form.ejs +0 -21
  346. package/src/views/page_revisions/visuals/_form.ejs +0 -12
  347. package/src/views/page_revisions/visuals/edit_form.ejs +0 -16
  348. package/src/views/pages/_form.ejs +0 -44
  349. package/src/views/pages/_shared/_history_toolbar.ejs +0 -24
  350. package/src/views/pages/_shared/_revision_toolbar.ejs +0 -68
  351. package/src/views/pages/_shared/_title.ejs +0 -12
  352. package/src/views/pages/_shared/_toolbar.ejs +0 -33
  353. package/src/views/pages/_shared/history_table.ejs +0 -68
  354. package/src/views/pages/create_form.ejs +0 -9
  355. package/src/views/pages/deletes/create_form.ejs +0 -68
  356. package/src/views/pages/history/index.ejs +0 -87
  357. package/src/views/pages/index.ejs +0 -166
  358. package/src/views/pages/show.ejs +0 -235
  359. package/src/views/pages/translations/_translation_toolbar.ejs +0 -18
  360. package/src/views/pages/translations/create_form.ejs +0 -75
  361. package/src/views/pages/translations/index.ejs +0 -39
  362. package/src/views/pages/urls/create_form.ejs +0 -36
  363. package/src/views/redirects/_form.ejs +0 -26
  364. package/src/views/redirects/create_form.ejs +0 -9
  365. package/src/views/redirects/edit_form.ejs +0 -9
  366. package/src/views/redirects/index.ejs +0 -75
  367. package/src/views/redirects/show.ejs +0 -60
  368. package/src/views/settings/_nav.ejs +0 -22
  369. package/src/views/settings/layout/edit_form.ejs +0 -58
  370. package/src/views/settings/meta/edit_form.ejs +0 -24
  371. package/src/views/tags/_form.ejs +0 -25
  372. package/src/views/tags/create_form.ejs +0 -9
  373. package/src/views/tags/edit_form.ejs +0 -9
  374. package/src/views/tags/index.ejs +0 -43
  375. package/tailwind.config.js +0 -40
  376. package/tsconfig.json +0 -15
  377. package/tsconfig.lint.json +0 -8
@@ -1,297 +0,0 @@
1
- import ArticleRevisions from "../../../../cloud/ArticleRevisions";
2
- import Articles from "../../../../cloud/Articles";
3
- import TranslationsHandler from "../../../../handlers/articles/TranslationsHandler";
4
- import Factory from "../../../support/factory";
5
-
6
- function buildCtx(params, article) {
7
- return {
8
- client: {
9
- articles: new Articles(() => ({}), "token"),
10
- articleRevisions: new ArticleRevisions(() => ({}), "token"),
11
- },
12
- params: { parent_id: article.id },
13
- resourceParams: {
14
- resource: params,
15
- },
16
- locale: "en",
17
- resourceConfig: {
18
- articleType: "article",
19
- articleTypePlural: "articles",
20
- },
21
- };
22
- }
23
-
24
- describe("Articles Translation Handler", () => {
25
- test("create fails with translation errors", async () => {
26
- const article = Factory.build("article", {
27
- translations: {},
28
- categories: [{ id: "cat1" }],
29
- });
30
- const params = {
31
- languages: ["fr"],
32
- };
33
-
34
- const ctx = buildCtx(params, article);
35
-
36
- const mockFind = jest
37
- .spyOn(ctx.client.articles, "find")
38
- .mockImplementation(() => article);
39
-
40
- const translationErrors = [{ key: "title", message: "cannot be blank" }];
41
- const mockTranslateBatch = jest
42
- .spyOn(ctx.client.articles, "translateBatch")
43
- .mockImplementation((parentId, locales) =>
44
- locales.map((locale) => ({
45
- article: null,
46
- errors: translationErrors,
47
- }))
48
- );
49
-
50
- const mockFormatErrors = jest
51
- .spyOn(ctx.client.articles, "formatErrors")
52
- .mockImplementation(() => ({ title: "cannot be blank" }));
53
-
54
- const result = await TranslationsHandler.create(ctx);
55
-
56
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
57
- expect(mockTranslateBatch).toHaveBeenCalled();
58
- expect(mockFormatErrors).toHaveBeenCalledWith(translationErrors);
59
-
60
- expect(result).toEqual({
61
- assigns: {
62
- resource: {
63
- title: article.title,
64
- tags: [],
65
- visibility: "private",
66
- slug: article.slug,
67
- settings: article.settings,
68
- widgets: article.widgets,
69
- categories: ["cat1"],
70
- publishAt: article.publishAt,
71
- translations: {},
72
- languages: ["fr"],
73
- },
74
- blueprint: article,
75
- targetLocale: "fr",
76
- errors: { resource: { title: "cannot be blank" } },
77
- },
78
- });
79
- });
80
-
81
- test("create successfully multiple translations with already one is existing", async () => {
82
- const article = Factory.build("article", {
83
- translations: { de: "de-id" },
84
- categories: [{ id: "cat1" }],
85
- });
86
-
87
- const params = {
88
- languages: ["fr", "es", "de"],
89
- };
90
-
91
- const ctx = buildCtx(params, article);
92
-
93
- const mockFind = jest
94
- .spyOn(ctx.client.articles, "find")
95
- .mockImplementation(() => article);
96
-
97
- const mockTranslateBatch = jest
98
- .spyOn(ctx.client.articles, "translateBatch")
99
- .mockImplementation((parentId, locales) =>
100
- locales.map((locale) => ({
101
- article: { id: `translated-article-${locale}` },
102
- errors: null,
103
- }))
104
- );
105
-
106
- const mockCreateRevisionBatch = jest
107
- .spyOn(ctx.client.articleRevisions, "createBatch")
108
- .mockImplementation((revisionInputs) =>
109
- revisionInputs.map(({ locale }) => ({
110
- revision: { id: `revision-${locale}` },
111
- errors: null,
112
- }))
113
- );
114
-
115
- const result = await TranslationsHandler.create(ctx);
116
-
117
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
118
-
119
- expect(mockTranslateBatch).toHaveBeenCalledTimes(1);
120
- expect(mockTranslateBatch).toHaveBeenCalledWith(
121
- article.id,
122
- ["fr", "es"],
123
- expect.objectContaining({
124
- title: article.title,
125
- tags: [],
126
- visibility: "private",
127
- slug: article.slug,
128
- })
129
- );
130
-
131
- expect(mockCreateRevisionBatch).toHaveBeenCalledTimes(1);
132
- expect(mockCreateRevisionBatch).toHaveBeenCalledWith([
133
- { articleId: "translated-article-fr", locale: "fr" },
134
- { articleId: "translated-article-es", locale: "es" },
135
- ]);
136
-
137
- expect(result).toEqual({
138
- redirect: `/en/articles/${article.id}/translations?translations=fr:translated-article-fr;es:translated-article-es`,
139
- });
140
- });
141
-
142
- test("create translations if any translation fails", async () => {
143
- const article = Factory.build("article", {
144
- translations: {},
145
- categories: [{ id: "some-category-uno" }],
146
- });
147
-
148
- const params = {
149
- languages: ["fr", "es"],
150
- };
151
-
152
- const ctx = buildCtx(params, article);
153
-
154
- const mockFind = jest
155
- .spyOn(ctx.client.articles, "find")
156
- .mockImplementation(() => article);
157
-
158
- const mockTranslateBatch = jest
159
- .spyOn(ctx.client.articles, "translateBatch")
160
- .mockImplementation((parentId, locales) => [
161
- {
162
- article: {
163
- id: "translated-article-fr",
164
- slug: "article-revision",
165
- visibility: "public",
166
- },
167
- errors: null,
168
- },
169
- {
170
- article: null,
171
- errors: [{ key: "title", message: "invalid for spanish" }],
172
- },
173
- ]);
174
-
175
- const mockFormatErrors = jest
176
- .spyOn(ctx.client.articles, "formatErrors")
177
- .mockImplementation(() => ({
178
- title: "invalid for spanish",
179
- }));
180
-
181
- const mockCreateRevision = jest
182
- .spyOn(ctx.client.articleRevisions, "create")
183
- .mockImplementation(() => ({ errors: null }));
184
-
185
- const result = await TranslationsHandler.create(ctx);
186
-
187
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
188
-
189
- expect(mockTranslateBatch).toHaveBeenCalledWith(
190
- article.id,
191
- ["fr", "es"],
192
- expect.objectContaining({
193
- title: article.title,
194
- tags: [],
195
- visibility: "private",
196
- slug: article.slug,
197
- })
198
- );
199
-
200
- expect(result).toEqual({
201
- assigns: {
202
- resource: {
203
- title: article.title,
204
- tags: [],
205
- visibility: "private",
206
- slug: article.slug,
207
- settings: article.settings,
208
- widgets: article.widgets,
209
- categories: ["some-category-uno"],
210
- publishAt: article.publishAt,
211
- translations: {
212
- fr: {
213
- id: "translated-article-fr",
214
- slug: article.slug,
215
- visibility: article.visibility,
216
- },
217
- },
218
- languages: ["fr", "es"],
219
- },
220
- blueprint: article,
221
- targetLocale: "es",
222
- errors: { resource: { title: "invalid for spanish" } },
223
- },
224
- });
225
- });
226
-
227
- test("create translation fails with revision errors", async () => {
228
- const article = Factory.build("article", {
229
- translations: {},
230
- categories: [{ id: "cat1" }],
231
- });
232
- const params = {
233
- languages: ["fr"],
234
- };
235
-
236
- const ctx = buildCtx(params, article);
237
-
238
- const mockFind = jest
239
- .spyOn(ctx.client.articles, "find")
240
- .mockImplementation(() => article);
241
-
242
- const mockTranslateBatch = jest
243
- .spyOn(ctx.client.articles, "translateBatch")
244
- .mockImplementation(() => [
245
- {
246
- article: {
247
- id: "translated-article-fr",
248
- slug: "article-revision",
249
- visibility: "public",
250
- },
251
- errors: null,
252
- },
253
- ]);
254
-
255
- const revisionErrors = [{ key: "base", message: "something went wrong" }];
256
- const mockCreateRevisionBatch = jest
257
- .spyOn(ctx.client.articleRevisions, "createBatch")
258
- .mockImplementation(() => [{ errors: revisionErrors }]);
259
-
260
- const mockFormatErrors = jest
261
- .spyOn(ctx.client.articles, "formatErrors")
262
- .mockImplementation(() => ({ base: "something went wrong" }));
263
-
264
- const result = await TranslationsHandler.create(ctx);
265
-
266
- expect(mockCreateRevisionBatch).toHaveBeenCalledWith([
267
- { articleId: "translated-article-fr", locale: "fr" },
268
- ]);
269
- expect(mockFormatErrors).toHaveBeenCalledWith(revisionErrors);
270
-
271
- expect(result).toEqual({
272
- assigns: {
273
- resource: {
274
- title: article.title,
275
- tags: [],
276
- visibility: "private",
277
- slug: article.slug,
278
- settings: article.settings,
279
- widgets: article.widgets,
280
- categories: ["cat1"],
281
- publishAt: article.publishAt,
282
- translations: {
283
- fr: {
284
- id: "translated-article-fr",
285
- slug: article.slug,
286
- visibility: article.visibility,
287
- },
288
- },
289
- languages: ["fr"],
290
- },
291
- blueprint: article,
292
- targetLocale: "fr",
293
- errors: { resource: { base: "something went wrong" } },
294
- },
295
- });
296
- });
297
- });
@@ -1,71 +0,0 @@
1
- import Articles from "../../../../cloud/Articles";
2
- import TranslationsHandler from "../../../../handlers/articles/TranslationsHandler";
3
- import Factory from "../../../support/factory";
4
-
5
- function buildCtx(article) {
6
- return {
7
- client: {
8
- articles: new Articles(() => ({}), "token"),
9
- },
10
- params: { parent_id: article.id },
11
- query: { target_locale: "" },
12
- locale: "en",
13
- resourceConfig: {
14
- articleType: "article",
15
- articleTypePlural: "articles",
16
- },
17
- };
18
- }
19
-
20
- describe("Article translation form", () => {
21
- test("create_form when a article exists with target locale", async () => {
22
- const article = Factory.build("article");
23
- const ctx = buildCtx(article);
24
- ctx.query.target_locale = "fr";
25
-
26
- const mockFindArticle = jest
27
- .spyOn(ctx.client.articles, "find")
28
- .mockImplementation(() => article);
29
-
30
- const result = await TranslationsHandler.create_form(ctx);
31
-
32
- expect(mockFindArticle).toHaveBeenCalledWith(article.id, "en");
33
-
34
- const expectedResource = structuredClone(article);
35
-
36
- expect(result).toEqual({
37
- assigns: {
38
- resource: expectedResource,
39
- blueprint: article,
40
- targetLocale: "fr",
41
- errors: {},
42
- _translations: [],
43
- },
44
- });
45
- });
46
-
47
- test("create_form when a article exists without target locale", async () => {
48
- const article = Factory.build("article");
49
- const ctx = buildCtx(article);
50
-
51
- const mockFindArticle = jest
52
- .spyOn(ctx.client.articles, "find")
53
- .mockImplementation(() => article);
54
-
55
- const result = await TranslationsHandler.create_form(ctx);
56
-
57
- expect(mockFindArticle).toHaveBeenCalledWith(article.id, "en");
58
-
59
- const expectedResource = structuredClone(article);
60
-
61
- expect(result).toEqual({
62
- assigns: {
63
- resource: expectedResource,
64
- blueprint: article,
65
- targetLocale: "",
66
- errors: {},
67
- _translations: [],
68
- },
69
- });
70
- });
71
- });
@@ -1,91 +0,0 @@
1
- import ArticleRevisions from "../../../../cloud/ArticleRevisions";
2
- import Articles from "../../../../cloud/Articles";
3
- import TranslationsHandler from "../../../../handlers/articles/TranslationsHandler";
4
- import Factory from "../../../support/factory";
5
-
6
- function buildCtx() {
7
- const originalArticle = Factory.build("article", {
8
- id: "original-article-id",
9
- title: "Test Article Title",
10
- });
11
-
12
- return {
13
- client: {
14
- articles: new Articles(() => ({}), "token"),
15
- articleRevisions: new ArticleRevisions(() => ({}), "token"),
16
- },
17
- params: { parent_id: originalArticle.id },
18
- query: { translations: "fr:fr-article-id;es:es-article-id" },
19
- locale: "en",
20
- resourceConfig: {
21
- articleType: "article",
22
- articleTypePlural: "articles",
23
- },
24
- originalArticle,
25
- };
26
- }
27
-
28
- describe("Translations Handler", () => {
29
- test("index", async () => {
30
- const frArticle = Factory.build("article", { id: "fr-article-id" });
31
- const esArticle = Factory.build("article", { id: "es-article-id" });
32
- const esRevision = Factory.build("article_revision", {
33
- id: "es-revision-id",
34
- });
35
- const frRevision = Factory.build("article_revision", {
36
- id: "fr-revision-id",
37
- });
38
- const ctx = buildCtx();
39
-
40
- const mockedFind = jest
41
- .spyOn(ctx.client.articles, "find")
42
- .mockImplementation((id, locale) => {
43
- if (locale === "fr") return frArticle;
44
- if (locale === "es") return esArticle;
45
- if (id === "original-article-id") return ctx.originalArticle;
46
- });
47
-
48
- const mockedRevisions = jest
49
- .spyOn(ctx.client.articleRevisions, "all")
50
- .mockImplementation((id, locale) => ({
51
- list: locale === "fr" ? [frRevision] : [esRevision],
52
- }));
53
-
54
- const mockedList = jest
55
- .spyOn(ctx.client.articles, "list")
56
- .mockImplementation(() => ({}));
57
-
58
- const result = await TranslationsHandler.index(ctx);
59
-
60
- expect(mockedFind).toHaveBeenCalledWith("fr-article-id", "fr");
61
- expect(mockedFind).toHaveBeenCalledWith("es-article-id", "es");
62
- expect(mockedRevisions).toHaveBeenCalledWith("fr-article-id", "fr");
63
- expect(mockedRevisions).toHaveBeenCalledWith("es-article-id", "es");
64
- expect(mockedList).toHaveBeenCalledWith(
65
- { translations: "fr:fr-article-id;es:es-article-id" },
66
- "en",
67
- "article"
68
- );
69
-
70
- expect(result).toEqual({
71
- assigns: {
72
- items: {},
73
- visibilityOptions: ctx.client.articles.visibilityOptions(),
74
- translations: [
75
- {
76
- ...frArticle,
77
- translationLocale: "fr",
78
- revisionId: "fr-revision-id",
79
- },
80
- {
81
- ...esArticle,
82
- translationLocale: "es",
83
- revisionId: "es-revision-id",
84
- },
85
- ],
86
- parent_id: "original-article-id",
87
- articleTitle: "Test Article Title",
88
- },
89
- });
90
- });
91
- });
@@ -1,160 +0,0 @@
1
- import URLsHandler from "../../../../handlers/articles/URLsHandler";
2
- import Articles from "../../../../cloud/Articles";
3
- import Factory from "../../../support/factory";
4
- import { remoteConfig } from "../../../support/handlersHelper";
5
-
6
- function buildCtx(article, updateSettings) {
7
- return {
8
- client: {
9
- articles: new Articles(() => ({}), "token"),
10
- },
11
- params: { parent_id: article.id },
12
- resourceParams: {
13
- resource: updateSettings,
14
- },
15
- locale: "en",
16
- remoteConfig: remoteConfig(),
17
- resourceConfig: {
18
- articleType: "article",
19
- articleTypePlural: "articles",
20
- },
21
- };
22
- }
23
-
24
- describe("Article change url", () => {
25
- test("create successful", async () => {
26
- const article = Factory.build("article");
27
- const updateSettings = {
28
- slug: "new-slug",
29
- redirect: "1",
30
- };
31
- const ctx = buildCtx(article, updateSettings);
32
-
33
- const mockFind = jest
34
- .spyOn(ctx.client.articles, "find")
35
- .mockImplementation(() => article);
36
-
37
- const mockChange = jest
38
- .spyOn(ctx.client.articles, "updateSlug")
39
- .mockImplementation(() => ({ article, errors: null }));
40
-
41
- const result = await URLsHandler.create(ctx);
42
-
43
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
44
- expect(mockChange).toHaveBeenCalledWith(
45
- article.id,
46
- updateSettings.slug,
47
- "en",
48
- {
49
- url: `/en/blog/${article.slug}`,
50
- destination: `/en/blog/${updateSettings.slug}`,
51
- httpResponseCode: 301,
52
- note: "Created with changed URL for a resource of type article",
53
- }
54
- );
55
-
56
- expect(result).toEqual({
57
- redirect: `/en/articles/${article.id}`,
58
- });
59
- });
60
-
61
- test("create failed due to slug error", async () => {
62
- const article = Factory.build("article");
63
- const updateSettings = {
64
- slug: "new-slug",
65
- };
66
- const ctx = buildCtx(article, updateSettings);
67
-
68
- const mockFind = jest
69
- .spyOn(ctx.client.articles, "find")
70
- .mockImplementation(() => article);
71
-
72
- const mockChange = jest
73
- .spyOn(ctx.client.articles, "updateSlug")
74
- .mockImplementation(() => ({
75
- article: null,
76
- errors: [{ codes: [], key: "slug", message: "has already been taken" }],
77
- }));
78
-
79
- const result = await URLsHandler.create(ctx);
80
-
81
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
82
- expect(mockChange).toHaveBeenCalledWith(
83
- article.id,
84
- updateSettings.slug,
85
- "en",
86
- null
87
- );
88
-
89
- expect(result).toEqual({
90
- assigns: {
91
- resource: { ...updateSettings, id: article.id },
92
- errors: { resource: { slug: "has already been taken" } },
93
- _translations: [],
94
- },
95
- });
96
- });
97
-
98
- test("create failed due to redirect create", async () => {
99
- const article = Factory.build("article");
100
- const updateSettings = {
101
- slug: "new-slug",
102
- redirect: "1",
103
- };
104
- const ctx = buildCtx(article, updateSettings);
105
-
106
- const mockFind = jest
107
- .spyOn(ctx.client.articles, "find")
108
- .mockImplementation(() => article);
109
-
110
- const mockChange = jest
111
- .spyOn(ctx.client.articles, "updateSlug")
112
- .mockImplementation(() => ({
113
- article: null,
114
- errors: [
115
- {
116
- codes: [],
117
- key: "generalError",
118
- message: "url: has already been taken",
119
- },
120
- ],
121
- }));
122
-
123
- const result = await URLsHandler.create(ctx);
124
-
125
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
126
- expect(mockChange).toHaveBeenCalledWith(
127
- article.id,
128
- updateSettings.slug,
129
- "en",
130
- {
131
- url: `/en/blog/${article.slug}`,
132
- destination: `/en/blog/${updateSettings.slug}`,
133
- httpResponseCode: 301,
134
- note: "Created with changed URL for a resource of type article",
135
- }
136
- );
137
-
138
- expect(result).toEqual({
139
- assigns: {
140
- resource: { ...updateSettings, id: article.id },
141
- errors: { resource: { redirect: "url: has already been taken" } },
142
- _translations: [],
143
- },
144
- });
145
- });
146
-
147
- test("create for non existing article", async () => {
148
- const ctx = buildCtx({ id: "42" }, {});
149
-
150
- const mockFind = jest
151
- .spyOn(ctx.client.articles, "find")
152
- .mockImplementation(() => null);
153
-
154
- expect(async () => {
155
- await URLsHandler.create(ctx);
156
- }).rejects.toThrow("Cannot find article with id 42");
157
-
158
- expect(mockFind).toHaveBeenCalledWith("42", "en");
159
- });
160
- });
@@ -1,55 +0,0 @@
1
- import Articles from "../../../../cloud/Articles";
2
- import URLsHandler from "../../../../handlers/articles/URLsHandler";
3
- import Factory from "../../../support/factory";
4
-
5
- function buildCtx(article) {
6
- return {
7
- client: {
8
- articles: new Articles(() => ({}), "token"),
9
- },
10
- params: { parent_id: article.id },
11
- locale: "en",
12
- resourceConfig: {
13
- articleType: "article",
14
- articleTypePlural: "articles",
15
- },
16
- };
17
- }
18
-
19
- describe("Article change url", () => {
20
- test("create_form for existing article", async () => {
21
- const article = Factory.build("article");
22
- const ctx = buildCtx(article);
23
-
24
- const mockFind = jest
25
- .spyOn(ctx.client.articles, "find")
26
- .mockImplementation(() => article);
27
-
28
- const result = await URLsHandler.create_form(ctx);
29
-
30
- expect(mockFind).toHaveBeenCalledWith(article.id, "en");
31
-
32
- expect(result).toEqual({
33
- assigns: {
34
- article,
35
- resource: { slug: article.slug, id: article.id, redirect: null },
36
- errors: {},
37
- _translations: [],
38
- },
39
- });
40
- });
41
-
42
- test("create_form for non existing article", async () => {
43
- const ctx = buildCtx({ id: "42" });
44
-
45
- const mockFind = jest
46
- .spyOn(ctx.client.articles, "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");
54
- });
55
- });