@scality/data-browser-library 1.0.0-preview.8 → 1.0.1

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/components/DataBrowserUI.d.ts +12 -0
  2. package/dist/components/DataBrowserUI.js +99 -0
  3. package/dist/components/Editor.d.ts +1 -1
  4. package/dist/components/Editor.js +3 -3
  5. package/dist/components/__tests__/BucketAccessor.test.js +214 -0
  6. package/dist/components/__tests__/BucketCorsPage.test.d.ts +1 -0
  7. package/dist/components/__tests__/BucketCorsPage.test.js +263 -0
  8. package/dist/components/__tests__/BucketCreate.test.d.ts +1 -0
  9. package/dist/components/__tests__/BucketCreate.test.js +574 -0
  10. package/dist/components/__tests__/BucketDetails.test.d.ts +1 -0
  11. package/dist/components/__tests__/BucketDetails.test.js +421 -0
  12. package/dist/components/__tests__/BucketLifecycleFormPage.test.d.ts +14 -0
  13. package/dist/components/__tests__/BucketLifecycleFormPage.test.js +618 -0
  14. package/dist/components/__tests__/BucketLifecycleList.test.d.ts +1 -0
  15. package/dist/components/__tests__/BucketLifecycleList.test.js +325 -0
  16. package/dist/components/__tests__/BucketList.test.js +495 -81
  17. package/dist/components/__tests__/BucketNotificationFormPage.test.d.ts +1 -0
  18. package/dist/components/__tests__/BucketNotificationFormPage.test.js +348 -0
  19. package/dist/components/__tests__/BucketNotificationList.test.d.ts +1 -0
  20. package/dist/components/__tests__/BucketNotificationList.test.js +379 -0
  21. package/dist/components/__tests__/BucketOverview.test.js +484 -179
  22. package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
  23. package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +16 -0
  24. package/dist/components/__tests__/BucketReplicationFormPage.test.js +1757 -0
  25. package/dist/components/__tests__/BucketReplicationList.test.d.ts +1 -0
  26. package/dist/components/__tests__/BucketReplicationList.test.js +344 -0
  27. package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
  28. package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
  29. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.d.ts +1 -0
  30. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +196 -0
  31. package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
  32. package/dist/components/__tests__/EmptyBucketButton.test.d.ts +1 -0
  33. package/dist/components/__tests__/EmptyBucketButton.test.js +302 -0
  34. package/dist/components/__tests__/MetadataSearch.test.js +65 -65
  35. package/dist/components/__tests__/ObjectList.test.js +741 -240
  36. package/dist/components/__tests__/UploadButton.test.js +45 -45
  37. package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
  38. package/dist/components/breadcrumb/Breadcrumb.js +37 -0
  39. package/dist/components/breadcrumb/DataBrowserBreadcrumb.d.ts +1 -0
  40. package/dist/components/breadcrumb/DataBrowserBreadcrumb.js +10 -0
  41. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.d.ts +1 -0
  42. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.js +196 -0
  43. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.d.ts +1 -0
  44. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.js +153 -0
  45. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.d.ts +1 -0
  46. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.js +134 -0
  47. package/dist/components/breadcrumb/index.d.ts +8 -0
  48. package/dist/components/breadcrumb/index.js +4 -0
  49. package/dist/components/breadcrumb/useBreadcrumbPaths.d.ts +2 -0
  50. package/dist/components/breadcrumb/useBreadcrumbPaths.js +82 -0
  51. package/dist/components/buckets/BucketAccessor.d.ts +2 -0
  52. package/dist/components/buckets/BucketAccessor.js +125 -0
  53. package/dist/components/buckets/BucketConfigEditButton.d.ts +8 -0
  54. package/dist/components/buckets/{BucketPolicyButton.js → BucketConfigEditButton.js} +9 -5
  55. package/dist/components/buckets/BucketCorsPage.d.ts +1 -0
  56. package/dist/components/buckets/BucketCorsPage.js +234 -0
  57. package/dist/components/buckets/BucketCreate.d.ts +50 -0
  58. package/dist/components/buckets/BucketCreate.js +279 -0
  59. package/dist/components/buckets/BucketDetails.d.ts +42 -0
  60. package/dist/components/buckets/BucketDetails.js +256 -40
  61. package/dist/components/buckets/BucketLifecycleFormPage.d.ts +15 -0
  62. package/dist/components/buckets/BucketLifecycleFormPage.js +1086 -0
  63. package/dist/components/buckets/BucketLifecycleList.d.ts +10 -0
  64. package/dist/components/buckets/BucketLifecycleList.js +270 -0
  65. package/dist/components/buckets/BucketList.d.ts +6 -4
  66. package/dist/components/buckets/BucketList.js +161 -94
  67. package/dist/components/buckets/BucketLocation.js +4 -4
  68. package/dist/components/buckets/BucketOverview.d.ts +86 -5
  69. package/dist/components/buckets/BucketOverview.js +481 -192
  70. package/dist/components/buckets/BucketPage.js +44 -22
  71. package/dist/components/buckets/BucketPolicyPage.js +155 -127
  72. package/dist/components/buckets/BucketReplicationFormPage.d.ts +1 -0
  73. package/dist/components/buckets/BucketReplicationFormPage.js +835 -0
  74. package/dist/components/buckets/BucketReplicationList.d.ts +11 -0
  75. package/dist/components/buckets/BucketReplicationList.js +189 -0
  76. package/dist/components/buckets/BucketVersioning.d.ts +4 -0
  77. package/dist/components/buckets/BucketVersioning.js +76 -0
  78. package/dist/components/buckets/DeleteBucketButton.js +8 -8
  79. package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +18 -0
  80. package/dist/components/buckets/DeleteBucketConfigRuleButton.js +53 -0
  81. package/dist/components/buckets/EmptyBucketButton.d.ts +5 -0
  82. package/dist/components/buckets/EmptyBucketButton.js +232 -0
  83. package/dist/components/buckets/EmptyBucketSummary.d.ts +9 -0
  84. package/dist/components/buckets/EmptyBucketSummary.js +60 -0
  85. package/dist/components/buckets/EmptyBucketSummaryList.d.ts +13 -0
  86. package/dist/components/buckets/EmptyBucketSummaryList.js +140 -0
  87. package/dist/components/buckets/__tests__/BucketVersioning.test.d.ts +1 -0
  88. package/dist/components/buckets/__tests__/BucketVersioning.test.js +163 -0
  89. package/dist/components/buckets/notifications/BucketNotificationFormPage.d.ts +1 -0
  90. package/dist/components/buckets/notifications/BucketNotificationFormPage.js +316 -0
  91. package/dist/components/buckets/notifications/BucketNotificationList.d.ts +10 -0
  92. package/dist/components/buckets/notifications/BucketNotificationList.js +267 -0
  93. package/dist/components/buckets/notifications/EventsSection.js +145 -29
  94. package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
  95. package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
  96. package/dist/components/buckets/notifications/events.d.ts +71 -7
  97. package/dist/components/buckets/notifications/events.js +98 -16
  98. package/dist/components/index.d.ts +27 -13
  99. package/dist/components/index.js +20 -6
  100. package/dist/components/layouts/ArrowNavigation.d.ts +3 -0
  101. package/dist/components/layouts/ArrowNavigation.js +28 -0
  102. package/dist/components/layouts/BrowserPageLayout.d.ts +5 -1
  103. package/dist/components/layouts/BrowserPageLayout.js +10 -5
  104. package/dist/components/objects/CreateFolderButton.d.ts +2 -2
  105. package/dist/components/objects/CreateFolderButton.js +12 -12
  106. package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
  107. package/dist/components/objects/DeleteObjectButton.js +19 -21
  108. package/dist/components/objects/GetPresignedUrlButton.d.ts +7 -0
  109. package/dist/components/objects/GetPresignedUrlButton.js +255 -0
  110. package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +2 -2
  111. package/dist/components/objects/ObjectDetails/ObjectMetadata.js +263 -230
  112. package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +2 -2
  113. package/dist/components/objects/ObjectDetails/ObjectSummary.js +540 -138
  114. package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +2 -2
  115. package/dist/components/objects/ObjectDetails/ObjectTags.js +95 -123
  116. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.d.ts +1 -0
  117. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +516 -0
  118. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.d.ts +1 -0
  119. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +1064 -0
  120. package/dist/components/objects/ObjectDetails/index.d.ts +18 -2
  121. package/dist/components/objects/ObjectDetails/index.js +152 -40
  122. package/dist/components/objects/ObjectList.d.ts +12 -10
  123. package/dist/components/objects/ObjectList.js +590 -263
  124. package/dist/components/objects/ObjectLock/EditRetentionButton.d.ts +4 -0
  125. package/dist/components/objects/ObjectLock/EditRetentionButton.js +32 -0
  126. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.d.ts +3 -0
  127. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +211 -0
  128. package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +9 -0
  129. package/dist/components/objects/ObjectLock/ObjectLockSettings.js +159 -0
  130. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +8 -0
  131. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +39 -0
  132. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.d.ts +1 -0
  133. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +204 -0
  134. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.d.ts +1 -0
  135. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +374 -0
  136. package/dist/components/objects/ObjectPage.js +12 -8
  137. package/dist/components/objects/UploadButton.d.ts +3 -3
  138. package/dist/components/objects/UploadButton.js +10 -10
  139. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.d.ts +1 -0
  140. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.js +531 -0
  141. package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
  142. package/dist/components/providers/DataBrowserProvider.js +60 -38
  143. package/dist/components/providers/QueryProvider.d.ts +9 -0
  144. package/dist/components/providers/QueryProvider.js +21 -0
  145. package/dist/components/search/MetadataSearch.js +29 -28
  146. package/dist/components/search/SearchHints.js +1 -1
  147. package/dist/components/ui/ArrayFieldActions.d.ts +36 -0
  148. package/dist/components/ui/ArrayFieldActions.js +43 -0
  149. package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +16 -0
  150. package/dist/components/ui/ConfirmDeleteRuleModal.js +48 -0
  151. package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
  152. package/dist/components/ui/DeleteObjectModalContent.js +12 -12
  153. package/dist/components/ui/FilterFormSection.d.ts +44 -0
  154. package/dist/components/ui/FilterFormSection.js +159 -0
  155. package/dist/components/ui/Search.elements.d.ts +2 -2
  156. package/dist/components/ui/Search.elements.js +7 -7
  157. package/dist/components/ui/Table.elements.d.ts +2 -1
  158. package/dist/components/ui/Table.elements.js +18 -12
  159. package/dist/config/__tests__/factory.test.d.ts +1 -0
  160. package/dist/config/__tests__/factory.test.js +311 -0
  161. package/dist/config/factory.d.ts +14 -49
  162. package/dist/config/factory.js +23 -68
  163. package/dist/config/types.d.ts +212 -34
  164. package/dist/contexts/DataBrowserUICustomizationContext.d.ts +27 -0
  165. package/dist/contexts/DataBrowserUICustomizationContext.js +13 -0
  166. package/dist/hooks/__tests__/useAccessibleBuckets.test.d.ts +1 -0
  167. package/dist/hooks/__tests__/useAccessibleBuckets.test.js +145 -0
  168. package/dist/hooks/__tests__/useISVBucketDetection.test.d.ts +1 -0
  169. package/dist/hooks/__tests__/useISVBucketDetection.test.js +188 -0
  170. package/dist/hooks/__tests__/useIsBucketEmpty.test.js +27 -27
  171. package/dist/hooks/__tests__/useLoginMutation.test.d.ts +1 -0
  172. package/dist/hooks/__tests__/useLoginMutation.test.js +194 -0
  173. package/dist/hooks/bucketConfiguration.d.ts +8 -1
  174. package/dist/hooks/bucketConfiguration.js +52 -51
  175. package/dist/hooks/bucketOperations.d.ts +10 -1
  176. package/dist/hooks/bucketOperations.js +10 -9
  177. package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +80 -80
  178. package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +80 -80
  179. package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +44 -44
  180. package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +63 -63
  181. package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +95 -52
  182. package/dist/hooks/factories/index.d.ts +4 -4
  183. package/dist/hooks/factories/index.js +2 -2
  184. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
  185. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +16 -13
  186. package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
  187. package/dist/hooks/factories/useCreateS3LoginHook.js +1 -1
  188. package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
  189. package/dist/hooks/factories/useCreateS3MutationHook.js +7 -2
  190. package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
  191. package/dist/hooks/factories/useCreateS3QueryHook.js +29 -3
  192. package/dist/hooks/index.d.ts +19 -8
  193. package/dist/hooks/index.js +16 -5
  194. package/dist/hooks/loginOperations.d.ts +1 -1
  195. package/dist/hooks/loginOperations.js +1 -1
  196. package/dist/hooks/objectOperations.d.ts +2 -2
  197. package/dist/hooks/objectOperations.js +50 -49
  198. package/dist/hooks/presignedOperations.d.ts +4 -4
  199. package/dist/hooks/presignedOperations.js +5 -5
  200. package/dist/hooks/useAccessibleBuckets.d.ts +11 -0
  201. package/dist/hooks/useAccessibleBuckets.js +115 -0
  202. package/dist/hooks/useBatchObjectLegalHold.d.ts +11 -0
  203. package/dist/hooks/useBatchObjectLegalHold.js +48 -0
  204. package/dist/hooks/useBucketConfigEditor.d.ts +31 -0
  205. package/dist/hooks/useBucketConfigEditor.js +82 -0
  206. package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
  207. package/dist/hooks/useDataBrowserNavigate.js +24 -0
  208. package/dist/hooks/useDeleteBucketConfigRule.d.ts +26 -0
  209. package/dist/hooks/useDeleteBucketConfigRule.js +46 -0
  210. package/dist/hooks/useEmptyBucket.d.ts +27 -0
  211. package/dist/hooks/useEmptyBucket.js +116 -0
  212. package/dist/hooks/useFeatures.d.ts +7 -0
  213. package/dist/hooks/useFeatures.js +8 -0
  214. package/dist/hooks/useISVBucketDetection.d.ts +15 -0
  215. package/dist/hooks/useISVBucketDetection.js +27 -0
  216. package/dist/hooks/useIsBucketEmpty.js +4 -4
  217. package/dist/hooks/useLimitedAccessFlow.d.ts +48 -0
  218. package/dist/hooks/useLimitedAccessFlow.js +23 -0
  219. package/dist/hooks/useS3Client.d.ts +6 -0
  220. package/dist/hooks/useS3Client.js +3 -2
  221. package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
  222. package/dist/hooks/useS3ConfigSwitch.js +37 -0
  223. package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
  224. package/dist/hooks/useSupportedNotificationEvents.js +8 -0
  225. package/dist/hooks/useTableRowSelection.d.ts +9 -0
  226. package/dist/hooks/useTableRowSelection.js +45 -0
  227. package/dist/index.d.ts +6 -6
  228. package/dist/index.js +2 -2
  229. package/dist/schemas/bucketPolicySchema.json +3 -13
  230. package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
  231. package/dist/test/msw/handlers/deleteBucket.js +20 -10
  232. package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
  233. package/dist/test/msw/handlers/getBucketAcl.js +29 -17
  234. package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
  235. package/dist/test/msw/handlers/getBucketLocation.js +29 -15
  236. package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
  237. package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
  238. package/dist/test/msw/handlers/headObject.d.ts +1 -1
  239. package/dist/test/msw/handlers/headObject.js +31 -13
  240. package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
  241. package/dist/test/msw/handlers/listBuckets.js +5 -3
  242. package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
  243. package/dist/test/msw/handlers/listObjectVersions.js +38 -26
  244. package/dist/test/msw/handlers/listObjects.d.ts +1 -1
  245. package/dist/test/msw/handlers/listObjects.js +35 -23
  246. package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
  247. package/dist/test/msw/handlers/objectLegalHold.js +32 -17
  248. package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
  249. package/dist/test/msw/handlers/objectRetention.js +31 -17
  250. package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
  251. package/dist/test/msw/handlers/putBucketAcl.js +29 -14
  252. package/dist/test/msw/handlers/putObject.d.ts +1 -1
  253. package/dist/test/msw/handlers/putObject.js +27 -12
  254. package/dist/test/msw/handlers.d.ts +3 -3
  255. package/dist/test/msw/handlers.js +77 -54
  256. package/dist/test/msw/index.d.ts +2 -2
  257. package/dist/test/msw/index.js +1 -1
  258. package/dist/test/msw/server.d.ts +1 -1
  259. package/dist/test/msw/server.js +1 -1
  260. package/dist/test/msw/utils.js +2 -2
  261. package/dist/test/setup.d.ts +1 -1
  262. package/dist/test/setup.js +13 -30
  263. package/dist/test/testUtils.d.ts +170 -36
  264. package/dist/test/testUtils.js +229 -116
  265. package/dist/test/utils/errorHandling.test.js +146 -108
  266. package/dist/types/index.d.ts +49 -36
  267. package/dist/types/monaco.d.ts +13 -0
  268. package/dist/types/monaco.js +0 -0
  269. package/dist/utils/__tests__/proxyMiddleware.test.d.ts +1 -0
  270. package/dist/utils/__tests__/proxyMiddleware.test.js +579 -0
  271. package/dist/utils/__tests__/s3Client.test.d.ts +1 -0
  272. package/dist/utils/__tests__/s3Client.test.js +340 -0
  273. package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
  274. package/dist/utils/__tests__/s3ConfigIdentifier.test.js +437 -0
  275. package/dist/utils/constants.d.ts +22 -0
  276. package/dist/utils/constants.js +19 -0
  277. package/dist/utils/deletion/index.d.ts +2 -2
  278. package/dist/utils/deletion/index.js +1 -1
  279. package/dist/utils/deletion/messages.d.ts +1 -1
  280. package/dist/utils/deletion/messages.js +4 -4
  281. package/dist/utils/errorHandling.d.ts +12 -3
  282. package/dist/utils/errorHandling.js +12 -7
  283. package/dist/utils/hooks.js +8 -8
  284. package/dist/utils/index.d.ts +5 -2
  285. package/dist/utils/index.js +5 -1
  286. package/dist/utils/proxyMiddleware.d.ts +32 -13
  287. package/dist/utils/proxyMiddleware.js +90 -36
  288. package/dist/utils/s3Client.d.ts +14 -4
  289. package/dist/utils/s3Client.js +5 -26
  290. package/dist/utils/s3ConfigIdentifier.d.ts +79 -0
  291. package/dist/utils/s3ConfigIdentifier.js +57 -0
  292. package/dist/utils/s3RuleUtils.d.ts +53 -0
  293. package/dist/utils/s3RuleUtils.js +101 -0
  294. package/package.json +10 -8
  295. package/dist/components/__tests__/BucketNotificationCreatePage.test.js +0 -316
  296. package/dist/components/buckets/BucketPolicyButton.d.ts +0 -7
  297. package/dist/components/buckets/notifications/BucketNotificationCreatePage.d.ts +0 -1
  298. package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +0 -234
  299. package/dist/hooks/useLoginMutation.d.ts +0 -21
  300. package/dist/hooks/useLoginMutation.js +0 -9
  301. package/dist/utils/useFeatures.d.ts +0 -1
  302. package/dist/utils/useFeatures.js +0 -7
  303. /package/dist/components/__tests__/{BucketNotificationCreatePage.test.d.ts → BucketAccessor.test.d.ts} +0 -0
@@ -1,12 +1,11 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
3
- import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
4
- import { renderHook } from "@testing-library/react";
5
- import "react";
6
- import { DataBrowserProvider } from "../components/providers/DataBrowserProvider.js";
7
- import { coreUIAvailableThemes } from "@scality/core-ui/dist/style/theme";
8
- import { CoreUiThemeProvider } from "@scality/core-ui/dist/next";
9
3
  import { ToastProvider } from "@scality/core-ui";
4
+ import { coreUIAvailableThemes } from "@scality/core-ui/dist/style/theme";
5
+ import { QueryClient } from "@tanstack/react-query";
6
+ import { fireEvent, renderHook, screen, waitFor } from "@testing-library/react";
7
+ import { DataBrowserProvider } from "../components/providers/DataBrowserProvider.js";
8
+ import { DataBrowserUICustomizationProvider } from "../contexts/DataBrowserUICustomizationContext.js";
10
9
  import { overrideHandlers, setupMswServer } from "./msw/index.js";
11
10
  var __webpack_require__ = {};
12
11
  (()=>{
@@ -20,20 +19,31 @@ var __webpack_require__ = {};
20
19
  })();
21
20
  })();
22
21
  const testConfig = {
23
- endpoint: "https://s3.amazonaws.com",
24
- region: "us-east-1",
22
+ endpoint: 'https://s3.amazonaws.com',
23
+ region: 'us-east-1',
25
24
  forcePathStyle: true
26
25
  };
27
26
  const testCredentials = {
28
- accessKeyId: "test-access-key",
29
- secretAccessKey: "test-secret-key",
30
- sessionToken: "test-session-token"
27
+ accessKeyId: 'test-access-key',
28
+ secretAccessKey: 'test-secret-key',
29
+ sessionToken: 'test-session-token'
31
30
  };
32
31
  const mockS3Client = {
33
32
  send: jest.fn()
34
33
  };
35
34
  const MockedS3Client = S3Client;
36
35
  const MockedPutObjectCommand = PutObjectCommand;
36
+ const setupS3Mocks = ()=>{
37
+ jest.clearAllMocks();
38
+ MockedS3Client.mockImplementation(()=>mockS3Client);
39
+ MockedPutObjectCommand.mockImplementation((input)=>({
40
+ input,
41
+ resolveMiddleware: jest.fn()
42
+ }));
43
+ };
44
+ const setupCommonMocks = ()=>{
45
+ setupS3Mocks();
46
+ };
37
47
  function mockOffsetSize(width, height) {
38
48
  __webpack_require__.g.ResizeObserver = jest.fn().mockImplementation(()=>({
39
49
  observe: jest.fn(),
@@ -70,44 +80,24 @@ function mockOffsetSize(width, height) {
70
80
  }
71
81
  });
72
82
  const mockComputedStyle = {
73
- fontSize: "14px",
74
- paddingLeft: "0px",
75
- paddingRight: "0px",
76
- paddingTop: "0px",
77
- paddingBottom: "0px",
83
+ fontSize: '14px',
84
+ paddingLeft: '0px',
85
+ paddingRight: '0px',
86
+ paddingTop: '0px',
87
+ paddingBottom: '0px',
78
88
  getPropertyValue: jest.fn((prop)=>{
79
89
  const styles = {
80
- "font-size": "14px",
81
- "padding-left": "0px",
82
- "padding-right": "0px",
83
- "padding-top": "0px",
84
- "padding-bottom": "0px"
90
+ 'font-size': '14px',
91
+ 'padding-left': '0px',
92
+ 'padding-right': '0px',
93
+ 'padding-top': '0px',
94
+ 'padding-bottom': '0px'
85
95
  };
86
- return styles[prop] || "";
96
+ return styles[prop] || '';
87
97
  })
88
98
  };
89
- jest.spyOn(window, "getComputedStyle").mockImplementation(()=>mockComputedStyle);
99
+ jest.spyOn(window, 'getComputedStyle').mockImplementation(()=>mockComputedStyle);
90
100
  }
91
- const createQueryWrapper = ()=>{
92
- const queryClient = new QueryClient({
93
- defaultOptions: {
94
- queries: {
95
- retry: false
96
- },
97
- mutations: {
98
- retry: false
99
- }
100
- }
101
- });
102
- const theme = coreUIAvailableThemes.darkRebrand;
103
- return ({ children })=>/*#__PURE__*/ jsx(QueryClientProvider, {
104
- client: queryClient,
105
- children: /*#__PURE__*/ jsx(CoreUiThemeProvider, {
106
- theme: theme,
107
- children: children
108
- })
109
- });
110
- };
111
101
  const createTestWrapper = (config = testConfig, credentials = testCredentials)=>{
112
102
  const queryClient = new QueryClient({
113
103
  defaultOptions: {
@@ -129,8 +119,10 @@ const createTestWrapper = (config = testConfig, credentials = testCredentials)=>
129
119
  getS3Config: getConfig,
130
120
  theme: theme,
131
121
  enableDevtools: false,
132
- children: /*#__PURE__*/ jsx(CoreUiThemeProvider, {
133
- theme: theme,
122
+ children: /*#__PURE__*/ jsx(DataBrowserUICustomizationProvider, {
123
+ config: {
124
+ basePath: ''
125
+ },
134
126
  children: /*#__PURE__*/ jsx(ToastProvider, {
135
127
  children: children
136
128
  })
@@ -144,93 +136,214 @@ const renderHookWithWrapper = (hook, options)=>{
144
136
  ...renderOptions
145
137
  });
146
138
  };
147
- const createTestFile = (name, content, type = "text/plain")=>new File([
139
+ const createTestFile = (name, content, type = 'text/plain')=>new File([
148
140
  content
149
141
  ], name, {
150
142
  type
151
143
  });
152
- const setupS3Mocks = ()=>{
153
- jest.clearAllMocks();
154
- MockedS3Client.mockImplementation(()=>mockS3Client);
155
- MockedPutObjectCommand.mockImplementation((input)=>({
156
- input,
157
- resolveMiddleware: jest.fn()
158
- }));
159
- };
160
- const setupCommonMocks = ()=>{
161
- setupS3Mocks();
162
- };
163
- const overrideGlobalConfig = (overrides)=>{
164
- const currentS3 = globalThis.__S3_CONFIG__;
165
- const currentDev = globalThis.__DEV_CONFIG__;
166
- if (overrides.s3) globalThis.__S3_CONFIG__ = {
167
- ...currentS3,
168
- ...overrides.s3
169
- };
170
- if (overrides.dev) globalThis.__DEV_CONFIG__ = {
171
- ...currentDev,
172
- ...overrides.dev
173
- };
174
- if (overrides.environment) {
175
- if (void 0 !== overrides.environment.isDevelopment) globalThis.__IS_DEVELOPMENT__ = overrides.environment.isDevelopment;
176
- if (void 0 !== overrides.environment.isProduction) globalThis.__IS_PRODUCTION__ = overrides.environment.isProduction;
177
- }
178
- };
179
- const resetGlobalConfig = ()=>{
180
- globalThis.__S3_CONFIG__ = {
181
- endpoint: "http://localhost:8000",
182
- region: "us-east-1",
183
- realHost: "s3.amazonaws.com",
184
- forcePathStyle: true
185
- };
186
- globalThis.__DEV_CONFIG__ = {
187
- useProxy: false,
188
- proxyEndpoint: "http://localhost:3000/api/s3",
189
- proxyBasePath: "/api/s3",
190
- proxyHost: "localhost",
191
- proxyPort: 3000
192
- };
193
- globalThis.__IS_DEVELOPMENT__ = true;
194
- globalThis.__IS_PRODUCTION__ = false;
195
- };
196
- const withGlobalConfig = (overrides, testFn)=>async ()=>{
197
- overrideGlobalConfig(overrides);
198
- try {
199
- await testFn();
200
- } finally{
201
- resetGlobalConfig();
202
- }
203
- };
144
+ const createFactoryTestError = (testContext, operationName, details)=>new Error(`Factory Test Failure [${testContext}]: ${operationName} - ${details || 'Unknown error'}. Check factory implementation and hook usage patterns.`);
204
145
  const validateFactoryHook = (hook, operationName)=>{
205
- if ("function" != typeof hook) throw createFactoryTestError("Factory Validation", operationName, "hook should be a function - check if useCreate*Hook factory is properly returning a hook function");
146
+ if ('function' != typeof hook) throw createFactoryTestError('Factory Validation', operationName, 'hook should be a function - check if useCreate*Hook factory is properly returning a hook function');
206
147
  };
207
- const createFactoryTestError = (testContext, operationName, details)=>new Error(`Factory Test Failure [${testContext}]: ${operationName} - ${details || "Unknown error"}. Check factory implementation and hook usage patterns.`);
208
148
  const validateHookResult = (result, hookType)=>{
209
149
  const commonProps = [
210
- "isError",
211
- "isSuccess",
212
- "data",
213
- "error"
150
+ 'isError',
151
+ 'isSuccess',
152
+ 'data',
153
+ 'error'
214
154
  ];
215
155
  const queryProps = [
216
- "isLoading"
156
+ 'isLoading'
217
157
  ];
218
158
  const mutationProps = [
219
- "mutate",
220
- "mutateAsync",
221
- "isPending"
159
+ 'mutate',
160
+ 'mutateAsync',
161
+ 'isPending'
222
162
  ];
223
163
  const infiniteProps = [
224
- "hasNextPage",
225
- "fetchNextPage",
226
- "isFetchingNextPage"
164
+ 'hasNextPage',
165
+ 'fetchNextPage',
166
+ 'isFetchingNextPage'
227
167
  ];
228
168
  const expectedProps = [
229
169
  ...commonProps,
230
- ..."query" === hookType ? queryProps : [],
231
- ..."mutation" === hookType ? mutationProps : [],
232
- ..."infiniteQuery" === hookType ? infiniteProps : []
170
+ ...'query' === hookType ? queryProps : [],
171
+ ...'mutation' === hookType ? mutationProps : [],
172
+ ...'infiniteQuery' === hookType ? infiniteProps : []
233
173
  ];
234
- for (const prop of expectedProps)if (!(prop in result)) throw createFactoryTestError("Hook Validation", hookType, `Missing property '${prop}' - check if factory is returning proper React Query hook result`);
174
+ for (const prop of expectedProps)if (!(prop in result)) throw createFactoryTestError('Hook Validation', hookType, `Missing property '${prop}' - check if factory is returning proper React Query hook result`);
175
+ };
176
+ const createMockMutationResult = (mutate, overrides = {})=>({
177
+ mutate,
178
+ mutateAsync: jest.fn(),
179
+ reset: jest.fn(),
180
+ isPending: false,
181
+ isIdle: true,
182
+ isError: false,
183
+ isSuccess: false,
184
+ status: 'idle',
185
+ data: void 0,
186
+ error: null,
187
+ variables: void 0,
188
+ context: void 0,
189
+ failureCount: 0,
190
+ failureReason: null,
191
+ isPaused: false,
192
+ submittedAt: 0,
193
+ ...overrides
194
+ });
195
+ const createMockQueryResult = (overrides = {})=>({
196
+ data: void 0,
197
+ error: null,
198
+ isError: false,
199
+ isLoading: false,
200
+ isLoadingError: false,
201
+ isRefetchError: false,
202
+ isSuccess: false,
203
+ status: 'pending',
204
+ dataUpdatedAt: 0,
205
+ errorUpdatedAt: 0,
206
+ failureCount: 0,
207
+ failureReason: null,
208
+ errorUpdateCount: 0,
209
+ isFetched: false,
210
+ isFetchedAfterMount: false,
211
+ isFetching: false,
212
+ isInitialLoading: false,
213
+ isPaused: false,
214
+ isPlaceholderData: false,
215
+ isPending: false,
216
+ isRefetching: false,
217
+ isStale: false,
218
+ refetch: jest.fn(),
219
+ ...overrides
220
+ });
221
+ const findToggleByLabel = (labelText)=>{
222
+ const label = screen.getByText(labelText);
223
+ let current = label.parentElement;
224
+ while(current && !current.querySelector('input[type="checkbox"]'))current = current.parentElement;
225
+ return current?.querySelector('input[type="checkbox"]');
226
+ };
227
+ const submitForm = async (buttonName = 'create')=>{
228
+ await waitFor(()=>{
229
+ const button = screen.getByRole('button', {
230
+ name: 'create' === buttonName ? /create/i : /save/i
231
+ });
232
+ expect(button).toBeEnabled();
233
+ });
234
+ const button = screen.getByRole('button', {
235
+ name: 'create' === buttonName ? /create/i : /save/i
236
+ });
237
+ fireEvent.click(button);
238
+ };
239
+ const mockSuccessSubmit = (mockMutate)=>{
240
+ mockMutate.mockImplementation((_, options)=>{
241
+ options?.onSuccess?.();
242
+ });
243
+ };
244
+ const mockErrorSubmit = (mockMutate, errorMessage = 'Network Error')=>{
245
+ const error = new Error(errorMessage);
246
+ mockMutate.mockImplementation((_, options)=>{
247
+ options?.onError?.(error);
248
+ });
249
+ };
250
+ const createDefaultBucketMocks = ()=>({
251
+ versioning: {
252
+ data: {
253
+ Status: 'Enabled'
254
+ },
255
+ status: 'success'
256
+ },
257
+ acl: {
258
+ data: {
259
+ Owner: {
260
+ DisplayName: 'test-owner'
261
+ },
262
+ Grants: [
263
+ {
264
+ Grantee: {
265
+ Type: 'CanonicalUser',
266
+ DisplayName: 'test-grantee'
267
+ }
268
+ }
269
+ ]
270
+ },
271
+ status: 'success'
272
+ },
273
+ location: {
274
+ data: {
275
+ LocationConstraint: 'us-west-2'
276
+ },
277
+ status: 'success'
278
+ },
279
+ cors: {
280
+ data: {
281
+ CORSRules: []
282
+ },
283
+ status: 'success'
284
+ },
285
+ objectLock: {
286
+ data: {
287
+ ObjectLockConfiguration: {
288
+ ObjectLockEnabled: 'Disabled'
289
+ }
290
+ },
291
+ status: 'success'
292
+ },
293
+ policy: {
294
+ data: void 0,
295
+ error: null,
296
+ status: 'success'
297
+ },
298
+ tagging: {
299
+ data: {
300
+ TagSet: []
301
+ },
302
+ status: 'success'
303
+ },
304
+ lifecycle: {
305
+ data: {
306
+ Rules: []
307
+ },
308
+ status: 'success',
309
+ error: null
310
+ },
311
+ replication: {
312
+ data: {
313
+ ReplicationConfiguration: {
314
+ Role: 'arn:aws:iam::123456789012:role/replication-role',
315
+ Rules: []
316
+ }
317
+ },
318
+ status: 'success',
319
+ error: null
320
+ },
321
+ isvBucketStatus: {
322
+ isVeeamBucket: false,
323
+ isCommvaultBucket: false,
324
+ isISVManaged: false,
325
+ isvApplication: void 0,
326
+ isLoading: false,
327
+ bucketTagsStatus: 'success'
328
+ },
329
+ features: false
330
+ });
331
+ const applyBucketMocks = (mocks, mockData = {})=>{
332
+ const defaults = createDefaultBucketMocks();
333
+ const data = {
334
+ ...defaults,
335
+ ...mockData
336
+ };
337
+ mocks.useGetBucketVersioning.mockReturnValue(data.versioning);
338
+ mocks.useGetBucketAcl.mockReturnValue(data.acl);
339
+ mocks.useGetBucketLocation.mockReturnValue(data.location);
340
+ mocks.useGetBucketCors.mockReturnValue(data.cors);
341
+ mocks.useGetBucketObjectLockConfiguration.mockReturnValue(data.objectLock);
342
+ mocks.useGetBucketPolicy.mockReturnValue(data.policy);
343
+ mocks.useGetBucketTagging.mockReturnValue(data.tagging);
344
+ mocks.useISVBucketStatus.mockReturnValue(data.isvBucketStatus);
345
+ mocks.useFeatures.mockReturnValue(data.features);
346
+ if (mocks.useGetBucketLifecycle) mocks.useGetBucketLifecycle.mockReturnValue(data.lifecycle);
347
+ if (mocks.useGetBucketReplication) mocks.useGetBucketReplication.mockReturnValue(data.replication);
235
348
  };
236
- export { MockedPutObjectCommand, MockedS3Client, createFactoryTestError, createQueryWrapper, createTestFile, createTestWrapper, mockOffsetSize, mockS3Client, overrideGlobalConfig, overrideHandlers, renderHookWithWrapper, resetGlobalConfig, setupCommonMocks, setupMswServer, setupS3Mocks, testConfig, testCredentials, validateFactoryHook, validateHookResult, withGlobalConfig };
349
+ export { MockedPutObjectCommand, MockedS3Client, applyBucketMocks, createDefaultBucketMocks, createFactoryTestError, createMockMutationResult, createMockQueryResult, createTestFile, createTestWrapper, findToggleByLabel, mockErrorSubmit, mockOffsetSize, mockS3Client, mockSuccessSubmit, overrideHandlers, renderHookWithWrapper, setupCommonMocks, setupMswServer, setupS3Mocks, submitForm, testConfig, testCredentials, validateFactoryHook, validateHookResult };