@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,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
- });