@scality/data-browser-library 1.0.0-preview.9 → 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 (285) 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.js +271 -105
  9. package/dist/components/__tests__/BucketDetails.test.d.ts +1 -0
  10. package/dist/components/__tests__/BucketDetails.test.js +421 -0
  11. package/dist/components/__tests__/BucketLifecycleFormPage.test.d.ts +13 -0
  12. package/dist/components/__tests__/BucketLifecycleFormPage.test.js +178 -178
  13. package/dist/components/__tests__/BucketLifecycleList.test.js +85 -85
  14. package/dist/components/__tests__/BucketList.test.js +463 -239
  15. package/dist/components/__tests__/BucketNotificationFormPage.test.d.ts +1 -0
  16. package/dist/components/__tests__/BucketNotificationFormPage.test.js +348 -0
  17. package/dist/components/__tests__/BucketNotificationList.test.d.ts +1 -0
  18. package/dist/components/__tests__/BucketNotificationList.test.js +379 -0
  19. package/dist/components/__tests__/BucketOverview.test.js +281 -266
  20. package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
  21. package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +15 -0
  22. package/dist/components/__tests__/BucketReplicationFormPage.test.js +544 -544
  23. package/dist/components/__tests__/BucketReplicationList.test.js +106 -106
  24. package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
  25. package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
  26. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +47 -47
  27. package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
  28. package/dist/components/__tests__/EmptyBucketButton.test.js +59 -59
  29. package/dist/components/__tests__/MetadataSearch.test.js +65 -65
  30. package/dist/components/__tests__/ObjectList.test.js +741 -240
  31. package/dist/components/__tests__/UploadButton.test.js +45 -45
  32. package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
  33. package/dist/components/breadcrumb/Breadcrumb.js +37 -0
  34. package/dist/components/breadcrumb/DataBrowserBreadcrumb.d.ts +1 -0
  35. package/dist/components/breadcrumb/DataBrowserBreadcrumb.js +10 -0
  36. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.d.ts +1 -0
  37. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.js +196 -0
  38. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.d.ts +1 -0
  39. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.js +153 -0
  40. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.d.ts +1 -0
  41. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.js +134 -0
  42. package/dist/components/breadcrumb/index.d.ts +8 -0
  43. package/dist/components/breadcrumb/index.js +4 -0
  44. package/dist/components/breadcrumb/useBreadcrumbPaths.d.ts +2 -0
  45. package/dist/components/breadcrumb/useBreadcrumbPaths.js +82 -0
  46. package/dist/components/buckets/BucketAccessor.d.ts +2 -0
  47. package/dist/components/buckets/BucketAccessor.js +125 -0
  48. package/dist/components/buckets/BucketConfigEditButton.d.ts +8 -0
  49. package/dist/components/buckets/{BucketPolicyButton.js → BucketConfigEditButton.js} +9 -5
  50. package/dist/components/buckets/BucketCorsPage.d.ts +1 -0
  51. package/dist/components/buckets/BucketCorsPage.js +234 -0
  52. package/dist/components/buckets/BucketCreate.d.ts +3 -2
  53. package/dist/components/buckets/BucketCreate.js +89 -47
  54. package/dist/components/buckets/BucketDetails.d.ts +42 -0
  55. package/dist/components/buckets/BucketDetails.js +249 -85
  56. package/dist/components/buckets/BucketLifecycleFormPage.js +206 -190
  57. package/dist/components/buckets/BucketLifecycleList.d.ts +2 -2
  58. package/dist/components/buckets/BucketLifecycleList.js +47 -47
  59. package/dist/components/buckets/BucketList.d.ts +7 -8
  60. package/dist/components/buckets/BucketList.js +158 -101
  61. package/dist/components/buckets/BucketLocation.js +4 -4
  62. package/dist/components/buckets/BucketOverview.d.ts +22 -2
  63. package/dist/components/buckets/BucketOverview.js +394 -187
  64. package/dist/components/buckets/BucketPage.js +43 -21
  65. package/dist/components/buckets/BucketPolicyPage.js +155 -127
  66. package/dist/components/buckets/BucketReplicationFormPage.js +134 -133
  67. package/dist/components/buckets/BucketReplicationList.d.ts +2 -2
  68. package/dist/components/buckets/BucketReplicationList.js +42 -42
  69. package/dist/components/buckets/BucketVersioning.d.ts +4 -0
  70. package/dist/components/buckets/BucketVersioning.js +76 -0
  71. package/dist/components/buckets/DeleteBucketButton.js +8 -8
  72. package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +2 -2
  73. package/dist/components/buckets/DeleteBucketConfigRuleButton.js +2 -2
  74. package/dist/components/buckets/EmptyBucketButton.js +24 -24
  75. package/dist/components/buckets/EmptyBucketSummary.d.ts +2 -2
  76. package/dist/components/buckets/EmptyBucketSummary.js +1 -1
  77. package/dist/components/buckets/EmptyBucketSummaryList.d.ts +1 -1
  78. package/dist/components/buckets/EmptyBucketSummaryList.js +22 -22
  79. package/dist/components/buckets/__tests__/BucketVersioning.test.d.ts +1 -0
  80. package/dist/components/buckets/__tests__/BucketVersioning.test.js +163 -0
  81. package/dist/components/buckets/notifications/BucketNotificationFormPage.d.ts +1 -0
  82. package/dist/components/buckets/notifications/BucketNotificationFormPage.js +316 -0
  83. package/dist/components/buckets/notifications/BucketNotificationList.d.ts +10 -0
  84. package/dist/components/buckets/notifications/BucketNotificationList.js +267 -0
  85. package/dist/components/buckets/notifications/EventsSection.js +145 -29
  86. package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
  87. package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
  88. package/dist/components/buckets/notifications/events.d.ts +71 -7
  89. package/dist/components/buckets/notifications/events.js +98 -16
  90. package/dist/components/index.d.ts +27 -20
  91. package/dist/components/index.js +17 -10
  92. package/dist/components/layouts/ArrowNavigation.d.ts +3 -0
  93. package/dist/components/layouts/ArrowNavigation.js +28 -0
  94. package/dist/components/layouts/BrowserPageLayout.d.ts +5 -1
  95. package/dist/components/layouts/BrowserPageLayout.js +10 -5
  96. package/dist/components/objects/CreateFolderButton.d.ts +2 -2
  97. package/dist/components/objects/CreateFolderButton.js +12 -12
  98. package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
  99. package/dist/components/objects/DeleteObjectButton.js +19 -21
  100. package/dist/components/objects/GetPresignedUrlButton.d.ts +7 -0
  101. package/dist/components/objects/GetPresignedUrlButton.js +255 -0
  102. package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +2 -2
  103. package/dist/components/objects/ObjectDetails/ObjectMetadata.js +263 -230
  104. package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +2 -2
  105. package/dist/components/objects/ObjectDetails/ObjectSummary.js +540 -138
  106. package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +2 -2
  107. package/dist/components/objects/ObjectDetails/ObjectTags.js +95 -123
  108. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.d.ts +1 -0
  109. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +516 -0
  110. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.d.ts +1 -0
  111. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +1064 -0
  112. package/dist/components/objects/ObjectDetails/index.d.ts +18 -2
  113. package/dist/components/objects/ObjectDetails/index.js +152 -40
  114. package/dist/components/objects/ObjectList.d.ts +12 -10
  115. package/dist/components/objects/ObjectList.js +590 -263
  116. package/dist/components/objects/ObjectLock/EditRetentionButton.js +4 -4
  117. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +15 -15
  118. package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +1 -1
  119. package/dist/components/objects/ObjectLock/ObjectLockSettings.js +32 -31
  120. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +1 -1
  121. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +6 -6
  122. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +51 -51
  123. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +78 -78
  124. package/dist/components/objects/ObjectPage.js +12 -8
  125. package/dist/components/objects/UploadButton.d.ts +3 -3
  126. package/dist/components/objects/UploadButton.js +10 -10
  127. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.d.ts +1 -0
  128. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.js +531 -0
  129. package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
  130. package/dist/components/providers/DataBrowserProvider.js +60 -38
  131. package/dist/components/providers/QueryProvider.d.ts +9 -0
  132. package/dist/components/providers/QueryProvider.js +21 -0
  133. package/dist/components/search/MetadataSearch.js +29 -28
  134. package/dist/components/search/SearchHints.js +1 -1
  135. package/dist/components/ui/ArrayFieldActions.js +12 -7
  136. package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +2 -2
  137. package/dist/components/ui/ConfirmDeleteRuleModal.js +6 -1
  138. package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
  139. package/dist/components/ui/DeleteObjectModalContent.js +12 -12
  140. package/dist/components/ui/FilterFormSection.d.ts +2 -2
  141. package/dist/components/ui/FilterFormSection.js +29 -29
  142. package/dist/components/ui/Search.elements.d.ts +2 -2
  143. package/dist/components/ui/Search.elements.js +7 -7
  144. package/dist/components/ui/Table.elements.d.ts +2 -1
  145. package/dist/components/ui/Table.elements.js +18 -12
  146. package/dist/config/__tests__/factory.test.d.ts +1 -0
  147. package/dist/config/__tests__/factory.test.js +311 -0
  148. package/dist/config/factory.d.ts +10 -56
  149. package/dist/config/factory.js +23 -71
  150. package/dist/config/types.d.ts +212 -34
  151. package/dist/contexts/DataBrowserUICustomizationContext.d.ts +27 -0
  152. package/dist/contexts/DataBrowserUICustomizationContext.js +13 -0
  153. package/dist/hooks/__tests__/useAccessibleBuckets.test.d.ts +1 -0
  154. package/dist/hooks/__tests__/useAccessibleBuckets.test.js +145 -0
  155. package/dist/hooks/__tests__/useISVBucketDetection.test.js +45 -45
  156. package/dist/hooks/__tests__/useIsBucketEmpty.test.js +27 -27
  157. package/dist/hooks/__tests__/useLoginMutation.test.d.ts +1 -0
  158. package/dist/hooks/__tests__/useLoginMutation.test.js +194 -0
  159. package/dist/hooks/bucketConfiguration.d.ts +8 -1
  160. package/dist/hooks/bucketConfiguration.js +52 -51
  161. package/dist/hooks/bucketOperations.d.ts +10 -1
  162. package/dist/hooks/bucketOperations.js +10 -9
  163. package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +80 -80
  164. package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +80 -80
  165. package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +44 -44
  166. package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +63 -63
  167. package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +65 -65
  168. package/dist/hooks/factories/index.d.ts +4 -4
  169. package/dist/hooks/factories/index.js +2 -2
  170. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
  171. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +16 -13
  172. package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
  173. package/dist/hooks/factories/useCreateS3LoginHook.js +1 -1
  174. package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
  175. package/dist/hooks/factories/useCreateS3MutationHook.js +7 -2
  176. package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
  177. package/dist/hooks/factories/useCreateS3QueryHook.js +11 -6
  178. package/dist/hooks/index.d.ts +19 -12
  179. package/dist/hooks/index.js +16 -9
  180. package/dist/hooks/loginOperations.d.ts +1 -1
  181. package/dist/hooks/loginOperations.js +1 -1
  182. package/dist/hooks/objectOperations.d.ts +2 -2
  183. package/dist/hooks/objectOperations.js +50 -49
  184. package/dist/hooks/presignedOperations.d.ts +4 -4
  185. package/dist/hooks/presignedOperations.js +5 -5
  186. package/dist/hooks/useAccessibleBuckets.d.ts +11 -0
  187. package/dist/hooks/useAccessibleBuckets.js +115 -0
  188. package/dist/hooks/useBatchObjectLegalHold.d.ts +11 -0
  189. package/dist/hooks/useBatchObjectLegalHold.js +48 -0
  190. package/dist/hooks/useBucketConfigEditor.d.ts +31 -0
  191. package/dist/hooks/useBucketConfigEditor.js +82 -0
  192. package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
  193. package/dist/hooks/useDataBrowserNavigate.js +24 -0
  194. package/dist/hooks/useDeleteBucketConfigRule.d.ts +2 -2
  195. package/dist/hooks/useDeleteBucketConfigRule.js +4 -4
  196. package/dist/hooks/useEmptyBucket.js +11 -11
  197. package/dist/hooks/useFeatures.d.ts +7 -0
  198. package/dist/hooks/useFeatures.js +8 -0
  199. package/dist/hooks/useISVBucketDetection.js +6 -6
  200. package/dist/hooks/useIsBucketEmpty.js +4 -4
  201. package/dist/hooks/useLimitedAccessFlow.d.ts +48 -0
  202. package/dist/hooks/useLimitedAccessFlow.js +23 -0
  203. package/dist/hooks/useS3Client.d.ts +6 -0
  204. package/dist/hooks/useS3Client.js +3 -2
  205. package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
  206. package/dist/hooks/useS3ConfigSwitch.js +37 -0
  207. package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
  208. package/dist/hooks/useSupportedNotificationEvents.js +8 -0
  209. package/dist/index.d.ts +6 -6
  210. package/dist/index.js +2 -2
  211. package/dist/schemas/bucketPolicySchema.json +3 -13
  212. package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
  213. package/dist/test/msw/handlers/deleteBucket.js +20 -10
  214. package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
  215. package/dist/test/msw/handlers/getBucketAcl.js +29 -17
  216. package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
  217. package/dist/test/msw/handlers/getBucketLocation.js +29 -15
  218. package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
  219. package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
  220. package/dist/test/msw/handlers/headObject.d.ts +1 -1
  221. package/dist/test/msw/handlers/headObject.js +31 -13
  222. package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
  223. package/dist/test/msw/handlers/listBuckets.js +5 -3
  224. package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
  225. package/dist/test/msw/handlers/listObjectVersions.js +38 -26
  226. package/dist/test/msw/handlers/listObjects.d.ts +1 -1
  227. package/dist/test/msw/handlers/listObjects.js +35 -23
  228. package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
  229. package/dist/test/msw/handlers/objectLegalHold.js +32 -17
  230. package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
  231. package/dist/test/msw/handlers/objectRetention.js +31 -17
  232. package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
  233. package/dist/test/msw/handlers/putBucketAcl.js +29 -14
  234. package/dist/test/msw/handlers/putObject.d.ts +1 -1
  235. package/dist/test/msw/handlers/putObject.js +27 -12
  236. package/dist/test/msw/handlers.d.ts +3 -3
  237. package/dist/test/msw/handlers.js +77 -54
  238. package/dist/test/msw/index.d.ts +2 -2
  239. package/dist/test/msw/index.js +1 -1
  240. package/dist/test/msw/server.d.ts +1 -1
  241. package/dist/test/msw/server.js +1 -1
  242. package/dist/test/msw/utils.js +2 -2
  243. package/dist/test/setup.d.ts +1 -1
  244. package/dist/test/setup.js +13 -30
  245. package/dist/test/testUtils.d.ts +85 -33
  246. package/dist/test/testUtils.js +176 -111
  247. package/dist/test/utils/errorHandling.test.js +119 -119
  248. package/dist/types/index.d.ts +49 -36
  249. package/dist/types/monaco.d.ts +13 -0
  250. package/dist/types/monaco.js +0 -0
  251. package/dist/utils/__tests__/proxyMiddleware.test.d.ts +1 -0
  252. package/dist/utils/__tests__/proxyMiddleware.test.js +579 -0
  253. package/dist/utils/__tests__/s3Client.test.d.ts +1 -0
  254. package/dist/utils/__tests__/s3Client.test.js +340 -0
  255. package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
  256. package/dist/utils/__tests__/s3ConfigIdentifier.test.js +437 -0
  257. package/dist/utils/constants.d.ts +10 -0
  258. package/dist/utils/constants.js +19 -9
  259. package/dist/utils/deletion/index.d.ts +2 -2
  260. package/dist/utils/deletion/index.js +1 -1
  261. package/dist/utils/deletion/messages.d.ts +1 -1
  262. package/dist/utils/deletion/messages.js +4 -4
  263. package/dist/utils/errorHandling.d.ts +3 -3
  264. package/dist/utils/errorHandling.js +6 -6
  265. package/dist/utils/hooks.js +8 -8
  266. package/dist/utils/index.d.ts +5 -4
  267. package/dist/utils/index.js +4 -2
  268. package/dist/utils/proxyMiddleware.d.ts +32 -13
  269. package/dist/utils/proxyMiddleware.js +90 -36
  270. package/dist/utils/s3Client.d.ts +14 -4
  271. package/dist/utils/s3Client.js +5 -26
  272. package/dist/utils/s3ConfigIdentifier.d.ts +79 -0
  273. package/dist/utils/s3ConfigIdentifier.js +57 -0
  274. package/dist/utils/s3RuleUtils.d.ts +5 -5
  275. package/dist/utils/s3RuleUtils.js +17 -17
  276. package/package.json +10 -8
  277. package/dist/components/__tests__/BucketNotificationCreatePage.test.js +0 -316
  278. package/dist/components/buckets/BucketPolicyButton.d.ts +0 -7
  279. package/dist/components/buckets/notifications/BucketNotificationCreatePage.d.ts +0 -1
  280. package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +0 -234
  281. package/dist/hooks/useLoginMutation.d.ts +0 -21
  282. package/dist/hooks/useLoginMutation.js +0 -9
  283. package/dist/utils/useFeatures.d.ts +0 -1
  284. package/dist/utils/useFeatures.js +0 -7
  285. /package/dist/components/__tests__/{BucketNotificationCreatePage.test.d.ts → BucketAccessor.test.d.ts} +0 -0
@@ -1,10 +1,10 @@
1
1
  import { renderHook, waitFor } from "@testing-library/react";
2
- import { useCreateS3LoginHook } from "../useCreateS3LoginHook.js";
3
- import { createS3Client } from "../../../utils/s3Client.js";
2
+ import { createTestWrapper, validateFactoryHook, validateHookResult } from "../../../test/testUtils.js";
4
3
  import { createS3OperationError } from "../../../utils/errorHandling.js";
5
- import { createQueryWrapper, validateFactoryHook, validateHookResult } from "../../../test/testUtils.js";
6
- jest.mock("../../../utils/s3Client");
7
- jest.mock("../../../utils/errorHandling");
4
+ import { createS3Client } from "../../../utils/s3Client.js";
5
+ import { useCreateS3LoginHook } from "../useCreateS3LoginHook.js";
6
+ jest.mock('../../../utils/s3Client');
7
+ jest.mock('../../../utils/errorHandling');
8
8
  const mockCreateS3Client = createS3Client;
9
9
  const mockCreateS3OperationError = createS3OperationError;
10
10
  class MockLoginCommand {
@@ -16,33 +16,33 @@ class MockLoginCommand {
16
16
  const mockS3Client = {
17
17
  send: jest.fn()
18
18
  };
19
- describe("useCreateS3LoginHook - Login Factory Specific", ()=>{
19
+ describe('useCreateS3LoginHook - Login Factory Specific', ()=>{
20
20
  const mockLoginConfig = {
21
- endpoint: "https://s3.amazonaws.com",
22
- region: "us-east-1",
21
+ endpoint: 'https://s3.amazonaws.com',
22
+ region: 'us-east-1',
23
23
  forcePathStyle: false,
24
24
  credentials: {
25
- accessKeyId: "test-access-key",
26
- secretAccessKey: "test-secret-key"
25
+ accessKeyId: 'test-access-key',
26
+ secretAccessKey: 'test-secret-key'
27
27
  }
28
28
  };
29
29
  beforeEach(()=>{
30
30
  jest.clearAllMocks();
31
31
  mockCreateS3Client.mockReturnValue(mockS3Client);
32
32
  });
33
- it("should create a functioning login mutation hook", ()=>{
34
- const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, "S3 Authentication");
35
- validateFactoryHook(useLoginMutation, "S3 Authentication");
33
+ it('should create a functioning login mutation hook', ()=>{
34
+ const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, 'S3 Authentication');
35
+ validateFactoryHook(useLoginMutation, 'S3 Authentication');
36
36
  const { result } = renderHook(()=>useLoginMutation(), {
37
- wrapper: createQueryWrapper()
37
+ wrapper: createTestWrapper()
38
38
  });
39
- validateHookResult(result.current, "mutation");
39
+ validateHookResult(result.current, 'mutation');
40
40
  });
41
- it("should authenticate successfully with valid credentials", async ()=>{
41
+ it('should authenticate successfully with valid credentials', async ()=>{
42
42
  mockS3Client.send.mockResolvedValueOnce({});
43
- const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, "S3 Authentication");
43
+ const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, 'S3 Authentication');
44
44
  const { result } = renderHook(()=>useLoginMutation(), {
45
- wrapper: createQueryWrapper()
45
+ wrapper: createTestWrapper()
46
46
  });
47
47
  result.current.mutate(mockLoginConfig);
48
48
  await waitFor(()=>{
@@ -54,27 +54,27 @@ describe("useCreateS3LoginHook - Login Factory Specific", ()=>{
54
54
  });
55
55
  expect(mockCreateS3Client).toHaveBeenCalledWith(mockLoginConfig);
56
56
  });
57
- it("should handle authentication failure", async ()=>{
58
- const mockError = new Error("Access Denied");
59
- const enhancedError = new Error("Enhanced S3 Authentication Error");
57
+ it('should handle authentication failure', async ()=>{
58
+ const mockError = new Error('Access Denied');
59
+ const enhancedError = new Error('Enhanced S3 Authentication Error');
60
60
  mockS3Client.send.mockRejectedValueOnce(mockError);
61
61
  mockCreateS3OperationError.mockReturnValueOnce(enhancedError);
62
- const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, "S3 Authentication");
62
+ const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, 'S3 Authentication');
63
63
  const { result } = renderHook(()=>useLoginMutation(), {
64
- wrapper: createQueryWrapper()
64
+ wrapper: createTestWrapper()
65
65
  });
66
66
  result.current.mutate(mockLoginConfig);
67
67
  await waitFor(()=>{
68
68
  expect(result.current.isError).toBe(true);
69
69
  });
70
70
  expect(result.current.error).toBe(enhancedError);
71
- expect(mockCreateS3OperationError).toHaveBeenCalledWith(mockError, "S3 Authentication");
71
+ expect(mockCreateS3OperationError).toHaveBeenCalledWith(mockError, 'S3 Authentication');
72
72
  });
73
- it("should create its own S3 client instead of using context client", async ()=>{
73
+ it('should create its own S3 client instead of using context client', async ()=>{
74
74
  mockS3Client.send.mockResolvedValueOnce({});
75
- const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, "S3 Authentication");
75
+ const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, 'S3 Authentication');
76
76
  const { result } = renderHook(()=>useLoginMutation(), {
77
- wrapper: createQueryWrapper()
77
+ wrapper: createTestWrapper()
78
78
  });
79
79
  result.current.mutate(mockLoginConfig);
80
80
  await waitFor(()=>{
@@ -83,18 +83,18 @@ describe("useCreateS3LoginHook - Login Factory Specific", ()=>{
83
83
  expect(mockCreateS3Client).toHaveBeenCalledWith(mockLoginConfig);
84
84
  expect(mockCreateS3Client).toHaveBeenCalledTimes(1);
85
85
  });
86
- it("should handle mutation callbacks correctly", async ()=>{
86
+ it('should handle mutation callbacks correctly', async ()=>{
87
87
  const onSuccess = jest.fn();
88
88
  const onError = jest.fn();
89
89
  const onSettled = jest.fn();
90
90
  mockS3Client.send.mockResolvedValueOnce({});
91
- const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, "S3 Authentication");
91
+ const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, 'S3 Authentication');
92
92
  const { result } = renderHook(()=>useLoginMutation({
93
93
  onSuccess,
94
94
  onError,
95
95
  onSettled
96
96
  }), {
97
- wrapper: createQueryWrapper()
97
+ wrapper: createTestWrapper()
98
98
  });
99
99
  result.current.mutate(mockLoginConfig);
100
100
  await waitFor(()=>{
@@ -108,34 +108,34 @@ describe("useCreateS3LoginHook - Login Factory Specific", ()=>{
108
108
  expect(onError).not.toHaveBeenCalled();
109
109
  expect(onSettled).toHaveBeenCalledWith(expectedResult, null, mockLoginConfig, void 0, expect.any(Object));
110
110
  });
111
- it("should handle network errors during authentication", async ()=>{
112
- const networkError = new Error("Network timeout");
113
- const enhancedError = new Error("Enhanced Network Error");
111
+ it('should handle network errors during authentication', async ()=>{
112
+ const networkError = new Error('Network timeout');
113
+ const enhancedError = new Error('Enhanced Network Error');
114
114
  mockS3Client.send.mockRejectedValueOnce(networkError);
115
115
  mockCreateS3OperationError.mockReturnValueOnce(enhancedError);
116
- const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, "S3 Authentication");
116
+ const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, 'S3 Authentication');
117
117
  const { result } = renderHook(()=>useLoginMutation(), {
118
- wrapper: createQueryWrapper()
118
+ wrapper: createTestWrapper()
119
119
  });
120
120
  result.current.mutate(mockLoginConfig);
121
121
  await waitFor(()=>{
122
122
  expect(result.current.isError).toBe(true);
123
123
  });
124
124
  expect(result.current.error).toBe(enhancedError);
125
- expect(mockCreateS3OperationError).toHaveBeenCalledWith(networkError, "S3 Authentication");
125
+ expect(mockCreateS3OperationError).toHaveBeenCalledWith(networkError, 'S3 Authentication');
126
126
  });
127
- it("should work with credentials containing session token", async ()=>{
127
+ it('should work with credentials containing session token', async ()=>{
128
128
  const configWithToken = {
129
129
  ...mockLoginConfig,
130
130
  credentials: {
131
131
  ...mockLoginConfig.credentials,
132
- sessionToken: "test-session-token"
132
+ sessionToken: 'test-session-token'
133
133
  }
134
134
  };
135
135
  mockS3Client.send.mockResolvedValueOnce({});
136
- const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, "S3 Authentication");
136
+ const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, 'S3 Authentication');
137
137
  const { result } = renderHook(()=>useLoginMutation(), {
138
- wrapper: createQueryWrapper()
138
+ wrapper: createTestWrapper()
139
139
  });
140
140
  result.current.mutate(configWithToken);
141
141
  await waitFor(()=>{
@@ -147,15 +147,15 @@ describe("useCreateS3LoginHook - Login Factory Specific", ()=>{
147
147
  authenticated: true
148
148
  });
149
149
  });
150
- it("should handle custom endpoint configurations", async ()=>{
150
+ it('should handle custom endpoint configurations', async ()=>{
151
151
  const customEndpointConfig = {
152
152
  ...mockLoginConfig,
153
- endpoint: "https://custom-s3.example.com"
153
+ endpoint: 'https://custom-s3.example.com'
154
154
  };
155
155
  mockS3Client.send.mockResolvedValueOnce({});
156
- const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, "S3 Authentication");
156
+ const useLoginMutation = useCreateS3LoginHook(MockLoginCommand, 'S3 Authentication');
157
157
  const { result } = renderHook(()=>useLoginMutation(), {
158
- wrapper: createQueryWrapper()
158
+ wrapper: createTestWrapper()
159
159
  });
160
160
  result.current.mutate(customEndpointConfig);
161
161
  await waitFor(()=>{
@@ -1,10 +1,10 @@
1
1
  import { renderHook, waitFor } from "@testing-library/react";
2
- import { useCreateS3MutationHook } from "../useCreateS3MutationHook.js";
3
- import { useS3Client } from "../../useS3Client.js";
2
+ import { createTestWrapper, validateFactoryHook, validateHookResult } from "../../../test/testUtils.js";
4
3
  import { createS3OperationError } from "../../../utils/errorHandling.js";
5
- import { createQueryWrapper, validateFactoryHook, validateHookResult } from "../../../test/testUtils.js";
6
- jest.mock("../../useS3Client");
7
- jest.mock("../../../utils/errorHandling");
4
+ import { useS3Client } from "../../useS3Client.js";
5
+ import { useCreateS3MutationHook } from "../useCreateS3MutationHook.js";
6
+ jest.mock('../../useS3Client');
7
+ jest.mock('../../../utils/errorHandling');
8
8
  const mockUseS3Client = useS3Client;
9
9
  const mockCreateS3OperationError = createS3OperationError;
10
10
  class MockCommand {
@@ -16,44 +16,44 @@ class MockCommand {
16
16
  const mockS3Client = {
17
17
  send: jest.fn()
18
18
  };
19
- describe("useCreateS3MutationHook - Factory Specific", ()=>{
19
+ describe('useCreateS3MutationHook - Factory Specific', ()=>{
20
20
  beforeEach(()=>{
21
21
  jest.clearAllMocks();
22
22
  mockUseS3Client.mockReturnValue(mockS3Client);
23
23
  });
24
- it("should create a functioning mutation hook", ()=>{
25
- const useMutation = useCreateS3MutationHook(MockCommand, "testMutation");
26
- validateFactoryHook(useMutation, "testMutation");
24
+ it('should create a functioning mutation hook', ()=>{
25
+ const useMutation = useCreateS3MutationHook(MockCommand, 'testMutation');
26
+ validateFactoryHook(useMutation, 'testMutation');
27
27
  const { result } = renderHook(()=>useMutation(), {
28
- wrapper: createQueryWrapper()
28
+ wrapper: createTestWrapper()
29
29
  });
30
- validateHookResult(result.current, "mutation");
30
+ validateHookResult(result.current, 'mutation');
31
31
  });
32
- it("should accept invalidation keys parameter", ()=>{
33
- const useMutation = useCreateS3MutationHook(MockCommand, "testMutation", [
34
- "ListObjects",
35
- "TestQuery"
32
+ it('should accept invalidation keys parameter', ()=>{
33
+ const useMutation = useCreateS3MutationHook(MockCommand, 'testMutation', [
34
+ 'ListObjects',
35
+ 'TestQuery'
36
36
  ]);
37
- validateFactoryHook(useMutation, "testMutation");
37
+ validateFactoryHook(useMutation, 'testMutation');
38
38
  const { result } = renderHook(()=>useMutation(), {
39
- wrapper: createQueryWrapper()
39
+ wrapper: createTestWrapper()
40
40
  });
41
- validateHookResult(result.current, "mutation");
41
+ validateHookResult(result.current, 'mutation');
42
42
  });
43
- it("should execute mutation successfully", async ()=>{
43
+ it('should execute mutation successfully', async ()=>{
44
44
  const mockResponse = {
45
45
  success: true,
46
- key: "uploaded-file.txt"
46
+ key: 'uploaded-file.txt'
47
47
  };
48
48
  mockS3Client.send.mockResolvedValue(mockResponse);
49
- const useMutation = useCreateS3MutationHook(MockCommand, "PutObject");
49
+ const useMutation = useCreateS3MutationHook(MockCommand, 'PutObject');
50
50
  const { result } = renderHook(()=>useMutation(), {
51
- wrapper: createQueryWrapper()
51
+ wrapper: createTestWrapper()
52
52
  });
53
53
  result.current.mutate({
54
- Bucket: "test-bucket",
55
- Key: "test-file.txt",
56
- Body: "content"
54
+ Bucket: 'test-bucket',
55
+ Key: 'test-file.txt',
56
+ Body: 'content'
57
57
  });
58
58
  await waitFor(()=>{
59
59
  expect(result.current.isSuccess).toBe(true);
@@ -61,32 +61,32 @@ describe("useCreateS3MutationHook - Factory Specific", ()=>{
61
61
  expect(result.current.data).toEqual(mockResponse);
62
62
  expect(mockS3Client.send).toHaveBeenCalledWith(expect.objectContaining({
63
63
  input: {
64
- Bucket: "test-bucket",
65
- Key: "test-file.txt",
66
- Body: "content"
64
+ Bucket: 'test-bucket',
65
+ Key: 'test-file.txt',
66
+ Body: 'content'
67
67
  }
68
68
  }));
69
69
  });
70
- it("should handle mutation errors with proper context", async ()=>{
71
- const mockError = new Error("Access Denied");
72
- const enhancedError = new Error("Enhanced Access Denied");
70
+ it('should handle mutation errors with proper context', async ()=>{
71
+ const mockError = new Error('Access Denied');
72
+ const enhancedError = new Error('Enhanced Access Denied');
73
73
  mockS3Client.send.mockRejectedValue(mockError);
74
74
  mockCreateS3OperationError.mockReturnValue(enhancedError);
75
- const useMutation = useCreateS3MutationHook(MockCommand, "PutObject");
75
+ const useMutation = useCreateS3MutationHook(MockCommand, 'PutObject');
76
76
  const { result } = renderHook(()=>useMutation(), {
77
- wrapper: createQueryWrapper()
77
+ wrapper: createTestWrapper()
78
78
  });
79
79
  result.current.mutate({
80
- Bucket: "test-bucket",
81
- Key: "test-file.txt"
80
+ Bucket: 'test-bucket',
81
+ Key: 'test-file.txt'
82
82
  });
83
83
  await waitFor(()=>{
84
84
  expect(result.current.isError).toBe(true);
85
85
  });
86
86
  expect(result.current.error).toBe(enhancedError);
87
- expect(mockCreateS3OperationError).toHaveBeenCalledWith(mockError, "PutObject", "test-bucket");
87
+ expect(mockCreateS3OperationError).toHaveBeenCalledWith(mockError, 'PutObject', 'test-bucket');
88
88
  });
89
- it("should handle mutation callbacks correctly", async ()=>{
89
+ it('should handle mutation callbacks correctly', async ()=>{
90
90
  const mockResponse = {
91
91
  success: true
92
92
  };
@@ -94,17 +94,17 @@ describe("useCreateS3MutationHook - Factory Specific", ()=>{
94
94
  const onError = jest.fn();
95
95
  const onSettled = jest.fn();
96
96
  mockS3Client.send.mockResolvedValue(mockResponse);
97
- const useMutation = useCreateS3MutationHook(MockCommand, "PutObject");
97
+ const useMutation = useCreateS3MutationHook(MockCommand, 'PutObject');
98
98
  const { result } = renderHook(()=>useMutation({
99
99
  onSuccess,
100
100
  onError,
101
101
  onSettled
102
102
  }), {
103
- wrapper: createQueryWrapper()
103
+ wrapper: createTestWrapper()
104
104
  });
105
105
  const variables = {
106
- Bucket: "test-bucket",
107
- Key: "test-file.txt"
106
+ Bucket: 'test-bucket',
107
+ Key: 'test-file.txt'
108
108
  };
109
109
  result.current.mutate(variables);
110
110
  await waitFor(()=>{
@@ -114,28 +114,28 @@ describe("useCreateS3MutationHook - Factory Specific", ()=>{
114
114
  expect(onError).not.toHaveBeenCalled();
115
115
  expect(onSettled).toHaveBeenCalledWith(mockResponse, null, variables, void 0, expect.any(Object));
116
116
  });
117
- it("should handle mutation with invalidation keys", async ()=>{
117
+ it('should handle mutation with invalidation keys', async ()=>{
118
118
  const mockResponse = {
119
119
  success: true
120
120
  };
121
121
  mockS3Client.send.mockResolvedValue(mockResponse);
122
- const useMutation = useCreateS3MutationHook(MockCommand, "PutObject", [
123
- "ListObjects",
124
- "TestQuery"
122
+ const useMutation = useCreateS3MutationHook(MockCommand, 'PutObject', [
123
+ 'ListObjects',
124
+ 'TestQuery'
125
125
  ]);
126
126
  const { result } = renderHook(()=>useMutation(), {
127
- wrapper: createQueryWrapper()
127
+ wrapper: createTestWrapper()
128
128
  });
129
129
  result.current.mutate({
130
- Bucket: "test-bucket",
131
- Key: "test-file.txt"
130
+ Bucket: 'test-bucket',
131
+ Key: 'test-file.txt'
132
132
  });
133
133
  await waitFor(()=>{
134
134
  expect(result.current.isSuccess).toBe(true);
135
135
  });
136
136
  expect(result.current.data).toEqual(mockResponse);
137
137
  });
138
- it("should handle concurrent mutations correctly", async ()=>{
138
+ it('should handle concurrent mutations correctly', async ()=>{
139
139
  const mockResponse1 = {
140
140
  success: true,
141
141
  id: 1
@@ -149,20 +149,20 @@ describe("useCreateS3MutationHook - Factory Specific", ()=>{
149
149
  callCount++;
150
150
  return Promise.resolve(1 === callCount ? mockResponse1 : mockResponse2);
151
151
  });
152
- const useMutation = useCreateS3MutationHook(MockCommand, "PutObject");
152
+ const useMutation = useCreateS3MutationHook(MockCommand, 'PutObject');
153
153
  const { result: result1 } = renderHook(()=>useMutation(), {
154
- wrapper: createQueryWrapper()
154
+ wrapper: createTestWrapper()
155
155
  });
156
156
  const { result: result2 } = renderHook(()=>useMutation(), {
157
- wrapper: createQueryWrapper()
157
+ wrapper: createTestWrapper()
158
158
  });
159
159
  result1.current.mutate({
160
- Bucket: "test-bucket",
161
- Key: "file1.txt"
160
+ Bucket: 'test-bucket',
161
+ Key: 'file1.txt'
162
162
  });
163
163
  result2.current.mutate({
164
- Bucket: "test-bucket",
165
- Key: "file2.txt"
164
+ Bucket: 'test-bucket',
165
+ Key: 'file2.txt'
166
166
  });
167
167
  await waitFor(()=>{
168
168
  expect(result1.current.isSuccess).toBe(true);
@@ -172,7 +172,7 @@ describe("useCreateS3MutationHook - Factory Specific", ()=>{
172
172
  expect(result2.current.data).toEqual(mockResponse2);
173
173
  expect(mockS3Client.send).toHaveBeenCalledTimes(2);
174
174
  });
175
- it("should pass command correctly for mutations", async ()=>{
175
+ it('should pass command correctly for mutations', async ()=>{
176
176
  let capturedCommand;
177
177
  mockS3Client.send.mockImplementation((command)=>{
178
178
  capturedCommand = command;
@@ -180,21 +180,21 @@ describe("useCreateS3MutationHook - Factory Specific", ()=>{
180
180
  success: true
181
181
  });
182
182
  });
183
- const useMutation = useCreateS3MutationHook(MockCommand, "PutObject");
183
+ const useMutation = useCreateS3MutationHook(MockCommand, 'PutObject');
184
184
  const { result } = renderHook(()=>useMutation(), {
185
- wrapper: createQueryWrapper()
185
+ wrapper: createTestWrapper()
186
186
  });
187
187
  result.current.mutate({
188
- Bucket: "test-bucket",
189
- Key: "test-file.txt"
188
+ Bucket: 'test-bucket',
189
+ Key: 'test-file.txt'
190
190
  });
191
191
  await waitFor(()=>{
192
192
  expect(result.current.isSuccess).toBe(true);
193
193
  });
194
194
  expect(capturedCommand).toBeInstanceOf(MockCommand);
195
195
  expect(capturedCommand.input).toEqual({
196
- Bucket: "test-bucket",
197
- Key: "test-file.txt"
196
+ Bucket: 'test-bucket',
197
+ Key: 'test-file.txt'
198
198
  });
199
199
  });
200
200
  });