@imposium-hub/components 2.14.11 → 2.15.0-0

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 (303) hide show
  1. package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +1 -6
  2. package/dist/cjs/components/app-wrapper/AppWrapper.js +4 -8
  3. package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
  4. package/dist/cjs/components/app-wrapper/AppWrapperV2.d.ts +26 -0
  5. package/dist/cjs/components/app-wrapper/AppWrapperV2.js +266 -0
  6. package/dist/cjs/components/app-wrapper/AppWrapperV2.js.map +1 -0
  7. package/dist/cjs/components/app-wrapper/AppWrapperV3.d.ts +19 -0
  8. package/dist/cjs/components/app-wrapper/AppWrapperV3.js +195 -0
  9. package/dist/cjs/components/app-wrapper/AppWrapperV3.js.map +1 -0
  10. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  11. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
  12. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  13. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  14. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
  15. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  16. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  17. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
  18. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  19. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  20. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
  21. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  22. package/dist/cjs/components/assets/AssetsUploadMenu.js +5 -5
  23. package/dist/cjs/components/auth-gate/AuthGate.d.ts +2 -0
  24. package/dist/cjs/components/auth-gate/AuthGate.js +105 -0
  25. package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -0
  26. package/dist/cjs/components/change-report/ChangeReportTree.d.ts +10 -0
  27. package/dist/cjs/components/change-report/ChangeReportTree.js +95 -0
  28. package/dist/cjs/components/change-report/ChangeReportTree.js.map +1 -0
  29. package/dist/cjs/components/context-menu/AnimateComponent.d.ts +0 -1
  30. package/dist/cjs/components/context-menu/AnimateComponent.js.map +1 -1
  31. package/dist/cjs/components/context-menu/ContextMenu.d.ts +0 -1
  32. package/dist/cjs/components/context-menu/ContextMenu.js +6 -6
  33. package/dist/cjs/components/context-menu/ContextMenu.js.map +1 -1
  34. package/dist/cjs/components/context-menu/ContextMenuItem.d.ts +0 -1
  35. package/dist/cjs/components/context-menu/ContextMenuItem.js.map +1 -1
  36. package/dist/cjs/components/context-menu/ContextMenuTrigger.d.ts +0 -1
  37. package/dist/cjs/components/context-menu/ContextMenuTrigger.js.map +1 -1
  38. package/dist/cjs/components/context-menu/SubMenu.d.ts +0 -1
  39. package/dist/cjs/components/context-menu/SubMenu.js.map +1 -1
  40. package/dist/cjs/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  41. package/dist/cjs/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  42. package/dist/cjs/components/edit-guide-modal/EditGuideModal.d.ts +8 -0
  43. package/dist/cjs/components/edit-guide-modal/EditGuideModal.js +132 -0
  44. package/dist/cjs/components/edit-guide-modal/EditGuideModal.js.map +1 -0
  45. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.d.ts +8 -0
  46. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.js +104 -0
  47. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.js.map +1 -0
  48. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  49. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
  50. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  51. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.d.ts +7 -0
  52. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.js +48 -0
  53. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.js.map +1 -0
  54. package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
  55. package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
  56. package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
  57. package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
  58. package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
  59. package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
  60. package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
  61. package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
  62. package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
  63. package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
  64. package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
  65. package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
  66. package/dist/cjs/components/header/StoryDropdown.d.ts +6 -0
  67. package/dist/cjs/components/header/StoryDropdown.js +111 -0
  68. package/dist/cjs/components/header/StoryDropdown.js.map +1 -0
  69. package/dist/cjs/components/number-field/NumberField.d.ts +2 -3
  70. package/dist/cjs/components/number-field/NumberField.js +19 -23
  71. package/dist/cjs/components/number-field/NumberField.js.map +1 -1
  72. package/dist/cjs/components/portal/Portal.d.ts +0 -1
  73. package/dist/cjs/components/portal/Portal.js.map +1 -1
  74. package/dist/cjs/components/publish-wizard/PublishWizard.d.ts +5 -4
  75. package/dist/cjs/components/publish-wizard/PublishWizard.js +104 -38
  76. package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
  77. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.d.ts +11 -0
  78. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.js +213 -0
  79. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.js.map +1 -0
  80. package/dist/cjs/components/service-icon/ServiceIcon.test.d.ts +0 -0
  81. package/dist/cjs/components/service-icon/ServiceIcon.test.js +1 -0
  82. package/dist/cjs/components/service-icon/ServiceIcon.test.js.map +1 -0
  83. package/dist/cjs/components/story-previewer/StoryPreviewer.js +2 -15
  84. package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
  85. package/dist/cjs/components/tabs/Tabs.d.ts +4 -12
  86. package/dist/cjs/components/tabs/Tabs.js +3 -21
  87. package/dist/cjs/components/tabs/Tabs.js.map +1 -1
  88. package/dist/cjs/components/tabs/Tabs.stories.d.ts +3 -1
  89. package/dist/cjs/components/tag/Tag.test.d.ts +0 -0
  90. package/dist/cjs/components/tag/Tag.test.js +1 -0
  91. package/dist/cjs/components/tag/Tag.test.js.map +1 -0
  92. package/dist/cjs/constants/copy.d.ts +9 -0
  93. package/dist/cjs/constants/copy.js +13 -2
  94. package/dist/cjs/constants/copy.js.map +1 -1
  95. package/dist/cjs/constants/snippets.d.ts +18 -0
  96. package/dist/cjs/constants/snippets.js +3 -0
  97. package/dist/cjs/constants/snippets.js.map +1 -0
  98. package/dist/cjs/index.d.ts +4 -2
  99. package/dist/cjs/index.js +4 -36
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/cjs/redux/actions/auth.d.ts +9 -0
  102. package/dist/cjs/redux/actions/auth.js +30 -0
  103. package/dist/cjs/redux/actions/auth.js.map +1 -0
  104. package/dist/cjs/redux/reducers/auth.d.ts +3 -0
  105. package/dist/cjs/redux/reducers/auth.js +67 -0
  106. package/dist/cjs/redux/reducers/auth.js.map +1 -0
  107. package/dist/cjs/services/API.d.ts +2 -0
  108. package/dist/cjs/services/API.js +6 -0
  109. package/dist/cjs/services/API.js.map +1 -1
  110. package/dist/cjs/services/Auth0.d.ts +18 -0
  111. package/dist/cjs/services/Auth0.js +102 -0
  112. package/dist/cjs/services/Auth0.js.map +1 -0
  113. package/dist/cjs/services/Session.d.ts +26 -0
  114. package/dist/cjs/services/Session.js +155 -0
  115. package/dist/cjs/services/Session.js.map +1 -0
  116. package/dist/cjs/utils/routing.d.ts +2 -4
  117. package/dist/cjs/utils/routing.js +4 -8
  118. package/dist/cjs/utils/routing.js.map +1 -1
  119. package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -6
  120. package/dist/esm/components/app-wrapper/AppWrapper.js +5 -9
  121. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  122. package/dist/esm/components/app-wrapper/AppWrapperV2.d.ts +26 -0
  123. package/dist/esm/components/app-wrapper/AppWrapperV2.js +142 -0
  124. package/dist/esm/components/app-wrapper/AppWrapperV2.js.map +1 -0
  125. package/dist/esm/components/app-wrapper/AppWrapperV3.d.ts +19 -0
  126. package/dist/esm/components/app-wrapper/AppWrapperV3.js +88 -0
  127. package/dist/esm/components/app-wrapper/AppWrapperV3.js.map +1 -0
  128. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  129. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
  130. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  131. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  132. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
  133. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  134. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  135. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
  136. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  137. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  138. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
  139. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  140. package/dist/esm/components/assets/AssetsUploadMenu.js +5 -5
  141. package/dist/esm/components/auth-gate/AuthGate.d.ts +2 -0
  142. package/dist/esm/components/auth-gate/AuthGate.js +59 -0
  143. package/dist/esm/components/auth-gate/AuthGate.js.map +1 -0
  144. package/dist/esm/components/change-report/ChangeReportTree.d.ts +10 -0
  145. package/dist/esm/components/change-report/ChangeReportTree.js +42 -0
  146. package/dist/esm/components/change-report/ChangeReportTree.js.map +1 -0
  147. package/dist/esm/components/context-menu/AnimateComponent.d.ts +0 -1
  148. package/dist/esm/components/context-menu/AnimateComponent.js.map +1 -1
  149. package/dist/esm/components/context-menu/ContextMenu.d.ts +0 -1
  150. package/dist/esm/components/context-menu/ContextMenu.js +1 -2
  151. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  152. package/dist/esm/components/context-menu/ContextMenuItem.d.ts +0 -1
  153. package/dist/esm/components/context-menu/ContextMenuItem.js.map +1 -1
  154. package/dist/esm/components/context-menu/ContextMenuTrigger.d.ts +0 -1
  155. package/dist/esm/components/context-menu/ContextMenuTrigger.js.map +1 -1
  156. package/dist/esm/components/context-menu/SubMenu.d.ts +0 -1
  157. package/dist/esm/components/context-menu/SubMenu.js.map +1 -1
  158. package/dist/esm/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  159. package/dist/esm/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  160. package/dist/esm/components/edit-guide-modal/EditGuideModal.d.ts +8 -0
  161. package/dist/esm/components/edit-guide-modal/EditGuideModal.js +65 -0
  162. package/dist/esm/components/edit-guide-modal/EditGuideModal.js.map +1 -0
  163. package/dist/esm/components/edit-marker-modal/EditMarkerModal.d.ts +8 -0
  164. package/dist/esm/components/edit-marker-modal/EditMarkerModal.js +72 -0
  165. package/dist/esm/components/edit-marker-modal/EditMarkerModal.js.map +1 -0
  166. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  167. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  168. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  169. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.d.ts +7 -0
  170. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.js +10 -0
  171. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.js.map +1 -0
  172. package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
  173. package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
  174. package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
  175. package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
  176. package/dist/esm/components/header/Header_BASE_73021.js +322 -0
  177. package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
  178. package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
  179. package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
  180. package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
  181. package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
  182. package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
  183. package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
  184. package/dist/esm/components/header/StoryDropdown.d.ts +6 -0
  185. package/dist/esm/components/header/StoryDropdown.js +82 -0
  186. package/dist/esm/components/header/StoryDropdown.js.map +1 -0
  187. package/dist/esm/components/number-field/NumberField.d.ts +2 -3
  188. package/dist/esm/components/number-field/NumberField.js +19 -18
  189. package/dist/esm/components/number-field/NumberField.js.map +1 -1
  190. package/dist/esm/components/portal/Portal.d.ts +0 -1
  191. package/dist/esm/components/portal/Portal.js.map +1 -1
  192. package/dist/esm/components/publish-wizard/PublishWizard.d.ts +5 -4
  193. package/dist/esm/components/publish-wizard/PublishWizard.js +92 -38
  194. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  195. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.d.ts +11 -0
  196. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.js +141 -0
  197. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.js.map +1 -0
  198. package/dist/esm/components/service-icon/ServiceIcon.test.d.ts +0 -0
  199. package/dist/esm/components/service-icon/ServiceIcon.test.js +1 -0
  200. package/dist/esm/components/service-icon/ServiceIcon.test.js.map +1 -0
  201. package/dist/esm/components/story-previewer/StoryPreviewer.js +2 -14
  202. package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
  203. package/dist/esm/components/tabs/Tabs.d.ts +4 -12
  204. package/dist/esm/components/tabs/Tabs.js +4 -11
  205. package/dist/esm/components/tabs/Tabs.js.map +1 -1
  206. package/dist/esm/components/tabs/Tabs.stories.d.ts +3 -1
  207. package/dist/esm/components/tag/Tag.test.d.ts +0 -0
  208. package/dist/esm/components/tag/Tag.test.js +1 -0
  209. package/dist/esm/components/tag/Tag.test.js.map +1 -0
  210. package/dist/esm/constants/copy.d.ts +9 -0
  211. package/dist/esm/constants/copy.js +13 -2
  212. package/dist/esm/constants/copy.js.map +1 -1
  213. package/dist/esm/constants/snippets.d.ts +18 -0
  214. package/dist/esm/constants/snippets.js +2 -0
  215. package/dist/esm/constants/snippets.js.map +1 -0
  216. package/dist/esm/index.d.ts +4 -2
  217. package/dist/esm/index.js +3 -2
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/redux/actions/auth.d.ts +9 -0
  220. package/dist/esm/redux/actions/auth.js +25 -0
  221. package/dist/esm/redux/actions/auth.js.map +1 -0
  222. package/dist/esm/redux/reducers/auth.d.ts +3 -0
  223. package/dist/esm/redux/reducers/auth.js +27 -0
  224. package/dist/esm/redux/reducers/auth.js.map +1 -0
  225. package/dist/esm/services/API.d.ts +2 -0
  226. package/dist/esm/services/API.js +6 -0
  227. package/dist/esm/services/API.js.map +1 -1
  228. package/dist/esm/services/Auth0.d.ts +18 -0
  229. package/dist/esm/services/Auth0.js +68 -0
  230. package/dist/esm/services/Auth0.js.map +1 -0
  231. package/dist/esm/services/Session.d.ts +26 -0
  232. package/dist/esm/services/Session.js +107 -0
  233. package/dist/esm/services/Session.js.map +1 -0
  234. package/dist/esm/utils/routing.d.ts +2 -4
  235. package/dist/esm/utils/routing.js +3 -6
  236. package/dist/esm/utils/routing.js.map +1 -1
  237. package/dist/styles.css +130 -3
  238. package/dist/styles.less +215 -64
  239. package/less/components/assets.less +5 -6
  240. package/less/components/auth-gate.less +1 -1
  241. package/less/components/change-report.less +115 -0
  242. package/less/components/data-table.less +2 -2
  243. package/less/components/determinate-loader.less +2 -2
  244. package/less/components/font-preview.less +1 -1
  245. package/less/components/form-field.less +5 -5
  246. package/less/components/header.less +30 -30
  247. package/less/components/modal.less +2 -2
  248. package/less/components/player.less +2 -2
  249. package/less/components/publish-wizard.less +36 -0
  250. package/less/components/section.less +2 -2
  251. package/less/components/static-composition-editor.less +4 -4
  252. package/less/components/story-previewer.less +4 -4
  253. package/less/components/tabs.less +3 -3
  254. package/less/entry.less +1 -0
  255. package/package.json +13 -24
  256. package/src/components/app-wrapper/AppWrapper.tsx +10 -18
  257. package/src/components/assets/AssetsUploadMenu.tsx +5 -5
  258. package/src/components/change-report/ChangeReportTree.tsx +125 -0
  259. package/src/components/context-menu/AnimateComponent.tsx +0 -1
  260. package/src/components/context-menu/ContextMenu.tsx +13 -15
  261. package/src/components/context-menu/ContextMenuItem.tsx +0 -1
  262. package/src/components/context-menu/ContextMenuTrigger.tsx +0 -1
  263. package/src/components/context-menu/SubMenu.tsx +0 -1
  264. package/src/components/number-field/NumberField.tsx +24 -33
  265. package/src/components/portal/Portal.tsx +0 -1
  266. package/src/components/publish-wizard/PublishWizard.tsx +145 -46
  267. package/src/components/service-icon/ServiceIcon.test.tsx +0 -0
  268. package/src/components/story-previewer/StoryPreviewer.tsx +8 -21
  269. package/src/components/tabs/Tabs.tsx +8 -25
  270. package/src/components/tag/Tag.test.tsx +0 -0
  271. package/src/constants/copy.ts +16 -2
  272. package/src/constants/snippets.ts +25 -0
  273. package/src/index.ts +7 -2
  274. package/src/services/API.ts +8 -0
  275. package/src/utils/routing.ts +6 -10
  276. package/tsconfig.json +1 -1
  277. package/src/components/advanced-number-field/AdvancedNumberField.test.tsx +0 -724
  278. package/src/components/anchor-field/AnchorField.test.tsx +0 -130
  279. package/src/components/asset-details/AssetDetails.test.tsx +0 -494
  280. package/src/components/assets/AssetField.test.tsx +0 -449
  281. package/src/components/assets/AssetsTableAssetIdCell.test.tsx +0 -142
  282. package/src/components/assets/AssetsTableAssetIdFilter.test.tsx +0 -95
  283. package/src/components/assets/AssetsTableComplexTagCell.test.tsx +0 -161
  284. package/src/components/assets/AssetsTableDateCell.test.tsx +0 -106
  285. package/src/components/assets/AssetsTableDropzone.test.tsx +0 -132
  286. package/src/components/assets/AssetsTableDurationCell.test.tsx +0 -119
  287. package/src/components/assets/AssetsTableGlobalCell.test.tsx +0 -46
  288. package/src/components/assets/AssetsTableNameCell.test.tsx +0 -166
  289. package/src/components/assets/AssetsTableNameFilter.test.tsx +0 -95
  290. package/src/components/assets/AssetsTablePreviewCell.test.tsx +0 -191
  291. package/src/components/assets/AssetsTableRateCell.test.tsx +0 -87
  292. package/src/components/assets/AssetsTableSelectCell.test.tsx +0 -156
  293. package/src/components/assets/AssetsTableSelectFilter.test.tsx +0 -119
  294. package/src/components/assets/AssetsTableStatusCell.test.tsx +0 -60
  295. package/src/components/number-field/NumberField.test.tsx +0 -383
  296. package/src/components/text-field/TextField.test.tsx +0 -988
  297. package/src/test/setup.ts +0 -91
  298. package/src/test/utils.tsx +0 -44
  299. package/tsconfig.eslint.json +0 -8
  300. package/vitest.config.ts +0 -31
  301. /package/dist/cjs/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  302. /package/dist/esm/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  303. /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
@@ -1,449 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- import React from 'react';
3
- import { render, act } from '@testing-library/react';
4
- import { Provider } from 'react-redux';
5
- import { legacy_createStore as createStore } from 'redux';
6
-
7
- import { ASSET_TYPES } from '../../constants/assets';
8
-
9
- vi.mock('../../Util', async (importOriginal) => {
10
- const actual = (await importOriginal()) as any;
11
- return {
12
- ...actual,
13
- mimetypeConformsToOverlay: vi.fn(() => true)
14
- };
15
- });
16
-
17
- vi.mock('../text-field/TextField', () => ({
18
- default: ({ value, label, readOnly, placeholder, loading, buttons, ...props }: any) => (
19
- <div data-testid={`textfield-${label || 'unlabeled'}`}>
20
- <label>{label}</label>
21
- <input
22
- value={value || ''}
23
- readOnly={readOnly}
24
- placeholder={placeholder || ''}
25
- />
26
- {loading && <span data-testid='loading-indicator'>Loading...</span>}
27
- {buttons && <div data-testid='buttons-container'>{buttons}</div>}
28
- </div>
29
- )
30
- }));
31
-
32
- vi.mock('../button/Button', () => ({
33
- default: ({ children, onClick, tooltip, ...props }: any) => (
34
- <button
35
- data-testid={`btn-${tooltip || 'unknown'}`}
36
- onClick={onClick}>
37
- {children}
38
- </button>
39
- )
40
- }));
41
-
42
- vi.mock('./AssetsTableDropzone', () => ({
43
- default: ({ children, onDrop, disable }: any) => (
44
- <div
45
- data-testid='dropzone'
46
- data-disabled={disable}>
47
- {children}
48
- </div>
49
- )
50
- }));
51
-
52
- vi.mock('./DroppableAssetRenderer', () => ({
53
- default: ({ children, onDrop }: any) => <div data-testid='droppable-renderer'>{children}</div>
54
- }));
55
-
56
- vi.mock('../../constants/icons', () => ({
57
- ICON_FILTER: '<svg data-testid="icon-filter" />',
58
- ICON_TIMES: '<svg data-testid="icon-times" />'
59
- }));
60
-
61
- vi.mock('../../redux/actions/asset-filters', () => ({
62
- updateFilters: vi.fn((filters) => ({ type: 'UPDATE_FILTERS', payload: filters }))
63
- }));
64
-
65
- vi.mock('../../redux/actions/asset-uploads', () => ({
66
- uploadAssets: vi.fn(() => ({ type: 'UPLOAD_ASSETS' }))
67
- }));
68
-
69
- const createMockStore = (overrides = {}) => {
70
- const defaultState = {
71
- assetList: {
72
- loading: false,
73
- page: 1,
74
- total_pages: 1,
75
- asset_count: 0,
76
- assets: []
77
- },
78
- ...overrides
79
- };
80
- return createStore((state = defaultState) => state);
81
- };
82
-
83
- const createMockApi = (assetResponse = { name: 'test-asset.png' }, shouldReject = false) => ({
84
- getAssetItem: vi.fn(() =>
85
- shouldReject ? Promise.reject(new Error('Not found')) : Promise.resolve(assetResponse)
86
- )
87
- });
88
-
89
- describe('AssetField', () => {
90
- let AssetFieldConnected: any;
91
-
92
- beforeEach(async () => {
93
- vi.clearAllMocks();
94
- vi.useFakeTimers();
95
- const module = await import('./AssetField');
96
- AssetFieldConnected = module.default;
97
- });
98
-
99
- afterEach(() => {
100
- vi.useRealTimers();
101
- });
102
-
103
- const defaultProps = {
104
- api: createMockApi(),
105
- storyId: 'story-123',
106
- assetId: 'asset-456',
107
- label: 'Background',
108
- width: 300,
109
- tooltip: 'Select an asset',
110
- onChange: vi.fn(),
111
- accepts: ASSET_TYPES.IMAGE
112
- };
113
-
114
- const renderWithStore = (props = {}, storeOverrides = {}) => {
115
- const store = createMockStore(storeOverrides);
116
- return render(
117
- <Provider store={store}>
118
- <AssetFieldConnected
119
- {...defaultProps}
120
- {...props}
121
- />
122
- </Provider>
123
- );
124
- };
125
-
126
- it('renders with all wrapper components', () => {
127
- const { container } = renderWithStore();
128
-
129
- expect(container.querySelector('[data-testid="dropzone"]')).toBeTruthy();
130
- expect(container.querySelector('[data-testid="droppable-renderer"]')).toBeTruthy();
131
- expect(container.querySelector('[data-testid="textfield-Background"]')).toBeTruthy();
132
- });
133
-
134
- it('applies width style and error class', () => {
135
- const { container } = renderWithStore({ width: 500 });
136
- const assetFieldDiv: HTMLElement | null = container.querySelector('.asset-field');
137
- if (assetFieldDiv) {
138
- expect(assetFieldDiv.style.width).toBe('500px');
139
- expect(assetFieldDiv.classList.contains('error')).toBe(false);
140
- }
141
- });
142
-
143
- it('defaults to 100% width when no width prop is provided', () => {
144
- const { container } = renderWithStore({ width: undefined });
145
- const assetFieldDiv: HTMLElement | null = container.querySelector('.asset-field');
146
- if (assetFieldDiv) {
147
- expect(assetFieldDiv.style.width).toBe('100%');
148
- }
149
- });
150
-
151
- it('shows drag prompt placeholder when no assetId', () => {
152
- const { container } = renderWithStore({ assetId: null });
153
- const input = container.querySelector('input');
154
- if (input) {
155
- expect(input.placeholder).toBe('Drag Asset Here');
156
- }
157
- });
158
-
159
- it('calls api.getAssetItem on mount when assetId is present', () => {
160
- const mockApi = createMockApi();
161
- renderWithStore({ api: mockApi });
162
- expect(mockApi.getAssetItem).toHaveBeenCalledWith('asset-456');
163
- });
164
-
165
- it('does not call api.getAssetItem on mount when assetId is absent', () => {
166
- const mockApi = createMockApi();
167
- renderWithStore({ api: mockApi, assetId: null });
168
- expect(mockApi.getAssetItem).not.toHaveBeenCalled();
169
- });
170
-
171
- it('displays asset name after successful API load', async () => {
172
- const mockApi = createMockApi({ name: 'my-video.mp4' });
173
- const { container } = renderWithStore({ api: mockApi });
174
-
175
- await vi.waitFor(() => {
176
- const input = container.querySelector('input');
177
- if (input) {
178
- expect(input.value).toBe('my-video.mp4');
179
- }
180
- });
181
- });
182
-
183
- it('displays error message after failed API load', async () => {
184
- const mockApi = createMockApi(undefined, true);
185
- const { container } = renderWithStore({ api: mockApi });
186
-
187
- await vi.waitFor(() => {
188
- const input = container.querySelector('input');
189
- if (input) {
190
- expect(input.value).toContain('Could not find asset');
191
- }
192
- });
193
- });
194
-
195
- it('shows filter buttons when accepts is a string and assetName is set', async () => {
196
- const mockApi = createMockApi({ name: 'loaded-asset.png' });
197
- const { container } = renderWithStore({ api: mockApi, accepts: 'image' });
198
-
199
- await vi.waitFor(() => {
200
- const buttonsContainer = container.querySelector('[data-testid="buttons-container"]');
201
- expect(buttonsContainer).toBeTruthy();
202
-
203
- const filterTypeBtn = container.querySelector(
204
- '[data-testid="btn-Filter assets to match Asset type"]'
205
- );
206
- expect(filterTypeBtn).toBeTruthy();
207
-
208
- const filterNameBtn = container.querySelector(
209
- '[data-testid="btn-Filter assets to the selected Asset"]'
210
- );
211
- expect(filterNameBtn).toBeTruthy();
212
- });
213
- });
214
-
215
- it('shows clear button when assetId is present', () => {
216
- const { container } = renderWithStore();
217
-
218
- const clearBtn = container.querySelector('[data-testid="btn-Clear the selected Asset"]');
219
- expect(clearBtn).toBeTruthy();
220
- });
221
-
222
- it('does not show filter buttons when accepts is an array', async () => {
223
- const mockApi = createMockApi({ name: 'loaded.png' });
224
- const { container } = renderWithStore({ api: mockApi, accepts: ['image', 'video'] });
225
-
226
- await vi.waitFor(() => {
227
- const filterTypeBtn = container.querySelector(
228
- '[data-testid="btn-Filter assets to match Asset type"]'
229
- );
230
- expect(filterTypeBtn).toBeFalsy();
231
- });
232
- });
233
-
234
- it('reloads asset when assetList changes via dispatch', () => {
235
- const mockApi = createMockApi({ name: 'initial.png' });
236
- const reducer = (
237
- state: any = {
238
- assetList: { loading: false, page: 1, total_pages: 1, asset_count: 0, assets: [] }
239
- },
240
- action: any
241
- ) => {
242
- if (action.type === 'UPDATE_ASSET_LIST') {
243
- return { ...state, assetList: action.payload };
244
- }
245
- return state;
246
- };
247
- const store = createStore(reducer);
248
-
249
- render(
250
- <Provider store={store}>
251
- <AssetFieldConnected
252
- {...defaultProps}
253
- api={mockApi}
254
- />
255
- </Provider>
256
- );
257
-
258
- mockApi.getAssetItem.mockClear();
259
-
260
- act(() => {
261
- store.dispatch({
262
- type: 'UPDATE_ASSET_LIST',
263
- payload: {
264
- loading: false,
265
- page: 2,
266
- total_pages: 2,
267
- asset_count: 10,
268
- assets: [{ id: '1' }]
269
- }
270
- });
271
- });
272
-
273
- act(() => {
274
- vi.advanceTimersByTime(350);
275
- });
276
-
277
- expect(mockApi.getAssetItem).toHaveBeenCalled();
278
- });
279
-
280
- it('clears timeout on unmount', () => {
281
- const clearTimeoutSpy = vi.spyOn(global, 'clearTimeout');
282
- const { unmount } = renderWithStore();
283
- unmount();
284
- expect(clearTimeoutSpy).toHaveBeenCalled();
285
- clearTimeoutSpy.mockRestore();
286
- });
287
-
288
- it('exercises setFilter with string accepts', () => {
289
- const { container } = renderWithStore({ accepts: 'image' });
290
- const filterBtn: HTMLElement | null = container.querySelector(
291
- '[data-testid="btn-Filter assets to match Asset type"]'
292
- );
293
- expect(filterBtn).toBeTruthy();
294
- filterBtn?.click();
295
- });
296
-
297
- it('exercises setFilter with no accepts', () => {
298
- const { container } = renderWithStore({ accepts: undefined });
299
- const filterBtn = container.querySelector(
300
- '[data-testid="btn-Filter assets to match Asset type"]'
301
- );
302
- expect(filterBtn).toBeFalsy();
303
- });
304
-
305
- it('exercises clearAsset button', async () => {
306
- const onChangeMock = vi.fn();
307
- const { container } = renderWithStore({ onChange: onChangeMock });
308
- const clearBtn: HTMLElement | null = container.querySelector(
309
- '[data-testid="btn-Clear the selected Asset"]'
310
- );
311
- expect(clearBtn).toBeTruthy();
312
- clearBtn?.click();
313
-
314
- await vi.waitFor(() => {
315
- expect(onChangeMock).toHaveBeenCalledWith(null);
316
- });
317
- });
318
-
319
- it('exercises setFilterToAsset button', async () => {
320
- const mockApi = createMockApi({ name: 'my-asset.png' });
321
- const { container } = renderWithStore({ api: mockApi, accepts: 'image' });
322
-
323
- await vi.waitFor(() => {
324
- const filterNameBtn: HTMLElement | null = container.querySelector(
325
- '[data-testid="btn-Filter assets to the selected Asset"]'
326
- );
327
- expect(filterNameBtn).toBeTruthy();
328
- filterNameBtn?.click();
329
- });
330
- });
331
-
332
- it('exercises onAssetDrop with matching type', () => {
333
- const onChangeMock = vi.fn();
334
- const WrappedComponent = AssetFieldConnected.WrappedComponent;
335
-
336
- const instance = new WrappedComponent({
337
- ...defaultProps,
338
- onChange: onChangeMock,
339
- accepts: 'image',
340
- updateFilters: vi.fn(),
341
- uploadAssets: vi.fn(),
342
- assetList: { loading: false, page: 1, total_pages: 1, asset_count: 0, assets: [] }
343
- });
344
-
345
- instance.setState = vi.fn((stateOrFn, callback) => {
346
- if (typeof stateOrFn === 'object') {
347
- instance.state = { ...instance.state, ...stateOrFn };
348
- }
349
- if (callback) callback();
350
- });
351
-
352
- instance.onAssetDrop(
353
- { rowData: { name: 'dropped.png', type: 'image', id: 'asset-789' } },
354
- null
355
- );
356
-
357
- expect(instance.setState).toHaveBeenCalled();
358
- expect(onChangeMock).toHaveBeenCalledWith({
359
- name: 'dropped.png',
360
- type: 'image',
361
- id: 'asset-789'
362
- });
363
- });
364
-
365
- it('exercises onAssetDrop with mismatched type and onError', () => {
366
- const onErrorMock = vi.fn();
367
- const WrappedComponent = AssetFieldConnected.WrappedComponent;
368
-
369
- const instance = new WrappedComponent({
370
- ...defaultProps,
371
- onError: onErrorMock,
372
- accepts: 'image',
373
- updateFilters: vi.fn(),
374
- uploadAssets: vi.fn(),
375
- assetList: { loading: false, page: 1, total_pages: 1, asset_count: 0, assets: [] }
376
- });
377
-
378
- instance.setState = vi.fn();
379
-
380
- instance.onAssetDrop(
381
- { rowData: { name: 'dropped.mp4', type: 'video', id: 'asset-999' } },
382
- null
383
- );
384
-
385
- expect(onErrorMock).toHaveBeenCalled();
386
- });
387
-
388
- it('exercises onAssetDrop with array accepts and mismatched type', () => {
389
- const onErrorMock = vi.fn();
390
- const WrappedComponent = AssetFieldConnected.WrappedComponent;
391
-
392
- const instance = new WrappedComponent({
393
- ...defaultProps,
394
- onError: onErrorMock,
395
- accepts: ['image', 'audio'],
396
- updateFilters: vi.fn(),
397
- uploadAssets: vi.fn(),
398
- assetList: { loading: false, page: 1, total_pages: 1, asset_count: 0, assets: [] }
399
- });
400
-
401
- instance.setState = vi.fn();
402
-
403
- instance.onAssetDrop(
404
- { rowData: { name: 'dropped.mp4', type: 'video', id: 'asset-999' } },
405
- null
406
- );
407
-
408
- expect(onErrorMock).toHaveBeenCalledWith(expect.stringContaining('image or audio'));
409
- });
410
-
411
- it('exercises onFileDrop with monitor', () => {
412
- const WrappedComponent = AssetFieldConnected.WrappedComponent;
413
- const uploadAssetsMock = vi.fn();
414
-
415
- const instance = new WrappedComponent({
416
- ...defaultProps,
417
- accepts: 'image',
418
- updateFilters: vi.fn(),
419
- uploadAssets: uploadAssetsMock,
420
- assetList: { loading: false, page: 1, total_pages: 1, asset_count: 0, assets: [] }
421
- });
422
-
423
- instance.setState = vi.fn();
424
-
425
- const mockMonitor = {
426
- getItem: () => ({
427
- files: [new File(['content'], 'test.png', { type: 'image/png' })]
428
- })
429
- };
430
-
431
- instance.onFileDrop(null, mockMonitor);
432
- expect(uploadAssetsMock).toHaveBeenCalled();
433
- });
434
-
435
- it('exercises onFileDrop without monitor', () => {
436
- const WrappedComponent = AssetFieldConnected.WrappedComponent;
437
-
438
- const instance = new WrappedComponent({
439
- ...defaultProps,
440
- updateFilters: vi.fn(),
441
- uploadAssets: vi.fn(),
442
- assetList: { loading: false, page: 1, total_pages: 1, asset_count: 0, assets: [] }
443
- });
444
-
445
- instance.setState = vi.fn();
446
- instance.onFileDrop(null, null);
447
- expect(instance.setState).not.toHaveBeenCalled();
448
- });
449
- });
@@ -1,142 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import React from 'react';
3
- import { render, fireEvent } from '@testing-library/react';
4
- import { Provider } from 'react-redux';
5
- import { legacy_createStore as createStore } from 'redux';
6
- import { copying } from '../../constants/copy';
7
-
8
- vi.mock('../../redux/actions/asset-filters', () => ({
9
- updateFilters: vi.fn(() => ({ type: 'MOCK_UPDATE_FILTERS' })),
10
- default: { UPDATE: 'assetFilters/UPDATE', RESET: 'footageFilters/RESET' }
11
- }));
12
-
13
- import AssetsTableAssetIdCellMemoized from './AssetsTableAssetIdCell';
14
-
15
- const MOCK_ASSET_ID = 'asset-abc-123';
16
-
17
- const createMockStore = (overrides = {}) => {
18
- const defaultState = {
19
- assetFilters: {},
20
- ...overrides
21
- };
22
- return createStore((state = defaultState) => state);
23
- };
24
-
25
- const buildCellProp = (assetId: string) => ({
26
- row: {
27
- original: { id: assetId }
28
- }
29
- });
30
-
31
- const renderComponent = (propOverrides = {}) => {
32
- const defaultProps = {
33
- cell: buildCellProp(MOCK_ASSET_ID),
34
- onNotification: vi.fn(),
35
- onError: vi.fn(),
36
- ...propOverrides
37
- };
38
-
39
- const store = createMockStore();
40
-
41
- const result = render(
42
- <Provider store={store}>
43
- <AssetsTableAssetIdCellMemoized {...defaultProps} />
44
- </Provider>
45
- );
46
-
47
- return { ...result, props: defaultProps };
48
- };
49
-
50
- describe('AssetsTableAssetIdCell', () => {
51
- let clipboardWriteTextMock: ReturnType<typeof vi.fn>;
52
-
53
- beforeEach(() => {
54
- clipboardWriteTextMock = vi.fn();
55
- Object.assign(navigator, {
56
- clipboard: {
57
- writeText: clipboardWriteTextMock
58
- }
59
- });
60
- });
61
-
62
- it('renders the asset id in a div with the correct class', () => {
63
- const { container } = renderComponent();
64
- const idCell = container.querySelector('.imposium-asset-id');
65
-
66
- expect(idCell).toBeTruthy();
67
- expect(idCell?.textContent).toBe(MOCK_ASSET_ID);
68
- });
69
-
70
- it('calls onNotification after successful clipboard copy', async () => {
71
- clipboardWriteTextMock.mockResolvedValueOnce(undefined);
72
- const { container, props } = renderComponent();
73
-
74
- const idCell: HTMLElement | null = container.querySelector('.imposium-asset-id');
75
- if (idCell) {
76
- fireEvent.click(idCell);
77
- }
78
-
79
- await vi.waitFor(() => {
80
- expect(clipboardWriteTextMock).toHaveBeenCalledWith(MOCK_ASSET_ID);
81
- expect(props.onNotification).toHaveBeenCalledWith(copying.copied);
82
- });
83
- });
84
-
85
- it('calls onError after failed clipboard copy', async () => {
86
- clipboardWriteTextMock.mockRejectedValueOnce(new Error('clipboard denied'));
87
- const { container, props } = renderComponent();
88
-
89
- const idCell: HTMLElement | null = container.querySelector('.imposium-asset-id');
90
- if (idCell) {
91
- fireEvent.click(idCell);
92
- }
93
-
94
- await vi.waitFor(() => {
95
- expect(props.onError).toHaveBeenCalledWith(copying.error);
96
- });
97
- });
98
-
99
- it('does not throw when onNotification is not provided', async () => {
100
- clipboardWriteTextMock.mockResolvedValueOnce(undefined);
101
- const { container } = renderComponent({
102
- onNotification: undefined,
103
- onError: undefined
104
- });
105
-
106
- const idCell: HTMLElement | null = container.querySelector('.imposium-asset-id');
107
- if (idCell) {
108
- fireEvent.click(idCell);
109
- }
110
-
111
- await vi.waitFor(() => {
112
- expect(clipboardWriteTextMock).toHaveBeenCalledWith(MOCK_ASSET_ID);
113
- });
114
- });
115
-
116
- it('does not throw when onError is not provided', async () => {
117
- clipboardWriteTextMock.mockRejectedValueOnce(new Error('denied'));
118
- const { container } = renderComponent({
119
- onNotification: undefined,
120
- onError: undefined
121
- });
122
-
123
- const idCell: HTMLElement | null = container.querySelector('.imposium-asset-id');
124
- if (idCell) {
125
- fireEvent.click(idCell);
126
- }
127
-
128
- await vi.waitFor(() => {
129
- expect(clipboardWriteTextMock).toHaveBeenCalled();
130
- });
131
- });
132
-
133
- it('renders with a different asset id', () => {
134
- const differentId = 'other-asset-456';
135
- const { container } = renderComponent({
136
- cell: buildCellProp(differentId)
137
- });
138
-
139
- const idCell = container.querySelector('.imposium-asset-id');
140
- expect(idCell?.textContent).toBe(differentId);
141
- });
142
- });
@@ -1,95 +0,0 @@
1
- import { describe, it, expect, vi } from 'vitest';
2
- import React from 'react';
3
- import { render } from '@testing-library/react';
4
- import { Provider } from 'react-redux';
5
- import { legacy_createStore as createStore } from 'redux';
6
-
7
- vi.mock('../text-field/TextField', () => ({
8
- default: ({ className, submittable, submittableType, value, doSubmit, header }: any) => (
9
- <div
10
- data-testid='mock-text-field'
11
- data-classname={className}
12
- data-submittable={submittable}
13
- data-submittable-type={submittableType}
14
- data-value={value || ''}
15
- data-header={header}>
16
- <button
17
- data-testid='submit-trigger'
18
- onClick={() => doSubmit('new-filter-value')}>
19
- Submit
20
- </button>
21
- </div>
22
- )
23
- }));
24
-
25
- vi.mock('../../redux/actions/asset-filters', () => ({
26
- updateFilters: vi.fn((filters) => ({ type: 'assetFilters/UPDATE', newFilters: filters })),
27
- default: { UPDATE: 'assetFilters/UPDATE', RESET: 'footageFilters/RESET' }
28
- }));
29
-
30
- import AssetsTableAssetIdFilterMemoized from './AssetsTableAssetIdFilter';
31
-
32
- const MOCK_ASSET_ID_FILTER = 'existing-filter-123';
33
-
34
- const createMockStore = (assetIdFilter = '') => {
35
- const initialState = { assetFilters: { id: assetIdFilter } };
36
- return createStore((state: any = initialState, action: any) => {
37
- if (action.type === 'assetFilters/UPDATE') {
38
- return {
39
- ...state,
40
- assetFilters: { ...state.assetFilters, ...action.newFilters }
41
- };
42
- }
43
- return state;
44
- });
45
- };
46
-
47
- const renderComponent = (assetIdFilter = '') => {
48
- const store = createMockStore(assetIdFilter);
49
-
50
- const result = render(
51
- <Provider store={store}>
52
- <AssetsTableAssetIdFilterMemoized />
53
- </Provider>
54
- );
55
-
56
- return { ...result, store };
57
- };
58
-
59
- describe('AssetsTableAssetIdFilter', () => {
60
- it('renders the TextField with correct props', () => {
61
- const { getByTestId } = renderComponent(MOCK_ASSET_ID_FILTER);
62
- const textField = getByTestId('mock-text-field');
63
-
64
- expect(textField.getAttribute('data-classname')).toBe('asset-id');
65
- expect(textField.getAttribute('data-submittable')).toBe('true');
66
- expect(textField.getAttribute('data-submittable-type')).toBe('search');
67
- expect(textField.getAttribute('data-value')).toBe(MOCK_ASSET_ID_FILTER);
68
- expect(textField.getAttribute('data-header')).toBe('true');
69
- });
70
-
71
- it('dispatches updateFilters with the submitted value', () => {
72
- const { getByTestId, store } = renderComponent();
73
- const submitButton = getByTestId('submit-trigger');
74
-
75
- submitButton.click();
76
-
77
- const storeState = store.getState();
78
- expect(storeState.assetFilters.id).toBe('new-filter-value');
79
- });
80
-
81
- it('renders with an empty filter value when no id is set', () => {
82
- const { getByTestId } = renderComponent();
83
- const textField = getByTestId('mock-text-field');
84
-
85
- expect(textField.getAttribute('data-value')).toBe('');
86
- });
87
-
88
- it('passes the current filter value from the redux store', () => {
89
- const filterValue = 'search-term-abc';
90
- const { getByTestId } = renderComponent(filterValue);
91
- const textField = getByTestId('mock-text-field');
92
-
93
- expect(textField.getAttribute('data-value')).toBe(filterValue);
94
- });
95
- });