@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,56 +1,56 @@
1
1
  import { renderHook, waitFor } from "@testing-library/react";
2
- import { useCreateS3FunctionMutationHook } 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 { useCreateS3FunctionMutationHook } from "../useCreateS3MutationHook.js";
6
+ jest.mock('../../useS3Client');
7
+ jest.mock('../../../utils/errorHandling');
8
8
  const mockUseS3Client = useS3Client;
9
9
  const mockCreateS3OperationError = createS3OperationError;
10
10
  const mockS3Client = {
11
11
  config: {}
12
12
  };
13
13
  const mockOperation = jest.fn();
14
- describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
14
+ describe('useCreateS3FunctionMutationHook - Factory Specific', ()=>{
15
15
  beforeEach(()=>{
16
16
  jest.clearAllMocks();
17
17
  mockUseS3Client.mockReturnValue(mockS3Client);
18
18
  mockOperation.mockReset();
19
19
  });
20
- it("should create a functioning mutation hook", ()=>{
20
+ it('should create a functioning mutation hook', ()=>{
21
21
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
22
- validateFactoryHook(useMutation, "function-based mutation");
22
+ validateFactoryHook(useMutation, 'function-based mutation');
23
23
  const { result } = renderHook(()=>useMutation(), {
24
- wrapper: createQueryWrapper()
24
+ wrapper: createTestWrapper()
25
25
  });
26
- validateHookResult(result.current, "mutation");
26
+ validateHookResult(result.current, 'mutation');
27
27
  });
28
- it("should accept invalidation keys parameter", ()=>{
28
+ it('should accept invalidation keys parameter', ()=>{
29
29
  const useMutation = useCreateS3FunctionMutationHook(mockOperation, [
30
- "PresignedUrls",
31
- "TestQuery"
30
+ 'PresignedUrls',
31
+ 'TestQuery'
32
32
  ]);
33
- validateFactoryHook(useMutation, "function-based mutation");
33
+ validateFactoryHook(useMutation, 'function-based mutation');
34
34
  const { result } = renderHook(()=>useMutation(), {
35
- wrapper: createQueryWrapper()
35
+ wrapper: createTestWrapper()
36
36
  });
37
- validateHookResult(result.current, "mutation");
37
+ validateHookResult(result.current, 'mutation');
38
38
  });
39
- it("should execute function operation successfully", async ()=>{
39
+ it('should execute function operation successfully', async ()=>{
40
40
  const mockResponse = {
41
- Url: "https://presigned.url",
41
+ Url: 'https://presigned.url',
42
42
  ExpiresAt: new Date(),
43
- Bucket: "test-bucket",
44
- Key: "test-key"
43
+ Bucket: 'test-bucket',
44
+ Key: 'test-key'
45
45
  };
46
46
  mockOperation.mockResolvedValue(mockResponse);
47
47
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
48
48
  const { result } = renderHook(()=>useMutation(), {
49
- wrapper: createQueryWrapper()
49
+ wrapper: createTestWrapper()
50
50
  });
51
51
  const inputParams = {
52
- Bucket: "test-bucket",
53
- Key: "test-key",
52
+ Bucket: 'test-bucket',
53
+ Key: 'test-key',
54
54
  expiresIn: 3600
55
55
  };
56
56
  result.current.mutate(inputParams);
@@ -61,30 +61,30 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
61
61
  expect(mockOperation).toHaveBeenCalledWith(mockS3Client, inputParams);
62
62
  expect(mockOperation).toHaveBeenCalledTimes(1);
63
63
  });
64
- it("should handle function operation errors", async ()=>{
65
- const mockError = new Error("Presigned URL generation failed");
64
+ it('should handle function operation errors', async ()=>{
65
+ const mockError = new Error('Presigned URL generation failed');
66
66
  mockOperation.mockRejectedValue(mockError);
67
67
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
68
68
  const { result } = renderHook(()=>useMutation(), {
69
- wrapper: createQueryWrapper()
69
+ wrapper: createTestWrapper()
70
70
  });
71
71
  result.current.mutate({
72
- Bucket: "test-bucket",
73
- Key: "test-key"
72
+ Bucket: 'test-bucket',
73
+ Key: 'test-key'
74
74
  });
75
75
  await waitFor(()=>{
76
76
  expect(result.current.isError).toBe(true);
77
77
  });
78
78
  expect(result.current.error).toBe(mockError);
79
79
  expect(mockOperation).toHaveBeenCalledWith(mockS3Client, {
80
- Bucket: "test-bucket",
81
- Key: "test-key"
80
+ Bucket: 'test-bucket',
81
+ Key: 'test-key'
82
82
  });
83
83
  expect(mockCreateS3OperationError).not.toHaveBeenCalled();
84
84
  });
85
- it("should handle function operation with internal error wrapping", async ()=>{
86
- const mockInternalError = new Error("Internal operation error");
87
- const mockWrappedError = new Error("Wrapped operation error");
85
+ it('should handle function operation with internal error wrapping', async ()=>{
86
+ const mockInternalError = new Error('Internal operation error');
87
+ const mockWrappedError = new Error('Wrapped operation error');
88
88
  const mockOperationWithErrorHandling = jest.fn().mockImplementation(async ()=>{
89
89
  try {
90
90
  throw mockInternalError;
@@ -95,24 +95,24 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
95
95
  });
96
96
  const useMutation = useCreateS3FunctionMutationHook(mockOperationWithErrorHandling);
97
97
  const { result } = renderHook(()=>useMutation(), {
98
- wrapper: createQueryWrapper()
98
+ wrapper: createTestWrapper()
99
99
  });
100
100
  result.current.mutate({
101
- Bucket: "test-bucket",
102
- Key: "test-key"
101
+ Bucket: 'test-bucket',
102
+ Key: 'test-key'
103
103
  });
104
104
  await waitFor(()=>{
105
105
  expect(result.current.isError).toBe(true);
106
106
  });
107
107
  expect(result.current.error).toBe(mockWrappedError);
108
108
  expect(mockOperationWithErrorHandling).toHaveBeenCalledWith(mockS3Client, {
109
- Bucket: "test-bucket",
110
- Key: "test-key"
109
+ Bucket: 'test-bucket',
110
+ Key: 'test-key'
111
111
  });
112
112
  });
113
- it("should handle mutation callbacks correctly", async ()=>{
113
+ it('should handle mutation callbacks correctly', async ()=>{
114
114
  const mockResponse = {
115
- Url: "https://presigned.url",
115
+ Url: 'https://presigned.url',
116
116
  ExpiresAt: new Date()
117
117
  };
118
118
  const onSuccess = jest.fn();
@@ -125,11 +125,11 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
125
125
  onError,
126
126
  onSettled
127
127
  }), {
128
- wrapper: createQueryWrapper()
128
+ wrapper: createTestWrapper()
129
129
  });
130
130
  const variables = {
131
- Bucket: "test-bucket",
132
- Key: "test-key"
131
+ Bucket: 'test-bucket',
132
+ Key: 'test-key'
133
133
  };
134
134
  result.current.mutate(variables);
135
135
  await waitFor(()=>{
@@ -139,38 +139,38 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
139
139
  expect(onError).not.toHaveBeenCalled();
140
140
  expect(onSettled).toHaveBeenCalledWith(mockResponse, null, variables, void 0, expect.any(Object));
141
141
  });
142
- it("should handle function operation with invalidation keys", async ()=>{
142
+ it('should handle function operation with invalidation keys', async ()=>{
143
143
  const mockResponse = {
144
144
  success: true
145
145
  };
146
146
  mockOperation.mockResolvedValue(mockResponse);
147
147
  const useMutation = useCreateS3FunctionMutationHook(mockOperation, [
148
- "PresignedUrls",
149
- "ObjectList"
148
+ 'PresignedUrls',
149
+ 'ObjectList'
150
150
  ]);
151
151
  const { result } = renderHook(()=>useMutation(), {
152
- wrapper: createQueryWrapper()
152
+ wrapper: createTestWrapper()
153
153
  });
154
154
  result.current.mutate({
155
- Bucket: "test-bucket",
156
- Key: "test-key"
155
+ Bucket: 'test-bucket',
156
+ Key: 'test-key'
157
157
  });
158
158
  await waitFor(()=>{
159
159
  expect(result.current.isSuccess).toBe(true);
160
160
  });
161
161
  expect(result.current.data).toEqual(mockResponse);
162
162
  expect(mockOperation).toHaveBeenCalledWith(mockS3Client, {
163
- Bucket: "test-bucket",
164
- Key: "test-key"
163
+ Bucket: 'test-bucket',
164
+ Key: 'test-key'
165
165
  });
166
166
  });
167
- it("should handle concurrent function operations correctly", async ()=>{
167
+ it('should handle concurrent function operations correctly', async ()=>{
168
168
  const mockResponse1 = {
169
- Url: "https://presigned1.url",
169
+ Url: 'https://presigned1.url',
170
170
  ExpiresAt: new Date()
171
171
  };
172
172
  const mockResponse2 = {
173
- Url: "https://presigned2.url",
173
+ Url: 'https://presigned2.url',
174
174
  ExpiresAt: new Date()
175
175
  };
176
176
  let callCount = 0;
@@ -180,18 +180,18 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
180
180
  });
181
181
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
182
182
  const { result: result1 } = renderHook(()=>useMutation(), {
183
- wrapper: createQueryWrapper()
183
+ wrapper: createTestWrapper()
184
184
  });
185
185
  const { result: result2 } = renderHook(()=>useMutation(), {
186
- wrapper: createQueryWrapper()
186
+ wrapper: createTestWrapper()
187
187
  });
188
188
  result1.current.mutate({
189
- Bucket: "test-bucket",
190
- Key: "file1.txt"
189
+ Bucket: 'test-bucket',
190
+ Key: 'file1.txt'
191
191
  });
192
192
  result2.current.mutate({
193
- Bucket: "test-bucket",
194
- Key: "file2.txt"
193
+ Bucket: 'test-bucket',
194
+ Key: 'file2.txt'
195
195
  });
196
196
  await waitFor(()=>{
197
197
  expect(result1.current.isSuccess).toBe(true);
@@ -201,7 +201,7 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
201
201
  expect(result2.current.data).toEqual(mockResponse2);
202
202
  expect(mockOperation).toHaveBeenCalledTimes(2);
203
203
  });
204
- it("should pass correct parameters to function operation", async ()=>{
204
+ it('should pass correct parameters to function operation', async ()=>{
205
205
  const mockResponse = {
206
206
  success: true
207
207
  };
@@ -214,12 +214,12 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
214
214
  });
215
215
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
216
216
  const { result } = renderHook(()=>useMutation(), {
217
- wrapper: createQueryWrapper()
217
+ wrapper: createTestWrapper()
218
218
  });
219
219
  const inputParams = {
220
- Bucket: "test-bucket",
221
- Key: "test-key",
222
- ContentType: "text/plain",
220
+ Bucket: 'test-bucket',
221
+ Key: 'test-key',
222
+ ContentType: 'text/plain',
223
223
  expiresIn: 1800
224
224
  };
225
225
  result.current.mutate(inputParams);
@@ -229,25 +229,25 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
229
229
  expect(capturedClient).toBe(mockS3Client);
230
230
  expect(capturedParams).toEqual(inputParams);
231
231
  });
232
- it("should handle complex function operations with metadata", async ()=>{
232
+ it('should handle complex function operations with metadata', async ()=>{
233
233
  const mockResponse = {
234
- Url: "https://complex-presigned.url",
235
- ExpiresAt: new Date("2024-01-01T12:00:00Z"),
236
- Bucket: "complex-bucket",
237
- Key: "complex/path/file.txt",
238
- VersionId: "version123"
234
+ Url: 'https://complex-presigned.url',
235
+ ExpiresAt: new Date('2024-01-01T12:00:00Z'),
236
+ Bucket: 'complex-bucket',
237
+ Key: 'complex/path/file.txt',
238
+ VersionId: 'version123'
239
239
  };
240
240
  mockOperation.mockResolvedValue(mockResponse);
241
241
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
242
242
  const { result } = renderHook(()=>useMutation(), {
243
- wrapper: createQueryWrapper()
243
+ wrapper: createTestWrapper()
244
244
  });
245
245
  const complexParams = {
246
- Bucket: "complex-bucket",
247
- Key: "complex/path/file.txt",
248
- VersionId: "version123",
249
- ResponseContentType: "application/json",
250
- ResponseContentDisposition: "attachment; filename=data.json",
246
+ Bucket: 'complex-bucket',
247
+ Key: 'complex/path/file.txt',
248
+ VersionId: 'version123',
249
+ ResponseContentType: 'application/json',
250
+ ResponseContentDisposition: 'attachment; filename=data.json',
251
251
  expiresIn: 7200
252
252
  };
253
253
  result.current.mutate(complexParams);
@@ -257,14 +257,14 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
257
257
  expect(result.current.data).toEqual(mockResponse);
258
258
  expect(mockOperation).toHaveBeenCalledWith(mockS3Client, complexParams);
259
259
  });
260
- it("should handle function operations without parameters", async ()=>{
260
+ it('should handle function operations without parameters', async ()=>{
261
261
  const mockResponse = {
262
- status: "operation completed"
262
+ status: 'operation completed'
263
263
  };
264
264
  mockOperation.mockResolvedValue(mockResponse);
265
265
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
266
266
  const { result } = renderHook(()=>useMutation(), {
267
- wrapper: createQueryWrapper()
267
+ wrapper: createTestWrapper()
268
268
  });
269
269
  result.current.mutate(void 0);
270
270
  await waitFor(()=>{
@@ -1,10 +1,10 @@
1
1
  import { renderHook, waitFor } from "@testing-library/react";
2
- import { useCreateS3InfiniteQueryHook } from "../useCreateS3InfiniteQueryHook.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 { useCreateS3InfiniteQueryHook } from "../useCreateS3InfiniteQueryHook.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,82 +16,82 @@ class MockCommand {
16
16
  const mockS3Client = {
17
17
  send: jest.fn()
18
18
  };
19
- describe("useCreateS3InfiniteQueryHook - Pagination Logic", ()=>{
19
+ describe('useCreateS3InfiniteQueryHook - Pagination Logic', ()=>{
20
20
  beforeEach(()=>{
21
21
  jest.clearAllMocks();
22
22
  mockUseS3Client.mockReturnValue(mockS3Client);
23
23
  });
24
- it("should create a functioning infinite query hook", ()=>{
25
- const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
26
- validateFactoryHook(useInfiniteQuery, "ListObjects");
24
+ it('should create a functioning infinite query hook', ()=>{
25
+ const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
26
+ validateFactoryHook(useInfiniteQuery, 'ListObjects');
27
27
  const { result } = renderHook(()=>useInfiniteQuery({
28
- Bucket: "test-bucket"
28
+ Bucket: 'test-bucket'
29
29
  }), {
30
- wrapper: createQueryWrapper()
30
+ wrapper: createTestWrapper()
31
31
  });
32
- validateHookResult(result.current, "infiniteQuery");
32
+ validateHookResult(result.current, 'infiniteQuery');
33
33
  });
34
- it("should handle getPaginationParams for different operations", async ()=>{
34
+ it('should handle getPaginationParams for different operations', async ()=>{
35
35
  const mockResponse = {
36
36
  IsTruncated: false
37
37
  };
38
38
  mockS3Client.send.mockResolvedValue(mockResponse);
39
- const useListObjects = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
39
+ const useListObjects = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
40
40
  const { result: listResult } = renderHook(()=>useListObjects({
41
- Bucket: "test-bucket"
41
+ Bucket: 'test-bucket'
42
42
  }), {
43
- wrapper: createQueryWrapper()
43
+ wrapper: createTestWrapper()
44
44
  });
45
- const useListVersions = useCreateS3InfiniteQueryHook(MockCommand, "ListObjectVersions");
45
+ const useListVersions = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjectVersions');
46
46
  const { result: versionsResult } = renderHook(()=>useListVersions({
47
- Bucket: "test-bucket"
47
+ Bucket: 'test-bucket'
48
48
  }), {
49
- wrapper: createQueryWrapper()
49
+ wrapper: createTestWrapper()
50
50
  });
51
51
  await waitFor(()=>{
52
- expect(listResult.current.fetchStatus).not.toBe("idle");
53
- expect(versionsResult.current.fetchStatus).not.toBe("idle");
52
+ expect(listResult.current.fetchStatus).not.toBe('idle');
53
+ expect(versionsResult.current.fetchStatus).not.toBe('idle');
54
54
  });
55
- expect(typeof listResult.current.fetchNextPage).toBe("function");
56
- expect(typeof versionsResult.current.fetchNextPage).toBe("function");
55
+ expect(typeof listResult.current.fetchNextPage).toBe('function');
56
+ expect(typeof versionsResult.current.fetchNextPage).toBe('function');
57
57
  });
58
- it("should handle Prefix parameter in enabled logic correctly", ()=>{
59
- const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
58
+ it('should handle Prefix parameter in enabled logic correctly', ()=>{
59
+ const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
60
60
  const { result: undefinedResult } = renderHook(()=>useInfiniteQuery({
61
- Bucket: "test-bucket",
61
+ Bucket: 'test-bucket',
62
62
  Prefix: void 0
63
63
  }), {
64
- wrapper: createQueryWrapper()
64
+ wrapper: createTestWrapper()
65
65
  });
66
- expect(undefinedResult.current.fetchStatus).toBe("idle");
66
+ expect(undefinedResult.current.fetchStatus).toBe('idle');
67
67
  const { result: definedResult } = renderHook(()=>useInfiniteQuery({
68
- Bucket: "test-bucket",
69
- Prefix: "folder/"
68
+ Bucket: 'test-bucket',
69
+ Prefix: 'folder/'
70
70
  }), {
71
- wrapper: createQueryWrapper()
71
+ wrapper: createTestWrapper()
72
72
  });
73
- expect(definedResult.current.fetchStatus).not.toBe("idle");
73
+ expect(definedResult.current.fetchStatus).not.toBe('idle');
74
74
  });
75
- it("should handle pagination data correctly", async ()=>{
75
+ it('should handle pagination data correctly', async ()=>{
76
76
  const mockFirstPage = {
77
77
  Contents: [
78
78
  {
79
- Key: "file1.txt"
79
+ Key: 'file1.txt'
80
80
  },
81
81
  {
82
- Key: "file2.txt"
82
+ Key: 'file2.txt'
83
83
  }
84
84
  ],
85
85
  IsTruncated: true,
86
- NextContinuationToken: "token123"
86
+ NextContinuationToken: 'token123'
87
87
  };
88
88
  const mockSecondPage = {
89
89
  Contents: [
90
90
  {
91
- Key: "file3.txt"
91
+ Key: 'file3.txt'
92
92
  },
93
93
  {
94
- Key: "file4.txt"
94
+ Key: 'file4.txt'
95
95
  }
96
96
  ],
97
97
  IsTruncated: false
@@ -101,11 +101,11 @@ describe("useCreateS3InfiniteQueryHook - Pagination Logic", ()=>{
101
101
  callCount++;
102
102
  return Promise.resolve(1 === callCount ? mockFirstPage : mockSecondPage);
103
103
  });
104
- const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
104
+ const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
105
105
  const { result } = renderHook(()=>useInfiniteQuery({
106
- Bucket: "test-bucket"
106
+ Bucket: 'test-bucket'
107
107
  }), {
108
- wrapper: createQueryWrapper()
108
+ wrapper: createTestWrapper()
109
109
  });
110
110
  await waitFor(()=>{
111
111
  expect(result.current.isSuccess).toBe(true);
@@ -123,30 +123,30 @@ describe("useCreateS3InfiniteQueryHook - Pagination Logic", ()=>{
123
123
  expect(finalData?.pages?.[1]).toEqual(mockSecondPage);
124
124
  expect(result.current.hasNextPage).toBe(false);
125
125
  });
126
- it("should handle ListObjectVersions pagination patterns", async ()=>{
126
+ it('should handle ListObjectVersions pagination patterns', async ()=>{
127
127
  const mockVersionsResponse = {
128
128
  Versions: [
129
129
  {
130
- Key: "file1.txt",
131
- VersionId: "v1"
130
+ Key: 'file1.txt',
131
+ VersionId: 'v1'
132
132
  }
133
133
  ],
134
134
  DeleteMarkers: [
135
135
  {
136
- Key: "file2.txt",
137
- VersionId: "v2"
136
+ Key: 'file2.txt',
137
+ VersionId: 'v2'
138
138
  }
139
139
  ],
140
140
  IsTruncated: true,
141
- NextKeyMarker: "file1.txt",
142
- NextVersionIdMarker: "v1"
141
+ NextKeyMarker: 'file1.txt',
142
+ NextVersionIdMarker: 'v1'
143
143
  };
144
144
  mockS3Client.send.mockResolvedValue(mockVersionsResponse);
145
- const useVersionsQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjectVersions");
145
+ const useVersionsQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjectVersions');
146
146
  const { result } = renderHook(()=>useVersionsQuery({
147
- Bucket: "test-bucket"
147
+ Bucket: 'test-bucket'
148
148
  }), {
149
- wrapper: createQueryWrapper()
149
+ wrapper: createTestWrapper()
150
150
  });
151
151
  await waitFor(()=>{
152
152
  expect(result.current.isSuccess).toBe(true);
@@ -155,67 +155,67 @@ describe("useCreateS3InfiniteQueryHook - Pagination Logic", ()=>{
155
155
  expect(data?.pages).toHaveLength(1);
156
156
  expect(data?.pages?.[0]).toEqual(mockVersionsResponse);
157
157
  expect(result.current.hasNextPage).toBe(true);
158
- expect(mockVersionsResponse.NextKeyMarker).toBe("file1.txt");
159
- expect(mockVersionsResponse.NextVersionIdMarker).toBe("v1");
158
+ expect(mockVersionsResponse.NextKeyMarker).toBe('file1.txt');
159
+ expect(mockVersionsResponse.NextVersionIdMarker).toBe('v1');
160
160
  });
161
- it("should handle infinite query errors with context", async ()=>{
162
- const mockError = new Error("S3 List Error");
163
- const enhancedError = new Error("Enhanced S3 List Error");
161
+ it('should handle infinite query errors with context', async ()=>{
162
+ const mockError = new Error('S3 List Error');
163
+ const enhancedError = new Error('Enhanced S3 List Error');
164
164
  mockS3Client.send.mockRejectedValue(mockError);
165
165
  mockCreateS3OperationError.mockReturnValue(enhancedError);
166
- const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
166
+ const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
167
167
  const { result } = renderHook(()=>useInfiniteQuery({
168
- Bucket: "test-bucket"
168
+ Bucket: 'test-bucket'
169
169
  }), {
170
- wrapper: createQueryWrapper()
170
+ wrapper: createTestWrapper()
171
171
  });
172
172
  await waitFor(()=>{
173
173
  expect(result.current.isError).toBe(true);
174
174
  });
175
175
  expect(result.current.error).toBe(enhancedError);
176
- expect(mockCreateS3OperationError).toHaveBeenCalledWith(mockError, "ListObjects", "test-bucket");
176
+ expect(mockCreateS3OperationError).toHaveBeenCalledWith(mockError, 'ListObjects', 'test-bucket');
177
177
  });
178
- it("should handle fetchNextPage correctly", async ()=>{
178
+ it('should handle fetchNextPage correctly', async ()=>{
179
179
  const mockFirstPage = {
180
180
  Contents: [
181
181
  {
182
- Key: "file1.txt"
182
+ Key: 'file1.txt'
183
183
  }
184
184
  ],
185
185
  IsTruncated: true,
186
- NextContinuationToken: "token123"
186
+ NextContinuationToken: 'token123'
187
187
  };
188
188
  mockS3Client.send.mockResolvedValue(mockFirstPage);
189
- const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
189
+ const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
190
190
  const { result } = renderHook(()=>useInfiniteQuery({
191
- Bucket: "test-bucket"
191
+ Bucket: 'test-bucket'
192
192
  }), {
193
- wrapper: createQueryWrapper()
193
+ wrapper: createTestWrapper()
194
194
  });
195
195
  await waitFor(()=>{
196
196
  expect(result.current.isSuccess).toBe(true);
197
197
  });
198
- expect(typeof result.current.fetchNextPage).toBe("function");
198
+ expect(typeof result.current.fetchNextPage).toBe('function');
199
199
  expect(result.current.isFetchingNextPage).toBe(false);
200
200
  expect(result.current.hasNextPage).toBe(true);
201
201
  expect(()=>result.current.fetchNextPage()).not.toThrow();
202
202
  });
203
- it("should handle infinite query options correctly", ()=>{
204
- const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
203
+ it('should handle infinite query options correctly', ()=>{
204
+ const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
205
205
  const customOptions = {
206
206
  enabled: false,
207
207
  staleTime: 10000,
208
208
  refetchOnWindowFocus: false
209
209
  };
210
210
  const { result } = renderHook(()=>useInfiniteQuery({
211
- Bucket: "test-bucket"
211
+ Bucket: 'test-bucket'
212
212
  }, customOptions), {
213
- wrapper: createQueryWrapper()
213
+ wrapper: createTestWrapper()
214
214
  });
215
- expect(result.current.fetchStatus).toBe("idle");
215
+ expect(result.current.fetchStatus).toBe('idle');
216
216
  expect(result.current.isLoading).toBe(false);
217
217
  });
218
- it("should pass AbortSignal correctly for infinite queries", async ()=>{
218
+ it('should pass AbortSignal correctly for infinite queries', async ()=>{
219
219
  let capturedAbortSignal;
220
220
  mockS3Client.send.mockImplementation((_command, options)=>{
221
221
  capturedAbortSignal = options?.abortSignal;
@@ -224,11 +224,11 @@ describe("useCreateS3InfiniteQueryHook - Pagination Logic", ()=>{
224
224
  IsTruncated: false
225
225
  });
226
226
  });
227
- const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
227
+ const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
228
228
  const { result } = renderHook(()=>useInfiniteQuery({
229
- Bucket: "test-bucket"
229
+ Bucket: 'test-bucket'
230
230
  }), {
231
- wrapper: createQueryWrapper()
231
+ wrapper: createTestWrapper()
232
232
  });
233
233
  await waitFor(()=>{
234
234
  expect(result.current.isSuccess).toBe(true);
@@ -236,17 +236,17 @@ describe("useCreateS3InfiniteQueryHook - Pagination Logic", ()=>{
236
236
  expect(capturedAbortSignal).toBeInstanceOf(AbortSignal);
237
237
  expect(capturedAbortSignal?.aborted).toBe(false);
238
238
  });
239
- it("should handle empty result sets correctly", async ()=>{
239
+ it('should handle empty result sets correctly', async ()=>{
240
240
  const mockEmptyResponse = {
241
241
  Contents: [],
242
242
  IsTruncated: false
243
243
  };
244
244
  mockS3Client.send.mockResolvedValue(mockEmptyResponse);
245
- const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, "ListObjects");
245
+ const useInfiniteQuery = useCreateS3InfiniteQueryHook(MockCommand, 'ListObjects');
246
246
  const { result } = renderHook(()=>useInfiniteQuery({
247
- Bucket: "test-bucket"
247
+ Bucket: 'test-bucket'
248
248
  }), {
249
- wrapper: createQueryWrapper()
249
+ wrapper: createTestWrapper()
250
250
  });
251
251
  await waitFor(()=>{
252
252
  expect(result.current.isSuccess).toBe(true);