@cccsaurora/howler-ui 3.1.0-dev.1655 → 3.1.0-dev.1657

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 (354) hide show
  1. package/api/action/execute.test.d.ts +1 -0
  2. package/api/action/execute.test.js +38 -0
  3. package/api/action/index.test.d.ts +1 -0
  4. package/api/action/index.test.js +59 -0
  5. package/api/action/operations.test.d.ts +1 -0
  6. package/api/action/operations.test.js +23 -0
  7. package/api/analytic/comments/index.test.d.ts +1 -0
  8. package/api/analytic/comments/index.test.js +43 -0
  9. package/api/analytic/comments/react.test.d.ts +1 -0
  10. package/api/analytic/comments/react.test.js +27 -0
  11. package/api/analytic/favourite.test.d.ts +1 -0
  12. package/api/analytic/favourite.test.js +20 -0
  13. package/api/analytic/index.test.d.ts +1 -0
  14. package/api/analytic/index.test.js +54 -0
  15. package/api/analytic/notebooks/index.test.d.ts +1 -0
  16. package/api/analytic/notebooks/index.test.js +31 -0
  17. package/api/analytic/owner.test.d.ts +1 -0
  18. package/api/analytic/owner.test.js +25 -0
  19. package/api/auth/apikey.test.d.ts +1 -0
  20. package/api/auth/apikey.test.js +34 -0
  21. package/api/auth/index.test.d.ts +1 -0
  22. package/api/auth/index.test.js +21 -0
  23. package/api/auth/login.test.d.ts +1 -0
  24. package/api/auth/login.test.js +53 -0
  25. package/api/configs/index.test.d.ts +1 -0
  26. package/api/configs/index.test.js +22 -0
  27. package/api/dossier/index.test.d.ts +1 -0
  28. package/api/dossier/index.test.js +57 -0
  29. package/api/help.test.d.ts +1 -0
  30. package/api/help.test.js +25 -0
  31. package/api/hit/assign.test.d.ts +1 -0
  32. package/api/hit/assign.test.js +22 -0
  33. package/api/hit/comments/index.test.d.ts +1 -0
  34. package/api/hit/comments/index.test.js +47 -0
  35. package/api/hit/comments/react.test.d.ts +1 -0
  36. package/api/hit/comments/react.test.js +27 -0
  37. package/api/hit/index.test.d.ts +1 -0
  38. package/api/hit/index.test.js +49 -0
  39. package/api/hit/labels.test.d.ts +1 -0
  40. package/api/hit/labels.test.js +29 -0
  41. package/api/hit/overwrite.test.d.ts +1 -0
  42. package/api/hit/overwrite.test.js +23 -0
  43. package/api/hit/transition.test.d.ts +1 -0
  44. package/api/hit/transition.test.js +24 -0
  45. package/api/index.test.d.ts +1 -0
  46. package/api/index.test.js +137 -0
  47. package/api/notebook/environments.test.d.ts +1 -0
  48. package/api/notebook/environments.test.js +22 -0
  49. package/api/notebook/index.test.d.ts +1 -0
  50. package/api/notebook/index.test.js +28 -0
  51. package/api/overview/index.test.d.ts +1 -0
  52. package/api/overview/index.test.js +42 -0
  53. package/api/search/fields/index.test.d.ts +1 -0
  54. package/api/search/fields/index.test.js +31 -0
  55. package/api/search/grouped/index.test.d.ts +1 -0
  56. package/api/search/grouped/index.test.js +18 -0
  57. package/api/search/grouped/user.test.d.ts +1 -0
  58. package/api/search/grouped/user.test.js +33 -0
  59. package/api/search/index.test.d.ts +1 -0
  60. package/api/search/index.test.js +41 -0
  61. package/api/search/user.test.d.ts +1 -0
  62. package/api/search/user.test.js +41 -0
  63. package/api/socket/index.test.d.ts +1 -0
  64. package/api/socket/index.test.js +15 -0
  65. package/api/template/index.test.d.ts +1 -0
  66. package/api/template/index.test.js +43 -0
  67. package/api/user/avatar/index.test.d.ts +1 -0
  68. package/api/user/avatar/index.test.js +22 -0
  69. package/api/user/groups.test.d.ts +1 -0
  70. package/api/user/groups.test.js +22 -0
  71. package/api/user/index.test.d.ts +1 -0
  72. package/api/user/index.test.js +37 -0
  73. package/api/user/whoami.test.d.ts +1 -0
  74. package/api/user/whoami.test.js +26 -0
  75. package/api/utils/createPermissionsApi.test.d.ts +1 -0
  76. package/api/utils/createPermissionsApi.test.js +30 -0
  77. package/api/v2/case/index.test.d.ts +1 -0
  78. package/api/v2/case/index.test.js +57 -0
  79. package/api/v2/case/items.test.d.ts +1 -0
  80. package/api/v2/case/items.test.js +37 -0
  81. package/api/v2/case/rules.test.d.ts +1 -0
  82. package/api/v2/case/rules.test.js +33 -0
  83. package/api/v2/fuzzy.test.d.ts +1 -0
  84. package/api/v2/fuzzy.test.js +30 -0
  85. package/api/v2/index.test.d.ts +1 -0
  86. package/api/v2/index.test.js +13 -0
  87. package/api/v2/search/index.test.d.ts +1 -0
  88. package/api/v2/search/index.test.js +42 -0
  89. package/api/view/index.test.d.ts +1 -0
  90. package/api/view/index.test.js +54 -0
  91. package/branding/AppBrand.test.d.ts +1 -0
  92. package/branding/AppBrand.test.js +29 -0
  93. package/components/app/drawers/ApiKeyDrawer.test.d.ts +1 -0
  94. package/components/app/drawers/ApiKeyDrawer.test.js +119 -0
  95. package/components/app/drawers/AssignUserDrawer.test.d.ts +1 -0
  96. package/components/app/drawers/AssignUserDrawer.test.js +75 -0
  97. package/components/app/hooks/useTitle.test.d.ts +1 -0
  98. package/components/app/hooks/useTitle.test.js +103 -0
  99. package/components/app/providers/AnalyticProvider.test.d.ts +1 -0
  100. package/components/app/providers/AnalyticProvider.test.js +58 -0
  101. package/components/app/providers/AppBarProvider.test.d.ts +1 -0
  102. package/components/app/providers/AppBarProvider.test.js +23 -0
  103. package/components/app/providers/AppDrawerProvider.test.d.ts +1 -0
  104. package/components/app/providers/AppDrawerProvider.test.js +42 -0
  105. package/components/app/providers/AvatarProvider.test.d.ts +1 -0
  106. package/components/app/providers/AvatarProvider.test.js +50 -0
  107. package/components/app/providers/CustomPluginProvider.test.d.ts +1 -0
  108. package/components/app/providers/CustomPluginProvider.test.js +29 -0
  109. package/components/app/providers/FavouritesProvider.test.d.ts +1 -0
  110. package/components/app/providers/FavouritesProvider.test.js +115 -0
  111. package/components/app/providers/FieldProvider.test.d.ts +1 -0
  112. package/components/app/providers/FieldProvider.test.js +28 -0
  113. package/components/app/providers/LocalStorageProvider.test.d.ts +1 -0
  114. package/components/app/providers/LocalStorageProvider.test.js +42 -0
  115. package/components/app/providers/ModalProvider.test.d.ts +1 -0
  116. package/components/app/providers/ModalProvider.test.js +35 -0
  117. package/components/app/providers/OverviewProvider.test.d.ts +1 -0
  118. package/components/app/providers/OverviewProvider.test.js +62 -0
  119. package/components/app/providers/RecordProvider.test.d.ts +1 -0
  120. package/components/app/providers/RecordProvider.test.js +66 -0
  121. package/components/app/providers/contextUtils.test.d.ts +1 -0
  122. package/components/app/providers/contextUtils.test.js +8 -0
  123. package/components/elements/Comment.test.d.ts +1 -0
  124. package/components/elements/Comment.test.js +109 -0
  125. package/components/elements/EditRow.test.d.ts +1 -0
  126. package/components/elements/EditRow.test.js +88 -0
  127. package/components/elements/MarkdownEditor.test.d.ts +1 -0
  128. package/components/elements/MarkdownEditor.test.js +75 -0
  129. package/components/elements/ObjectDetails.test.d.ts +1 -0
  130. package/components/elements/ObjectDetails.test.js +70 -0
  131. package/components/elements/PluginChip.d.ts +3 -2
  132. package/components/elements/PluginChip.js +2 -2
  133. package/components/elements/PluginChip.test.d.ts +1 -0
  134. package/components/elements/PluginChip.test.js +30 -0
  135. package/components/elements/ThemedEditor.test.d.ts +1 -0
  136. package/components/elements/ThemedEditor.test.js +66 -0
  137. package/components/elements/addons/layout/FlexPort.test.d.ts +1 -0
  138. package/components/elements/addons/layout/FlexPort.test.js +34 -0
  139. package/components/elements/addons/lists/TuiListBase.test.d.ts +1 -0
  140. package/components/elements/addons/lists/TuiListBase.test.js +44 -0
  141. package/components/elements/addons/lists/TuiListProvider.test.d.ts +1 -0
  142. package/components/elements/addons/lists/TuiListProvider.test.js +50 -0
  143. package/components/elements/addons/search/phrase/Phrase.test.d.ts +1 -0
  144. package/components/elements/addons/search/phrase/Phrase.test.js +77 -0
  145. package/components/elements/addons/search/phrase/PhraseLexer.test.d.ts +1 -0
  146. package/components/elements/addons/search/phrase/PhraseLexer.test.js +92 -0
  147. package/components/elements/addons/search/phrase/index.test.d.ts +1 -0
  148. package/components/elements/addons/search/phrase/index.test.js +20 -0
  149. package/components/elements/case/CaseCard.test.d.ts +1 -0
  150. package/components/elements/case/CaseCard.test.js +107 -0
  151. package/components/elements/display/ClassificationChip.test.d.ts +1 -0
  152. package/components/elements/display/ClassificationChip.test.js +60 -0
  153. package/components/elements/display/HandlebarsMarkdown.test.d.ts +1 -0
  154. package/components/elements/display/HandlebarsMarkdown.test.js +41 -0
  155. package/components/elements/display/HowlerAvatar.test.d.ts +1 -0
  156. package/components/elements/display/HowlerAvatar.test.js +54 -0
  157. package/components/elements/display/ItemManager.test.d.ts +1 -0
  158. package/components/elements/display/ItemManager.test.js +68 -0
  159. package/components/elements/display/UserPageWrapper.test.d.ts +1 -0
  160. package/components/elements/display/UserPageWrapper.test.js +22 -0
  161. package/components/elements/display/handlebars/helpers.test.d.ts +1 -0
  162. package/components/elements/display/handlebars/helpers.test.js +104 -0
  163. package/components/elements/display/icons/SocketBadge.test.d.ts +1 -0
  164. package/components/elements/display/icons/SocketBadge.test.js +49 -0
  165. package/components/elements/display/markdownPlugins/tabs.test.d.ts +1 -0
  166. package/components/elements/display/markdownPlugins/tabs.test.js +50 -0
  167. package/components/elements/hit/HitActions.js +1 -1
  168. package/components/elements/hit/HitActions.test.d.ts +1 -0
  169. package/components/elements/hit/HitActions.test.js +166 -0
  170. package/components/elements/hit/HitLabels.test.js +34 -3
  171. package/components/elements/hit/HitNotebooks.test.d.ts +1 -0
  172. package/components/elements/hit/HitNotebooks.test.js +138 -0
  173. package/components/elements/hit/HitSummary.test.d.ts +1 -0
  174. package/components/elements/hit/HitSummary.test.js +188 -0
  175. package/components/elements/hit/actions/ButtonActions.test.d.ts +1 -0
  176. package/components/elements/hit/actions/ButtonActions.test.js +51 -0
  177. package/components/elements/hit/actions/DropdownActions.test.d.ts +1 -0
  178. package/components/elements/hit/actions/DropdownActions.test.js +60 -0
  179. package/components/elements/hit/grid/AddColumnModal.test.d.ts +1 -0
  180. package/components/elements/hit/grid/AddColumnModal.test.js +88 -0
  181. package/components/elements/hit/grid/RecordTable.test.d.ts +1 -0
  182. package/components/elements/hit/grid/RecordTable.test.js +99 -0
  183. package/components/elements/record/RecordComments.test.d.ts +1 -0
  184. package/components/elements/record/RecordComments.test.js +151 -0
  185. package/components/elements/record/RecordContextMenu.js +3 -3
  186. package/components/elements/record/RecordRelated.test.d.ts +1 -0
  187. package/components/elements/record/RecordRelated.test.js +77 -0
  188. package/components/elements/record/RecordWorklog.test.d.ts +1 -0
  189. package/components/elements/record/RecordWorklog.test.js +77 -0
  190. package/components/hooks/useHitActions.test.d.ts +1 -0
  191. package/components/hooks/useHitActions.test.js +189 -0
  192. package/components/hooks/useMyApi.test.d.ts +1 -0
  193. package/components/hooks/useMyApi.test.js +31 -0
  194. package/components/hooks/useMyChart.test.d.ts +1 -0
  195. package/components/hooks/useMyChart.test.js +62 -0
  196. package/components/hooks/useMySearch.test.d.ts +1 -0
  197. package/components/hooks/useMySearch.test.js +96 -0
  198. package/components/hooks/useMySnackbar.test.d.ts +1 -0
  199. package/components/hooks/useMySnackbar.test.js +36 -0
  200. package/components/hooks/useMyUserFunctions.test.d.ts +1 -0
  201. package/components/hooks/useMyUserFunctions.test.js +142 -0
  202. package/components/hooks/useRecordSelection.test.d.ts +1 -0
  203. package/components/hooks/useRecordSelection.test.js +102 -0
  204. package/components/logins/Login.test.d.ts +1 -0
  205. package/components/logins/Login.test.js +67 -0
  206. package/components/logins/hooks/useLogin.test.d.ts +1 -0
  207. package/components/logins/hooks/useLogin.test.js +142 -0
  208. package/components/routes/action/shared/OperationEntry.test.d.ts +1 -0
  209. package/components/routes/action/shared/OperationEntry.test.js +80 -0
  210. package/components/routes/action/shared/OperationStep.test.d.ts +1 -0
  211. package/components/routes/action/shared/OperationStep.test.js +84 -0
  212. package/components/routes/action/useMyActionFunctions.test.d.ts +1 -0
  213. package/components/routes/action/useMyActionFunctions.test.js +217 -0
  214. package/components/routes/action/view/ActionDetails.test.d.ts +1 -0
  215. package/components/routes/action/view/ActionDetails.test.js +170 -0
  216. package/components/routes/action/view/ActionSearch.test.d.ts +1 -0
  217. package/components/routes/action/view/ActionSearch.test.js +185 -0
  218. package/components/routes/action/view/Integrations.test.d.ts +1 -0
  219. package/components/routes/action/view/Integrations.test.js +62 -0
  220. package/components/routes/admin/users/UserEditor.test.d.ts +1 -0
  221. package/components/routes/admin/users/UserEditor.test.js +74 -0
  222. package/components/routes/admin/users/UserSearch.test.d.ts +1 -0
  223. package/components/routes/admin/users/UserSearch.test.js +146 -0
  224. package/components/routes/advanced/QueryBuilder.test.d.ts +1 -0
  225. package/components/routes/advanced/QueryBuilder.test.js +185 -0
  226. package/components/routes/advanced/QueryEditor.test.d.ts +1 -0
  227. package/components/routes/advanced/QueryEditor.test.js +130 -0
  228. package/components/routes/advanced/completionProviders.test.d.ts +1 -0
  229. package/components/routes/advanced/completionProviders.test.js +144 -0
  230. package/components/routes/analytics/AnalyticComments.test.d.ts +1 -0
  231. package/components/routes/analytics/AnalyticComments.test.js +156 -0
  232. package/components/routes/analytics/AnalyticDetails.test.d.ts +1 -0
  233. package/components/routes/analytics/AnalyticDetails.test.js +161 -0
  234. package/components/routes/analytics/AnalyticNotebooks.test.d.ts +1 -0
  235. package/components/routes/analytics/AnalyticNotebooks.test.js +112 -0
  236. package/components/routes/analytics/AnalyticOverview.test.d.ts +1 -0
  237. package/components/routes/analytics/AnalyticOverview.test.js +97 -0
  238. package/components/routes/analytics/AnalyticOverviews.test.d.ts +1 -0
  239. package/components/routes/analytics/AnalyticOverviews.test.js +70 -0
  240. package/components/routes/analytics/AnalyticSearch.test.d.ts +1 -0
  241. package/components/routes/analytics/AnalyticSearch.test.js +167 -0
  242. package/components/routes/analytics/AnalyticTemplates.test.d.ts +1 -0
  243. package/components/routes/analytics/AnalyticTemplates.test.js +63 -0
  244. package/components/routes/analytics/TriageSettings.test.d.ts +1 -0
  245. package/components/routes/analytics/TriageSettings.test.js +89 -0
  246. package/components/routes/analytics/widgets/Assessment.test.d.ts +1 -0
  247. package/components/routes/analytics/widgets/Assessment.test.js +45 -0
  248. package/components/routes/analytics/widgets/Created.test.d.ts +1 -0
  249. package/components/routes/analytics/widgets/Created.test.js +41 -0
  250. package/components/routes/analytics/widgets/DetectionStatus.test.d.ts +1 -0
  251. package/components/routes/analytics/widgets/DetectionStatus.test.js +21 -0
  252. package/components/routes/analytics/widgets/Stacked.test.d.ts +1 -0
  253. package/components/routes/analytics/widgets/Stacked.test.js +51 -0
  254. package/components/routes/cases/Cases.test.d.ts +1 -0
  255. package/components/routes/cases/Cases.test.js +132 -0
  256. package/components/routes/dossiers/Dossiers.test.d.ts +1 -0
  257. package/components/routes/dossiers/Dossiers.test.js +150 -0
  258. package/components/routes/help/ActionDocumentation.test.d.ts +1 -0
  259. package/components/routes/help/ActionDocumentation.test.js +58 -0
  260. package/components/routes/help/ActionIntroductionDocumentation.test.d.ts +1 -0
  261. package/components/routes/help/ActionIntroductionDocumentation.test.js +68 -0
  262. package/components/routes/help/ApiDocumentation.test.d.ts +1 -0
  263. package/components/routes/help/ApiDocumentation.test.js +79 -0
  264. package/components/routes/help/AuthDocumentation.test.d.ts +1 -0
  265. package/components/routes/help/AuthDocumentation.test.js +34 -0
  266. package/components/routes/help/ClientDocumentation.test.d.ts +1 -0
  267. package/components/routes/help/ClientDocumentation.test.js +34 -0
  268. package/components/routes/help/Help.test.d.ts +1 -0
  269. package/components/routes/help/Help.test.js +57 -0
  270. package/components/routes/help/HitBannerDocumentation.test.d.ts +1 -0
  271. package/components/routes/help/HitBannerDocumentation.test.js +25 -0
  272. package/components/routes/help/HitDocumentation.test.d.ts +1 -0
  273. package/components/routes/help/HitDocumentation.test.js +53 -0
  274. package/components/routes/help/HitLabelsDocumentation.test.d.ts +1 -0
  275. package/components/routes/help/HitLabelsDocumentation.test.js +17 -0
  276. package/components/routes/help/HitLinksDocumentation.test.d.ts +1 -0
  277. package/components/routes/help/HitLinksDocumentation.test.js +27 -0
  278. package/components/routes/help/HitSchemaDocumentation.test.d.ts +1 -0
  279. package/components/routes/help/HitSchemaDocumentation.test.js +67 -0
  280. package/components/routes/help/NotebookDocumentation.test.d.ts +1 -0
  281. package/components/routes/help/NotebookDocumentation.test.js +34 -0
  282. package/components/routes/help/OverviewDocumentation.test.d.ts +1 -0
  283. package/components/routes/help/OverviewDocumentation.test.js +26 -0
  284. package/components/routes/help/RetentionDocumentation.test.d.ts +1 -0
  285. package/components/routes/help/RetentionDocumentation.test.js +61 -0
  286. package/components/routes/help/SearchDocumentation.test.d.ts +1 -0
  287. package/components/routes/help/SearchDocumentation.test.js +65 -0
  288. package/components/routes/help/TemplateDocumentation.test.d.ts +1 -0
  289. package/components/routes/help/TemplateDocumentation.test.js +58 -0
  290. package/components/routes/help/ViewDocumentation.test.d.ts +1 -0
  291. package/components/routes/help/ViewDocumentation.test.js +34 -0
  292. package/components/routes/help/components/HelpTabs.test.d.ts +1 -0
  293. package/components/routes/help/components/HelpTabs.test.js +26 -0
  294. package/components/routes/hits/search/InformationPane.test.d.ts +1 -0
  295. package/components/routes/hits/search/InformationPane.test.js +251 -0
  296. package/components/routes/hits/search/RecordBrowser.test.js +179 -51
  297. package/components/routes/hits/search/RecordQuery.test.d.ts +1 -0
  298. package/components/routes/hits/search/RecordQuery.test.js +117 -0
  299. package/components/routes/hits/search/SearchPane.test.d.ts +1 -0
  300. package/components/routes/hits/search/SearchPane.test.js +178 -0
  301. package/components/routes/hits/search/grid/RecordGrid.test.d.ts +1 -0
  302. package/components/routes/hits/search/grid/RecordGrid.test.js +107 -0
  303. package/components/routes/hits/search/shared/CustomSort.test.d.ts +1 -0
  304. package/components/routes/hits/search/shared/CustomSort.test.js +77 -0
  305. package/components/routes/hits/search/shared/HitFilter.test.d.ts +1 -0
  306. package/components/routes/hits/search/shared/HitFilter.test.js +83 -0
  307. package/components/routes/hits/search/shared/HitSort.test.d.ts +1 -0
  308. package/components/routes/hits/search/shared/HitSort.test.js +61 -0
  309. package/components/routes/hits/search/shared/LayoutSettings.test.d.ts +1 -0
  310. package/components/routes/hits/search/shared/LayoutSettings.test.js +84 -0
  311. package/components/routes/hits/search/shared/SearchSpan.test.d.ts +1 -0
  312. package/components/routes/hits/search/shared/SearchSpan.test.js +84 -0
  313. package/components/routes/home/AnalyticCard.test.d.ts +1 -0
  314. package/components/routes/home/AnalyticCard.test.js +87 -0
  315. package/components/routes/home/index.test.d.ts +1 -0
  316. package/components/routes/home/index.test.js +190 -0
  317. package/components/routes/overviews/OverviewViewer.test.d.ts +1 -0
  318. package/components/routes/overviews/OverviewViewer.test.js +151 -0
  319. package/components/routes/overviews/Overviews.test.d.ts +1 -0
  320. package/components/routes/overviews/Overviews.test.js +154 -0
  321. package/components/routes/settings/AdminSection.test.d.ts +1 -0
  322. package/components/routes/settings/AdminSection.test.js +26 -0
  323. package/components/routes/settings/LocalSection.test.d.ts +1 -0
  324. package/components/routes/settings/LocalSection.test.js +75 -0
  325. package/components/routes/settings/ProfileSection.test.d.ts +1 -0
  326. package/components/routes/settings/ProfileSection.test.js +95 -0
  327. package/components/routes/settings/SecuritySection.test.d.ts +1 -0
  328. package/components/routes/settings/SecuritySection.test.js +90 -0
  329. package/components/routes/settings/Settings.test.d.ts +1 -0
  330. package/components/routes/settings/Settings.test.js +60 -0
  331. package/components/routes/templates/TemplateEditor.test.d.ts +1 -0
  332. package/components/routes/templates/TemplateEditor.test.js +94 -0
  333. package/components/routes/templates/TemplateViewer.test.d.ts +1 -0
  334. package/components/routes/templates/TemplateViewer.test.js +145 -0
  335. package/components/routes/templates/Templates.test.d.ts +1 -0
  336. package/components/routes/templates/Templates.test.js +165 -0
  337. package/components/routes/views/ViewComposer.test.d.ts +1 -0
  338. package/components/routes/views/ViewComposer.test.js +320 -0
  339. package/components/routes/views/Views.test.d.ts +1 -0
  340. package/components/routes/views/Views.test.js +247 -0
  341. package/package.json +1 -1
  342. package/plugins/HowlerPlugin.test.d.ts +1 -0
  343. package/plugins/HowlerPlugin.test.js +103 -0
  344. package/plugins/clue/components/ClueChip.js +2 -2
  345. package/plugins/clue/helpers.test.d.ts +1 -0
  346. package/plugins/clue/helpers.test.js +100 -0
  347. package/plugins/store.test.d.ts +1 -0
  348. package/plugins/store.test.js +53 -0
  349. package/utils/classificationParser.test.d.ts +1 -0
  350. package/utils/classificationParser.test.js +199 -0
  351. package/utils/constants.test.d.ts +1 -0
  352. package/utils/constants.test.js +62 -0
  353. package/utils/typeUtils.test.d.ts +1 -0
  354. package/utils/typeUtils.test.js +22 -0
@@ -0,0 +1,165 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /// <reference types="vitest" />
3
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react';
4
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
5
+ const mockDispatchApi = vi.hoisted(() => vi.fn());
6
+ const mockShowSuccessMessage = vi.hoisted(() => vi.fn());
7
+ const mockNavigate = vi.hoisted(() => vi.fn());
8
+ const mockSetSearchParams = vi.hoisted(() => vi.fn());
9
+ const mockLoad = vi.hoisted(() => vi.fn());
10
+ const mockRequest = vi.hoisted(() => vi.fn());
11
+ const mockRemove = vi.hoisted(() => vi.fn());
12
+ const mockGetSearchRequestData = vi.hoisted(() => vi.fn((data) => ({ offset: data.offset })));
13
+ const mockTemplateDelete = vi.hoisted(() => vi.fn((templateId) => ({ templateId })));
14
+ const analyticContextToken = vi.hoisted(() => ({ name: 'analytic-context' }));
15
+ const listMethodContextToken = vi.hoisted(() => ({ name: 'list-method-context' }));
16
+ let searchParamsValue = new URLSearchParams();
17
+ let responseValue = {
18
+ total: 2,
19
+ items: [
20
+ { template_id: 'tpl-1', type: 'global', analytic: 'Alpha', detection: 'Match', title: 'Zulu' },
21
+ { template_id: 'tpl-2', type: 'personal', analytic: 'Bravo', title: 'Alpha' }
22
+ ]
23
+ };
24
+ let analyticContextValue = {
25
+ analytics: [{ name: 'Alpha', detections: ['match'] }]
26
+ };
27
+ vi.mock('@mui/icons-material', async (importOriginal) => {
28
+ const actual = await importOriginal();
29
+ return {
30
+ ...actual,
31
+ Article: () => _jsx("div", { children: "article-icon" })
32
+ };
33
+ });
34
+ vi.mock('@mui/material', () => ({
35
+ Stack: ({ children }) => _jsx("div", { children: children }),
36
+ ToggleButton: ({ children, value }) => _jsx("button", { "data-value": value, children: children }),
37
+ ToggleButtonGroup: ({ children, onChange }) => (_jsxs("div", { children: [_jsx("button", { onClick: () => onChange(null, ['personal']), children: "filter-personal" }), _jsx("button", { onClick: () => onChange(null, ['personal', 'global']), children: "filter-both" }), children] })),
38
+ Typography: ({ children }) => _jsx("div", { children: children })
39
+ }));
40
+ vi.mock('@tui/core', () => ({
41
+ useAppUser: () => ({ user: { username: 'demo' } })
42
+ }));
43
+ vi.mock('api', () => ({
44
+ default: {
45
+ search: {
46
+ template: {
47
+ post: 'template-search'
48
+ }
49
+ },
50
+ template: {
51
+ del: mockTemplateDelete
52
+ }
53
+ }
54
+ }));
55
+ vi.mock('components/app/providers/AnalyticProvider', () => ({
56
+ AnalyticContext: analyticContextToken
57
+ }));
58
+ vi.mock('components/app/providers/SearchResponseProvider', () => ({
59
+ __esModule: true,
60
+ default: ({ children }) => _jsx("div", { children: children }),
61
+ createSearchResponseContext: () => ({}),
62
+ useSearchResponseContext: () => ({
63
+ response: responseValue,
64
+ request: mockRequest,
65
+ remove: mockRemove,
66
+ getSearchRequestData: mockGetSearchRequestData
67
+ })
68
+ }));
69
+ vi.mock('components/elements/addons/lists', () => ({
70
+ TuiListProvider: ({ children }) => _jsx("div", { children: children })
71
+ }));
72
+ vi.mock('components/elements/addons/lists/TuiListProvider', () => ({
73
+ TuiListMethodContext: listMethodContextToken
74
+ }));
75
+ vi.mock('components/elements/display/ItemManager', () => ({
76
+ default: (props) => (_jsxs("div", { children: [_jsx("button", { onClick: () => props.onSearch(), children: "search" }), _jsx("button", { onClick: () => props.onPageChange(25), children: "page" }), _jsx("button", { onClick: () => props.onCreate(), children: "create" }), _jsx("button", { onClick: () => props.onSelect({ item: responseValue.items[0] }), children: "select" }), _jsx("div", { children: props.searchFilters }), props.response?.items?.map((item) => (_jsx("div", { children: props.renderer({ item: { item, disabled: item.template_id === 'tpl-1' } }, () => 'card') }, item.template_id)))] }))
77
+ }));
78
+ vi.mock('components/hooks/useMyApi', () => ({
79
+ default: () => ({ dispatchApi: mockDispatchApi })
80
+ }));
81
+ vi.mock('components/hooks/useMyLocalStorage', () => ({
82
+ useMyLocalStorageItem: () => [25]
83
+ }));
84
+ vi.mock('components/hooks/useMySnackbar', () => ({
85
+ default: () => ({ showSuccessMessage: mockShowSuccessMessage })
86
+ }));
87
+ vi.mock('react-i18next', () => ({
88
+ useTranslation: () => ({ t: (key) => key })
89
+ }));
90
+ vi.mock('react-router', () => ({
91
+ useNavigate: () => mockNavigate,
92
+ useSearchParams: () => [searchParamsValue, mockSetSearchParams]
93
+ }));
94
+ vi.mock('./TemplateCard', () => ({
95
+ default: ({ template, error, onRemove, className }) => (_jsxs("div", { children: [_jsx("span", { children: `${template.template_id}:${String(error)}:${className}` }), _jsxs("button", { onClick: () => onRemove(template.template_id), children: ["remove-", template.template_id] })] }))
96
+ }));
97
+ vi.mock('react', async (importOriginal) => {
98
+ const actual = await importOriginal();
99
+ return {
100
+ ...actual,
101
+ useContext: (context) => {
102
+ if (context === analyticContextToken) {
103
+ return analyticContextValue;
104
+ }
105
+ if (context === listMethodContextToken) {
106
+ return { load: mockLoad };
107
+ }
108
+ return actual.useContext(context);
109
+ }
110
+ };
111
+ });
112
+ import Templates from './Templates';
113
+ describe('Templates', () => {
114
+ beforeEach(() => {
115
+ searchParamsValue = new URLSearchParams();
116
+ responseValue = {
117
+ total: 2,
118
+ items: [
119
+ { template_id: 'tpl-1', type: 'global', analytic: 'Alpha', detection: 'Match', title: 'Zulu' },
120
+ { template_id: 'tpl-2', type: 'personal', analytic: 'Bravo', title: 'Alpha' }
121
+ ]
122
+ };
123
+ analyticContextValue = { analytics: [{ name: 'Alpha', detections: ['match'] }] };
124
+ mockDispatchApi.mockReset();
125
+ mockShowSuccessMessage.mockReset();
126
+ mockNavigate.mockReset();
127
+ mockSetSearchParams.mockReset();
128
+ mockLoad.mockReset();
129
+ mockRequest.mockReset();
130
+ mockRemove.mockReset();
131
+ mockTemplateDelete.mockReset();
132
+ });
133
+ it('searches, filters template types, paginates, and navigates', async () => {
134
+ render(_jsx(Templates, {}));
135
+ await waitFor(() => expect(mockRequest).toHaveBeenCalledWith('template-search', {
136
+ query: '*:* AND (type:global OR owner:(demo OR none)) AND type:(*)',
137
+ rows: 25,
138
+ offset: 0
139
+ }));
140
+ expect(mockLoad).toHaveBeenCalledWith([
141
+ expect.objectContaining({ id: 'tpl-1', disabled: false }),
142
+ expect.objectContaining({ id: 'tpl-2', disabled: false })
143
+ ]);
144
+ fireEvent.click(screen.getByText('filter-personal'));
145
+ await waitFor(() => expect(mockRequest).toHaveBeenLastCalledWith('template-search', {
146
+ query: '*:* AND (type:global OR owner:(demo OR none)) AND type:(personal)',
147
+ rows: 25,
148
+ offset: 0
149
+ }));
150
+ fireEvent.click(screen.getByText('page'));
151
+ expect(mockSetSearchParams).toHaveBeenCalled();
152
+ fireEvent.click(screen.getByText('select'));
153
+ expect(mockNavigate).toHaveBeenCalledWith('/templates/view?type=global&analytic=Alpha&detection=Match');
154
+ fireEvent.click(screen.getByText('create'));
155
+ expect(mockNavigate).toHaveBeenCalledWith('/templates/view');
156
+ });
157
+ it('removes templates successfully', async () => {
158
+ mockDispatchApi.mockResolvedValueOnce({});
159
+ render(_jsx(Templates, {}));
160
+ fireEvent.click(screen.getByText('remove-tpl-1'));
161
+ await waitFor(() => expect(mockTemplateDelete).toHaveBeenCalledWith('tpl-1'));
162
+ expect(mockRemove).toHaveBeenCalledWith('tpl-1');
163
+ expect(mockShowSuccessMessage).toHaveBeenCalledWith('route.templates.manager.delete.success');
164
+ });
165
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,320 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /// <reference types="vitest" />
3
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react';
4
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
5
+ const mockDispatchApi = vi.hoisted(() => vi.fn());
6
+ const mockShowSuccessMessage = vi.hoisted(() => vi.fn());
7
+ const mockShowErrorMessage = vi.hoisted(() => vi.fn());
8
+ const mockNavigate = vi.hoisted(() => vi.fn());
9
+ const mockAddView = vi.hoisted(() => vi.fn());
10
+ const mockEditView = vi.hoisted(() => vi.fn());
11
+ const mockGetCurrentViews = vi.hoisted(() => vi.fn());
12
+ const mockLoadRecords = vi.hoisted(() => vi.fn());
13
+ const viewContextToken = vi.hoisted(() => ({ name: 'view-context' }));
14
+ const parameterContextToken = vi.hoisted(() => ({ name: 'parameter-context' }));
15
+ const recordContextToken = vi.hoisted(() => ({ name: 'record-context' }));
16
+ const recordSearchContextToken = vi.hoisted(() => ({ name: 'record-search-context' }));
17
+ const gridColumnsContextToken = vi.hoisted(() => ({ name: 'grid-columns-context' }));
18
+ let routeParamsValue = {};
19
+ let parameterContextValue;
20
+ let recordSearchContextValue;
21
+ let gridColumnsContextValue;
22
+ let searchResponseValue;
23
+ vi.mock('@mui/icons-material', () => ({
24
+ HelpOutline: () => _jsx("div", { children: "help-icon" }),
25
+ Save: () => _jsx("div", { children: "save-icon" }),
26
+ Settings: () => _jsx("div", { children: "settings-icon" })
27
+ }));
28
+ vi.mock('@mui/material', () => ({
29
+ Alert: ({ children }) => _jsx("div", { children: children }),
30
+ Checkbox: ({ checked, onChange }) => (_jsx("button", { onClick: () => onChange?.(null, !checked), children: checked ? 'checked' : 'unchecked' })),
31
+ CircularProgress: () => _jsx("div", { children: "loading" }),
32
+ LinearProgress: () => _jsx("div", { children: "progress" }),
33
+ Paper: ({ children }) => _jsx("div", { children: children }),
34
+ Stack: ({ children }) => _jsx("div", { children: children }),
35
+ TextField: ({ label, value, onChange }) => (_jsxs("label", { children: [label, _jsx("input", { "aria-label": label, value: value, onChange: onChange })] })),
36
+ ToggleButton: ({ children, value }) => _jsx("button", { "data-value": value, children: children }),
37
+ ToggleButtonGroup: ({ children, onChange }) => (_jsxs("div", { children: [_jsx("button", { onClick: () => onChange?.(null, 'personal'), children: "switch-personal" }), children] })),
38
+ Tooltip: ({ children }) => _jsx(_Fragment, { children: children }),
39
+ Typography: ({ children }) => _jsx("div", { children: children })
40
+ }));
41
+ vi.mock('@tui/core', () => ({
42
+ AppListEmpty: () => _jsx("div", { children: "empty-list" }),
43
+ PageCenter: ({ children }) => _jsx("div", { children: children })
44
+ }));
45
+ vi.mock('api', () => ({
46
+ default: {
47
+ v2: {
48
+ search: {
49
+ post: (indexes, body) => ({ indexes, body })
50
+ }
51
+ }
52
+ }
53
+ }));
54
+ vi.mock('components/app/providers/GridColumnsProvider', () => ({
55
+ GridColumnsContext: gridColumnsContextToken
56
+ }));
57
+ vi.mock('components/app/providers/ParameterProvider', () => ({
58
+ ParameterContext: parameterContextToken
59
+ }));
60
+ vi.mock('components/app/providers/RecordProvider', () => ({
61
+ RecordContext: recordContextToken
62
+ }));
63
+ vi.mock('components/app/providers/RecordSearchProvider', () => ({
64
+ RecordSearchContext: recordSearchContextToken
65
+ }));
66
+ vi.mock('components/app/providers/ViewProvider', () => ({
67
+ ViewContext: viewContextToken
68
+ }));
69
+ vi.mock('components/elements/addons/buttons/CustomButton', () => ({
70
+ default: ({ children, onClick, disabled }) => (_jsx("button", { onClick: onClick, disabled: disabled, children: children }))
71
+ }));
72
+ vi.mock('components/elements/addons/layout/FlexOne', () => ({
73
+ default: () => _jsx("div", { children: "flex" })
74
+ }));
75
+ vi.mock('components/elements/addons/layout/FlexPort', () => ({
76
+ default: ({ children }) => _jsx("div", { children: children })
77
+ }));
78
+ vi.mock('components/elements/addons/layout/vsbox/VSBox', () => ({
79
+ default: ({ children }) => _jsx("div", { children: children })
80
+ }));
81
+ vi.mock('components/elements/addons/layout/vsbox/VSBoxContent', () => ({
82
+ default: ({ children }) => _jsx("div", { children: children })
83
+ }));
84
+ vi.mock('components/elements/addons/layout/vsbox/VSBoxHeader', () => ({
85
+ default: ({ children }) => _jsx("div", { children: children })
86
+ }));
87
+ vi.mock('components/elements/addons/search/SearchTotal', () => ({
88
+ default: ({ total, pageLength, offset }) => _jsx("div", { children: `total:${total}:${pageLength}:${offset}` })
89
+ }));
90
+ vi.mock('components/elements/display/ChipPopper', () => ({
91
+ default: ({ children, label }) => (_jsxs("div", { children: [label, children] }))
92
+ }));
93
+ vi.mock('components/elements/event/EventCard', () => ({
94
+ default: ({ event }) => _jsx("div", { children: `event:${event.howler.id}` })
95
+ }));
96
+ vi.mock('components/elements/hit/grid/AddColumnModal', () => ({
97
+ default: ({ addColumn }) => _jsx("button", { onClick: () => addColumn('col2'), children: "add-column" })
98
+ }));
99
+ vi.mock('components/elements/hit/grid/RecordTable', () => ({
100
+ default: ({ query, items }) => _jsx("div", { children: `grid:${query}:${items?.length ?? 0}` })
101
+ }));
102
+ vi.mock('components/elements/hit/HitCard', () => ({
103
+ default: ({ id }) => _jsx("div", { children: `hit:${id}` })
104
+ }));
105
+ vi.mock('components/elements/view/LayoutToggle', () => ({
106
+ default: () => _jsx("div", { children: "layout-toggle" })
107
+ }));
108
+ vi.mock('components/hooks/useMyApi', () => ({
109
+ default: () => ({ dispatchApi: mockDispatchApi })
110
+ }));
111
+ vi.mock('components/hooks/useMyLocalStorage', () => ({
112
+ useMyLocalStorageItem: () => [25]
113
+ }));
114
+ vi.mock('components/hooks/useMySnackbar', () => ({
115
+ default: () => ({ showSuccessMessage: mockShowSuccessMessage, showErrorMessage: mockShowErrorMessage })
116
+ }));
117
+ vi.mock('components/elements/membership/MembershipManagement', () => ({
118
+ MembershipManagement: () => _jsx("div", { children: "membership" })
119
+ }));
120
+ vi.mock('../ErrorBoundary', () => ({
121
+ default: ({ children }) => _jsx("div", { children: children })
122
+ }));
123
+ vi.mock('../hits/search/RecordQuery', () => ({
124
+ default: ({ triggerSearch, onChange }) => (_jsxs("div", { children: [_jsx("button", { onClick: () => onChange?.('status:open', false), children: "record-query-clean" }), _jsx("button", { onClick: () => triggerSearch('status:open'), children: "record-query-search" })] }))
125
+ }));
126
+ vi.mock('../hits/search/shared/HitSort', () => ({
127
+ default: () => _jsx("div", { children: "sort" })
128
+ }));
129
+ vi.mock('../hits/search/shared/IndexPicker', () => ({
130
+ default: () => _jsx("div", { children: "index-picker" })
131
+ }));
132
+ vi.mock('../hits/search/shared/SearchSpan', () => ({
133
+ default: () => _jsx("div", { children: "search-span" })
134
+ }));
135
+ vi.mock('react-i18next', () => ({
136
+ useTranslation: () => ({ t: (key) => key })
137
+ }));
138
+ vi.mock('react-router', () => ({
139
+ useNavigate: () => mockNavigate,
140
+ useParams: () => routeParamsValue
141
+ }));
142
+ vi.mock('use-context-selector', () => ({
143
+ useContextSelector: (context, selector) => {
144
+ if (context === viewContextToken)
145
+ return selector({ addView: mockAddView, editView: mockEditView, getCurrentViews: mockGetCurrentViews });
146
+ if (context === parameterContextToken)
147
+ return selector(parameterContextValue);
148
+ if (context === recordContextToken)
149
+ return selector({ loadRecords: mockLoadRecords });
150
+ if (context === recordSearchContextToken)
151
+ return selector(recordSearchContextValue);
152
+ return undefined;
153
+ }
154
+ }));
155
+ vi.mock('utils/constants', () => ({
156
+ DEFAULT_QUERY: '*:*',
157
+ StorageKey: { PAGE_COUNT: 'page-count' }
158
+ }));
159
+ vi.mock('utils/utils', () => ({
160
+ convertDateToLucene: (value) => `converted:${value}`
161
+ }));
162
+ vi.mock('utils/viewUtils', () => ({
163
+ buildViewUrl: (view) => `/views/${view.view_id}`
164
+ }));
165
+ vi.mock('react', async (importOriginal) => {
166
+ const actual = await importOriginal();
167
+ return {
168
+ ...actual,
169
+ useContext: (context) => {
170
+ if (context === gridColumnsContextToken)
171
+ return gridColumnsContextValue;
172
+ return actual.useContext(context);
173
+ }
174
+ };
175
+ });
176
+ import ViewComposer from './ViewComposer';
177
+ describe('ViewComposer', () => {
178
+ beforeEach(() => {
179
+ routeParamsValue = {};
180
+ searchResponseValue = {
181
+ total: 2,
182
+ offset: 0,
183
+ rows: 25,
184
+ items: [
185
+ { __index: 'hit', howler: { id: 'hit-1' } },
186
+ { __index: 'event', howler: { id: 'event-1' } }
187
+ ]
188
+ };
189
+ parameterContextValue = {
190
+ indexes: undefined,
191
+ setIndexes: vi.fn((value) => {
192
+ parameterContextValue.indexes = value;
193
+ }),
194
+ query: '',
195
+ setQuery: vi.fn((value) => {
196
+ parameterContextValue.query = value;
197
+ }),
198
+ sort: 'created desc',
199
+ setSort: vi.fn((value) => {
200
+ parameterContextValue.sort = value;
201
+ }),
202
+ span: '24h',
203
+ setSpan: vi.fn((value) => {
204
+ parameterContextValue.span = value;
205
+ })
206
+ };
207
+ recordSearchContextValue = {
208
+ displayType: 'grid',
209
+ setDisplayType: vi.fn((value) => {
210
+ recordSearchContextValue.displayType = value;
211
+ })
212
+ };
213
+ const columns = ['col1'];
214
+ gridColumnsContextValue = {
215
+ columns,
216
+ setColumns: vi.fn((value) => {
217
+ columns.splice(0, columns.length, ...value);
218
+ }),
219
+ columnWidths: { col1: 120 },
220
+ isReady: true
221
+ };
222
+ mockDispatchApi.mockReset();
223
+ mockDispatchApi.mockResolvedValue(searchResponseValue);
224
+ mockShowSuccessMessage.mockReset();
225
+ mockShowErrorMessage.mockReset();
226
+ mockNavigate.mockReset();
227
+ mockAddView.mockReset();
228
+ mockEditView.mockReset();
229
+ mockGetCurrentViews.mockReset();
230
+ mockLoadRecords.mockReset();
231
+ });
232
+ it('runs an initial search, adds a column, and creates a new view', async () => {
233
+ mockAddView.mockResolvedValueOnce({ view_id: 'new-view' });
234
+ render(_jsx(ViewComposer, {}));
235
+ await waitFor(() => expect(mockDispatchApi).toHaveBeenCalledWith({
236
+ indexes: ['hit'],
237
+ body: {
238
+ rows: 25,
239
+ query: '*:*',
240
+ sort: 'created desc',
241
+ filters: ['event.created:converted:24h'],
242
+ metadata: ['template', 'analytic']
243
+ }
244
+ }, { showError: false, throwError: true }));
245
+ expect(mockLoadRecords).toHaveBeenCalledWith(searchResponseValue.items);
246
+ expect(screen.getByText('grid:*:*:2')).toBeInTheDocument();
247
+ fireEvent.change(screen.getByLabelText('route.views.name'), { target: { value: 'New View' } });
248
+ fireEvent.click(screen.getByText('unchecked'));
249
+ fireEvent.click(screen.getByText('add-column'));
250
+ fireEvent.click(screen.getByText('save'));
251
+ await waitFor(() => expect(mockAddView).toHaveBeenCalledWith({
252
+ title: 'New View',
253
+ type: 'global',
254
+ query: '*:*',
255
+ indexes: ['hit'],
256
+ sort: 'created desc',
257
+ span: '24h',
258
+ settings: {
259
+ advance_on_triage: true,
260
+ display: 'grid',
261
+ columns: [
262
+ { field: 'col1', width: 120 },
263
+ { field: 'col2', width: null }
264
+ ]
265
+ }
266
+ }));
267
+ expect(mockNavigate).toHaveBeenCalledWith('/views/new-view');
268
+ expect(mockShowSuccessMessage).toHaveBeenCalledWith('route.views.create.success');
269
+ });
270
+ it('loads an existing view, re-searches with loaded params, and updates it', async () => {
271
+ routeParamsValue = { id: 'view-1' };
272
+ recordSearchContextValue.displayType = 'list';
273
+ mockGetCurrentViews.mockResolvedValueOnce([
274
+ {
275
+ view_id: 'view-1',
276
+ title: 'Existing View',
277
+ type: 'personal',
278
+ query: 'status:open',
279
+ indexes: ['event'],
280
+ sort: 'event.created asc',
281
+ span: '7d',
282
+ settings: { advance_on_triage: true, display: 'list' }
283
+ }
284
+ ]);
285
+ mockEditView.mockResolvedValueOnce(undefined);
286
+ render(_jsx(ViewComposer, {}));
287
+ await waitFor(() => expect(mockGetCurrentViews).toHaveBeenCalledWith({ views: ['view-1'] }));
288
+ await waitFor(() => expect(mockDispatchApi).toHaveBeenCalledWith({
289
+ indexes: ['event'],
290
+ body: {
291
+ rows: 25,
292
+ query: 'status:open',
293
+ sort: 'event.created asc',
294
+ filters: ['event.created:converted:7d'],
295
+ metadata: ['template', 'analytic']
296
+ }
297
+ }, { showError: false, throwError: true }));
298
+ expect(parameterContextValue.setIndexes).toHaveBeenCalledWith(['event']);
299
+ expect(parameterContextValue.setSort).toHaveBeenCalledWith('event.created asc');
300
+ expect(parameterContextValue.setSpan).toHaveBeenCalledWith('7d');
301
+ expect(screen.getByText('event:event-1')).toBeInTheDocument();
302
+ fireEvent.change(screen.getByLabelText('route.views.name'), { target: { value: 'Updated View' } });
303
+ fireEvent.click(screen.getByText('checked'));
304
+ fireEvent.click(screen.getByText('save'));
305
+ await waitFor(() => expect(mockEditView).toHaveBeenCalledWith('view-1', {
306
+ title: 'Updated View',
307
+ type: 'personal',
308
+ query: 'status:open',
309
+ indexes: ['event'],
310
+ sort: 'event.created asc',
311
+ span: '7d',
312
+ settings: {
313
+ advance_on_triage: false,
314
+ display: 'list',
315
+ columns: undefined
316
+ }
317
+ }));
318
+ expect(mockShowSuccessMessage).toHaveBeenCalledWith('route.views.update.success');
319
+ });
320
+ });
@@ -0,0 +1 @@
1
+ export {};