@raketa-cloud/admin 0.0.100 → 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/cipher.js +0 -49
  12. package/src/cloud/ArticleChanges.js +0 -36
  13. package/src/cloud/ArticleRevisions.js +0 -239
  14. package/src/cloud/Articles.js +0 -194
  15. package/src/cloud/Categories.js +0 -97
  16. package/src/cloud/EventChanges.js +0 -36
  17. package/src/cloud/EventRevisions.js +0 -246
  18. package/src/cloud/Events.js +0 -204
  19. package/src/cloud/PageChanges.js +0 -36
  20. package/src/cloud/PageRevisions.js +0 -226
  21. package/src/cloud/Pages.js +0 -185
  22. package/src/cloud/RaketaClient.js +0 -223
  23. package/src/cloud/Redirects.js +0 -81
  24. package/src/cloud/Settings.js +0 -28
  25. package/src/cloud/Tags.js +0 -80
  26. package/src/cloud/documents/articlesDocuments.js +0 -343
  27. package/src/cloud/documents/categoryDocuments.js +0 -52
  28. package/src/cloud/documents/common.js +0 -133
  29. package/src/cloud/documents/eventsDocuments.js +0 -351
  30. package/src/cloud/documents/pagesDocuments.js +0 -339
  31. package/src/cloud/documents/redirectsDocuments.js +0 -82
  32. package/src/cloud/documents/settingsDocuments.js +0 -23
  33. package/src/cloud/documents/tagsDocuments.js +0 -63
  34. package/src/currentPath.cjs +0 -1
  35. package/src/handlers/DashboardsHandler.js +0 -9
  36. package/src/handlers/RedirectsHandler.js +0 -124
  37. package/src/handlers/TagsHandler.js +0 -113
  38. package/src/handlers/_shared/SettingsHandler.js +0 -36
  39. package/src/handlers/article_revisions/ArticleRevisionsHandler.js +0 -49
  40. package/src/handlers/article_revisions/CancelSchedulesHandler.js +0 -26
  41. package/src/handlers/article_revisions/CodeHandler.js +0 -74
  42. package/src/handlers/article_revisions/GeneralHandler.js +0 -76
  43. package/src/handlers/article_revisions/LocksHandler.js +0 -77
  44. package/src/handlers/article_revisions/MetaHandler.js +0 -74
  45. package/src/handlers/article_revisions/PublishesHandler.js +0 -120
  46. package/src/handlers/article_revisions/RevertsHandler.js +0 -28
  47. package/src/handlers/article_revisions/TagHandler.js +0 -82
  48. package/src/handlers/article_revisions/UnlocksHandler.js +0 -24
  49. package/src/handlers/article_revisions/VisualHandler.js +0 -74
  50. package/src/handlers/article_revisions/WidgetHandler.js +0 -47
  51. package/src/handlers/articles/ArticlesHandler.js +0 -109
  52. package/src/handlers/articles/ClonesHandler.js +0 -19
  53. package/src/handlers/articles/DeletesHandler.js +0 -72
  54. package/src/handlers/articles/HistoryHandler.js +0 -31
  55. package/src/handlers/articles/TranslationsHandler.js +0 -231
  56. package/src/handlers/articles/URLsHandler.js +0 -83
  57. package/src/handlers/categories/index.js +0 -122
  58. package/src/handlers/event_revisions/CancelSchedulesHandler.js +0 -26
  59. package/src/handlers/event_revisions/CodeHandler.js +0 -72
  60. package/src/handlers/event_revisions/EventRevisionsHandler.js +0 -47
  61. package/src/handlers/event_revisions/GeneralHandler.js +0 -74
  62. package/src/handlers/event_revisions/LocksHandler.js +0 -65
  63. package/src/handlers/event_revisions/MetaHandler.js +0 -72
  64. package/src/handlers/event_revisions/PublishesHandler.js +0 -112
  65. package/src/handlers/event_revisions/RevertsHandler.js +0 -26
  66. package/src/handlers/event_revisions/TagHandler.js +0 -79
  67. package/src/handlers/event_revisions/UnlocksHandler.js +0 -24
  68. package/src/handlers/event_revisions/VisualHandler.js +0 -72
  69. package/src/handlers/event_revisions/WidgetHandler.js +0 -41
  70. package/src/handlers/events/ClonesHandler.js +0 -19
  71. package/src/handlers/events/DeletesHandler.js +0 -72
  72. package/src/handlers/events/EventsHandler.js +0 -111
  73. package/src/handlers/events/HistoryHandler.js +0 -31
  74. package/src/handlers/events/TranslationsHandler.js +0 -233
  75. package/src/handlers/events/URLsHandler.js +0 -81
  76. package/src/handlers/page_revisions/CancelSchedulesHandler.js +0 -26
  77. package/src/handlers/page_revisions/CodeHandler.js +0 -57
  78. package/src/handlers/page_revisions/GeneralHandler.js +0 -59
  79. package/src/handlers/page_revisions/LocksHandler.js +0 -69
  80. package/src/handlers/page_revisions/MetaHandler.js +0 -57
  81. package/src/handlers/page_revisions/PageRevisionsHandler.js +0 -47
  82. package/src/handlers/page_revisions/PublishesHandler.js +0 -112
  83. package/src/handlers/page_revisions/RevertsHandler.js +0 -26
  84. package/src/handlers/page_revisions/TagHandler.js +0 -105
  85. package/src/handlers/page_revisions/UnlocksHandler.js +0 -22
  86. package/src/handlers/page_revisions/VisualHandler.js +0 -58
  87. package/src/handlers/page_revisions/WidgetHandler.js +0 -41
  88. package/src/handlers/pages/ClonesHandler.js +0 -19
  89. package/src/handlers/pages/DeletesHandler.js +0 -68
  90. package/src/handlers/pages/HistoryHandler.js +0 -31
  91. package/src/handlers/pages/PagesHandler.js +0 -104
  92. package/src/handlers/pages/TranslationsHandler.js +0 -233
  93. package/src/handlers/pages/URLsHandler.js +0 -77
  94. package/src/helpers/AuthHelper.js +0 -49
  95. package/src/helpers/FormBuilder.js +0 -438
  96. package/src/helpers/HTMLBuilder.js +0 -38
  97. package/src/helpers/Inflector.js +0 -9
  98. package/src/helpers/Pagination.js +0 -92
  99. package/src/helpers/SortButton.js +0 -102
  100. package/src/helpers/form_for.js +0 -8
  101. package/src/helpers/historyUtils.js +0 -133
  102. package/src/helpers/pagination_helper.js +0 -5
  103. package/src/helpers/sort_button.js +0 -5
  104. package/src/helpers/utils.js +0 -21
  105. package/src/routeArticlesModule.js +0 -151
  106. package/src/routeCategoriesModule.js +0 -16
  107. package/src/routeCollection.js +0 -90
  108. package/src/routeEventsModule.js +0 -166
  109. package/src/routeMember.js +0 -40
  110. package/src/routeNestedCollection.js +0 -96
  111. package/src/routeNestedMember.js +0 -46
  112. package/src/routePagesModule.js +0 -163
  113. package/src/routeSettings.js +0 -14
  114. package/src/routeStandard.js +0 -35
  115. package/src/setGlobalContext.js +0 -5
  116. package/src/setupAuthentication.js +0 -154
  117. package/src/setupCloud.js +0 -50
  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,169 +0,0 @@
1
- import AuthHelper from "../../helpers/AuthHelper";
2
-
3
- describe("AuthHelper", () => {
4
- describe("parseJWT", () => {
5
- test("parses JWT token correctly", () => {
6
- const payload = { user: "test", exp: 1735689600 };
7
- const encodedPayload = Buffer.from(JSON.stringify(payload)).toString(
8
- "base64"
9
- );
10
- const mockToken = `header.${encodedPayload}.signature`;
11
-
12
- const result = AuthHelper.parseJWT(mockToken);
13
- expect(result).toEqual(payload);
14
- });
15
- });
16
-
17
- describe("verifyJWT", () => {
18
- test("returns true for valid non-expired token", () => {
19
- const futureTime = Math.floor(Date.now() / 1000) + 3600;
20
- const payload = { exp: futureTime };
21
- const encodedPayload = Buffer.from(JSON.stringify(payload)).toString(
22
- "base64"
23
- );
24
- const mockToken = `header.${encodedPayload}.signature`;
25
-
26
- const result = AuthHelper.verifyJWT(mockToken);
27
- expect(result).toBe(true);
28
- });
29
-
30
- test("returns false for expired token", () => {
31
- const pastTime = Math.floor(Date.now() / 1000) - 3600;
32
- const payload = { exp: pastTime };
33
- const encodedPayload = Buffer.from(JSON.stringify(payload)).toString(
34
- "base64"
35
- );
36
- const mockToken = `header.${encodedPayload}.signature`;
37
-
38
- const result = AuthHelper.verifyJWT(mockToken);
39
- expect(result).toBe(false);
40
- });
41
-
42
- test("returns false for token without exp", () => {
43
- const payload = { user: "test" };
44
- const encodedPayload = Buffer.from(JSON.stringify(payload)).toString(
45
- "base64"
46
- );
47
- const mockToken = `header.${encodedPayload}.signature`;
48
-
49
- const result = AuthHelper.verifyJWT(mockToken);
50
- expect(result).toBe(false);
51
- });
52
- });
53
-
54
- describe("isAuthenticated", () => {
55
- test("returns true for allowed paths", () => {
56
- expect(AuthHelper.isAuthenticated({ path: "/login" })).toBe(true);
57
- expect(
58
- AuthHelper.isAuthenticated({ path: "/auth/google/callback" })
59
- ).toBe(true);
60
- expect(AuthHelper.isAuthenticated({ path: "/remote/verify" })).toBe(true);
61
- });
62
-
63
- test("returns true for valid token", () => {
64
- const futureTime = Math.floor(Date.now() / 1000) + 3600;
65
- const payload = { exp: futureTime };
66
- const encodedPayload = Buffer.from(JSON.stringify(payload)).toString(
67
- "base64"
68
- );
69
- const mockToken = `header.${encodedPayload}.signature`;
70
-
71
- expect(
72
- AuthHelper.isAuthenticated({
73
- path: "/protected",
74
- token: mockToken,
75
- })
76
- ).toBe(true);
77
- });
78
-
79
- test("returns false for invalid token", () => {
80
- const pastTime = Math.floor(Date.now() / 1000) - 3600;
81
- const payload = { exp: pastTime };
82
- const encodedPayload = Buffer.from(JSON.stringify(payload)).toString(
83
- "base64"
84
- );
85
- const mockToken = `header.${encodedPayload}.signature`;
86
-
87
- expect(
88
- AuthHelper.isAuthenticated({
89
- path: "/protected",
90
- token: mockToken,
91
- })
92
- ).toBe(false);
93
- });
94
-
95
- test("returns false for protected path without token", () => {
96
- expect(
97
- AuthHelper.isAuthenticated({
98
- path: "/protected",
99
- })
100
- ).toBe(false);
101
- });
102
- });
103
-
104
- describe("getGoogleURL", () => {
105
- test("returns correct URL with valid params", () => {
106
- const params = {
107
- gateway_url: "https://gateway.example.com",
108
- gateway_project: "project1",
109
- gateway_user_pool: "pool1",
110
- auth_callback_url: "https://app.example.com/callback",
111
- };
112
-
113
- const expectedURL =
114
- "https://gateway.example.com/users/auth/project1/pool1/google?return_to=https://app.example.com/callback";
115
-
116
- expect(AuthHelper.getGoogleURL(params)).toBe(expectedURL);
117
- });
118
-
119
- test("throws error when any of the required params is missing or blank - auth_callback_url", () => {
120
- const params = {
121
- gateway_url: "https://gateway.example.com",
122
- gateway_project: "project1",
123
- gateway_user_pool: "pool1",
124
- auth_callback_url: "",
125
- };
126
-
127
- expect(() => {
128
- AuthHelper.getGoogleURL(params);
129
- }).toThrow("Invalid ENVs for authentication configuration");
130
- });
131
-
132
- test("throws error when any of the required params is missing or blank - gateway_user_pool", () => {
133
- const params = {
134
- gateway_url: "https://gateway.example.com",
135
- gateway_project: "project1",
136
- auth_callback_url: "https://app.example.com/callback",
137
- };
138
-
139
- expect(() => {
140
- AuthHelper.getGoogleURL(params);
141
- }).toThrow("Invalid ENVs for authentication configuration");
142
- });
143
-
144
- test("throws error when any of the required params is missing or blank - gateway_project", () => {
145
- const params = {
146
- gateway_url: "https://gateway.example.com",
147
- gateway_project: "",
148
- gateway_user_pool: "pool1",
149
- auth_callback_url: "https://app.example.com/callback",
150
- };
151
-
152
- expect(() => {
153
- AuthHelper.getGoogleURL(params);
154
- }).toThrow("Invalid ENVs for authentication configuration");
155
- });
156
-
157
- test("throws error when any of the required params is missing or blank - gateway_url", () => {
158
- const params = {
159
- gateway_project: "project1",
160
- gateway_user_pool: "pool1",
161
- auth_callback_url: "https://app.example.com/callback",
162
- };
163
-
164
- expect(() => {
165
- AuthHelper.getGoogleURL(params);
166
- }).toThrow("Invalid ENVs for authentication configuration");
167
- });
168
- });
169
- });
@@ -1,357 +0,0 @@
1
- import FormBuilder from "../../helpers/FormBuilder";
2
-
3
- describe("FormBuilder", () => {
4
- function normalizeHTML(html) {
5
- return html.replace(/>\s+</g, "><").replace(/\s+/g, " ").trim();
6
- }
7
-
8
- describe("field", () => {
9
- test("renders a text input group", () => {
10
- const form = new FormBuilder({
11
- resource: {
12
- title: "Test content",
13
- },
14
- });
15
-
16
- const result = form.field("resource.title");
17
-
18
- expect(normalizeHTML(result)).toEqual(
19
- normalizeHTML(`
20
- <div class="mb-4">
21
- <label for="f_resource_title">Title</label>
22
- <input type="text" name="resource[title]" value="Test content" id="f_resource_title" />
23
- </div>`)
24
- );
25
- });
26
-
27
- test("renders a text input group with errors", () => {
28
- const form = new FormBuilder(
29
- {
30
- resource: {
31
- title: "Test content",
32
- },
33
- },
34
- {
35
- resource: {
36
- title: "Can't be blank",
37
- },
38
- }
39
- );
40
-
41
- const result = form.field("resource.title");
42
-
43
- expect(normalizeHTML(result)).toEqual(
44
- normalizeHTML(`
45
- <div class="mb-4 has-error">
46
- <label for="f_resource_title">Title</label>
47
- <input type="text" name="resource[title]" value="Test content" id="f_resource_title" />
48
- <span class="text-red-600">Can't be blank</span>
49
- </div>`)
50
- );
51
- });
52
-
53
- test("renders an email input group", () => {
54
- const form = new FormBuilder({
55
- resource: {
56
- email: "john@example.com",
57
- },
58
- });
59
-
60
- const result = form.field("resource.email", { label: "Electronic mail" });
61
-
62
- expect(normalizeHTML(result)).toEqual(
63
- normalizeHTML(
64
- `<div class="mb-4">
65
- <label for="f_resource_email">Electronic mail</label>
66
- <input type="text" name="resource[email]" value="john@example.com" id="f_resource_email" />
67
- </div>`
68
- )
69
- );
70
- });
71
-
72
- test("renders a textarea group", () => {
73
- const form = new FormBuilder({
74
- resource: {
75
- description: "Lorem ipsum dolor...",
76
- },
77
- });
78
-
79
- const result = form.field("resource.description", { as: "textarea" });
80
-
81
- expect(normalizeHTML(result)).toEqual(
82
- normalizeHTML(
83
- `<div class="mb-4">
84
- <label for="f_resource_description">Description</label>
85
- <textarea name="resource[description]" id="f_resource_description">Lorem ipsum dolor...</textarea>
86
- </div>`
87
- )
88
- );
89
- });
90
-
91
- test("renders a single checkbox group with default value", () => {
92
- const form = new FormBuilder({
93
- resource: {
94
- active: "yes",
95
- },
96
- });
97
-
98
- const result = form.field("resource.description", {
99
- as: "checkbox",
100
- value: "yes",
101
- default_value: "no",
102
- });
103
-
104
- expect(normalizeHTML(result)).toEqual(
105
- normalizeHTML(
106
- `<div class="mb-4">
107
- <div class="checkbox-wrapper">
108
- <input type="hidden" name="resource[description]" value="no" />
109
- <input type="checkbox" value="yes" id="f_resource_description" name="resource[description]" />
110
- <label for="f_resource_description">Description</label>
111
- </div>
112
- </div>`
113
- )
114
- );
115
- });
116
-
117
- test("renders a single checkbox group without default value", () => {
118
- const form = new FormBuilder({
119
- resource: {
120
- active: "yes",
121
- },
122
- });
123
-
124
- const result = form.field("resource.active", {
125
- as: "checkbox",
126
- value: "yes",
127
- });
128
-
129
- expect(normalizeHTML(result)).toEqual(
130
- normalizeHTML(
131
- `<div class="mb-4">
132
- <div class="checkbox-wrapper">
133
- <input type="checkbox" value="yes" id="f_resource_active" name="resource[active]" checked="checked" />
134
- <label for="f_resource_active">Active</label>
135
- </div>
136
- </div>`
137
- )
138
- );
139
- });
140
-
141
- test("renders a select group", () => {
142
- const form = new FormBuilder({
143
- resource: {
144
- layout: "default",
145
- },
146
- });
147
-
148
- const result = form.field("resource.layout", {
149
- as: "select",
150
- options: [
151
- ["default", "Default"],
152
- ["headless", "Headless"],
153
- ],
154
- });
155
-
156
- expect(normalizeHTML(result)).toEqual(
157
- normalizeHTML(
158
- `<div class="mb-4">
159
- <label for="f_resource_layout">Layout</label>
160
- <select name="resource[layout]" id="f_resource_layout">
161
- <option value="">Please select...</option>
162
- <option value="default" selected="selected">Default</option>
163
- <option value="headless">Headless</option>
164
- </select>
165
- </div>`
166
- )
167
- );
168
- });
169
-
170
- test("renders a readio group", () => {
171
- const form = new FormBuilder({
172
- resource: {
173
- color: "red",
174
- },
175
- });
176
-
177
- const result = form.field("resource.color", {
178
- as: "radio_group",
179
- options: [
180
- ["red", "Red"],
181
- ["blue", "Blue"],
182
- ["green", "Green"],
183
- ],
184
- });
185
-
186
- expect(normalizeHTML(result)).toEqual(
187
- normalizeHTML(
188
- `<div class="mb-4">
189
- <label for="f_resource_color">Color</label>
190
- <div id="f_resource_color" name="resource[color]" class="radio-group">
191
- <label ><input type="radio" name="resource[color]" value="red" checked="checked" /> Red</label>
192
- <label ><input type="radio" name="resource[color]" value="blue" /> Blue</label>
193
- <label ><input type="radio" name="resource[color]" value="green" /> Green</label>
194
- </div>
195
- </div>`
196
- )
197
- );
198
- });
199
-
200
- test("renders a checkbox group", () => {
201
- const form = new FormBuilder({
202
- resource: {
203
- color: "red",
204
- },
205
- });
206
-
207
- const result = form.field("resource.color", {
208
- as: "checkbox_group",
209
- options: [
210
- ["red", "Red"],
211
- ["blue", "Blue"],
212
- ["green", "Green"],
213
- ],
214
- });
215
-
216
- expect(normalizeHTML(result)).toEqual(
217
- normalizeHTML(
218
- `<div class="mb-4">
219
- <label for="f_resource_color">Color</label>
220
- <div id="f_resource_color" class="checkbox-group">
221
- <label ><input type="checkbox" name="resource[color][]" value="red" checked="checked" /> Red</label>
222
- <label ><input type="checkbox" name="resource[color][]" value="blue" /> Blue</label>
223
- <label ><input type="checkbox" name="resource[color][]" value="green" /> Green</label>
224
- <input type="hidden" name="resource[color][]" value="" />
225
- </div>
226
- </div>`
227
- )
228
- );
229
- });
230
-
231
- test("renders a button input group", () => {
232
- const form = new FormBuilder({
233
- resource: {
234
- cta: {
235
- label: "CTA!",
236
- link: "#",
237
- },
238
- },
239
- });
240
-
241
- const result = form.field("resource.cta", {
242
- as: "button",
243
- });
244
-
245
- expect(normalizeHTML(result)).toEqual(
246
- normalizeHTML(`
247
- <fieldset class="button-group">
248
- <legend >Cta</legend>
249
- <div class="mb-4">
250
- <label for="f_resource_cta_label">Label</label>
251
- <input type="text" name="resource[cta][label]" value="CTA!" id="f_resource_cta_label" class="no-margin" />
252
- </div>
253
- <div class="mb-4">
254
- <label for="f_resource_cta_link">Link</label>
255
- <input type="text" name="resource[cta][link]" value="#" id="f_resource_cta_link" class="no-margin" />
256
- </div>
257
- <div class="mb-4">
258
- <label for="f_resource_cta_id">ID</label>
259
- <input type="text" name="resource[cta][id]" value="" id="f_resource_cta_id" class="no-margin" />
260
- </div>
261
- <div class="mb-4">
262
- <label for="f_resource_cta_type">Type</label>
263
- <select name="resource[cta][type]" id="f_resource_cta_type" class="no-margin">
264
- <option value="">Please select...</option>
265
- <option value="primary">Primary</option>
266
- <option value="secondary">Secondary</option>
267
- <option value="text">Text</option>
268
- </select>
269
- </div>
270
- <div class="mb-4">
271
- <label for="f_resource_cta_target">Target</label>
272
- <select name="resource[cta][target]" id="f_resource_cta_target" class="no-margin">
273
- <option value="">Please select...</option>
274
- <option value="_self">Self</option>
275
- <option value="_blank">New Tab</option>
276
- </select>
277
- </div>
278
- <div class="mb-4">
279
- <label for="f_resource_cta_rel">Follow Link</label>
280
- <select name="resource[cta][rel]" id="f_resource_cta_rel" class="no-margin">
281
- <option value="">Please select...</option>
282
- <option value="follow">Follow</option>
283
- <option value="nofollow">No Follow</option>
284
- </select>
285
- </div>
286
- </fieldset>`)
287
- );
288
- });
289
-
290
- test("renders a link input group", () => {
291
- const form = new FormBuilder({
292
- resource: {
293
- cta: {
294
- label: "CTA!",
295
- link: "#",
296
- },
297
- },
298
- });
299
-
300
- const result = form.field("resource.cta", {
301
- as: "link",
302
- });
303
-
304
- expect(normalizeHTML(result)).toEqual(
305
- normalizeHTML(
306
- `
307
- <fieldset class="link-group">
308
- <legend >Cta</legend>
309
- <div class="mb-4">
310
- <label for="f_resource_cta_label">Label</label>
311
- <input type="text" name="resource[cta][label]" value="CTA!" id="f_resource_cta_label" class="no-margin" />
312
- </div>
313
- <div class="mb-4">
314
- <label for="f_resource_cta_link">Link</label>
315
- <input type="text" name="resource[cta][link]" value="#" id="f_resource_cta_link" class="no-margin" />
316
- </div>
317
- <div class="mb-4">
318
- <label for="f_resource_cta_id">ID</label>
319
- <input type="text" name="resource[cta][id]" value="" id="f_resource_cta_id" class="no-margin" />
320
- </div>
321
- <div class="mb-4">
322
- <label for="f_resource_cta_className">CSS Class</label>
323
- <input type="text" name="resource[cta][className]" value="" id="f_resource_cta_className" class="no-margin" />
324
- </div>
325
- <div class="mb-4">
326
- <label for="f_resource_cta_target">Target</label>
327
- <select name="resource[cta][target]" id="f_resource_cta_target" class="no-margin">
328
- <option value="">Please select...</option>
329
- <option value="_self">Self</option>
330
- <option value="_blank">New Tab</option>
331
- </select>
332
- </div>
333
- <div class="mb-4">
334
- <label for="f_resource_cta_rel">Follow Link</label>
335
- <select name="resource[cta][rel]" id="f_resource_cta_rel" class="no-margin">
336
- <option value="">Please select...</option>
337
- <option value="follow">Follow</option>
338
- <option value="nofollow">No Follow</option>
339
- </select>
340
- </div>
341
- </fieldset>`
342
- )
343
- );
344
- });
345
- });
346
-
347
- describe("submit", () => {
348
- test("renders submit button with custom class", () => {
349
- const form = new FormBuilder();
350
- const result = form.submit("Save", { class: "btn-primary" });
351
-
352
- expect(normalizeHTML(result)).toEqual(
353
- '<button type="submit" class="btn-primary">Save</button>'
354
- );
355
- });
356
- });
357
- });
@@ -1,44 +0,0 @@
1
- import HTMLBuilder from "../../helpers/HTMLBuilder";
2
-
3
- describe("HTMLBuilder", () => {
4
- function normalizeHTML(html) {
5
- return html.replace(/>\s+</g, "><").replace(/\s+/g, " ").trim();
6
- }
7
-
8
- describe("tag", () => {
9
- test("renders a self closing tag", () => {
10
- const builder = new HTMLBuilder();
11
-
12
- const result = builder.tag("img", null, { src: "/some-image.jpg" });
13
-
14
- expect(normalizeHTML(result)).toEqual(
15
- normalizeHTML('<img src="/some-image.jpg" />')
16
- );
17
- });
18
-
19
- test("renders a label tag", () => {
20
- const builder = new HTMLBuilder();
21
-
22
- const result = builder.tag("label", "Heelo", { for: "some-input-id" });
23
-
24
- expect(normalizeHTML(result)).toEqual(
25
- normalizeHTML('<label for="some-input-id">Heelo</label>')
26
- );
27
- });
28
-
29
- test("renders a textarea tag", () => {
30
- const builder = new HTMLBuilder();
31
-
32
- const result = builder.tag(
33
- "textarea",
34
- undefined,
35
- { id: "some-input-id", value: "Text?" },
36
- { nonVoid: true }
37
- );
38
-
39
- expect(normalizeHTML(result)).toEqual(
40
- normalizeHTML('<textarea id="some-input-id" value="Text?"></textarea>')
41
- );
42
- });
43
- });
44
- });
@@ -1,75 +0,0 @@
1
- import Inflector from "../../helpers/Inflector";
2
-
3
- describe("Inflector", () => {
4
- describe("capitalize", () => {
5
- test("capitalizes first letter", () => {
6
- expect(Inflector.capitalize("hello")).toBe("Hello");
7
- });
8
-
9
- test("keeps rest of string unchanged", () => {
10
- expect(Inflector.capitalize("hELLo")).toBe("HELLo");
11
- });
12
-
13
- test("works with single letter", () => {
14
- expect(Inflector.capitalize("h")).toBe("H");
15
- });
16
-
17
- test("handles already capitalized strings", () => {
18
- expect(Inflector.capitalize("Hello")).toBe("Hello");
19
- });
20
- });
21
-
22
- describe("downcase", () => {
23
- test("converts string to lowercase", () => {
24
- expect(Inflector.downcase("HELLO")).toBe("hello");
25
- });
26
-
27
- test("keeps lowercase strings unchanged", () => {
28
- expect(Inflector.downcase("hello")).toBe("hello");
29
- });
30
-
31
- test("handles mixed case", () => {
32
- expect(Inflector.downcase("HeLLo")).toBe("hello");
33
- });
34
-
35
- test("works with single letter", () => {
36
- expect(Inflector.downcase("H")).toBe("h");
37
- });
38
- });
39
-
40
- describe("humanize", () => {
41
- test("replaces underscores with spaces", () => {
42
- expect(Inflector.humanize("hello_world")).toBe("hello world");
43
- });
44
-
45
- test("replaces multiple underscores with single space", () => {
46
- expect(Inflector.humanize("hello__world")).toBe("hello world");
47
- });
48
-
49
- test("replaces dashes with spaces", () => {
50
- expect(Inflector.humanize("hello-world")).toBe("hello world");
51
- });
52
-
53
- test("replaces multiple dashes with single space", () => {
54
- expect(Inflector.humanize("hello--world")).toBe("hello world");
55
- });
56
-
57
- test("handles mixed dashes and underscores", () => {
58
- expect(Inflector.humanize("hello_beautiful-world")).toBe(
59
- "hello beautiful world"
60
- );
61
- });
62
-
63
- test("handles string with no replacements needed", () => {
64
- expect(Inflector.humanize("hello world")).toBe("hello world");
65
- });
66
-
67
- test("handles empty string", () => {
68
- expect(Inflector.humanize("")).toBe("");
69
- });
70
-
71
- test("handles string with only separators", () => {
72
- expect(Inflector.humanize("___---___")).toBe(" ");
73
- });
74
- });
75
- });