@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.
- package/dist/components/DataBrowserUI.d.ts +12 -0
- package/dist/components/DataBrowserUI.js +99 -0
- package/dist/components/Editor.d.ts +1 -1
- package/dist/components/Editor.js +3 -3
- package/dist/components/__tests__/BucketAccessor.test.js +214 -0
- package/dist/components/__tests__/BucketCorsPage.test.d.ts +1 -0
- package/dist/components/__tests__/BucketCorsPage.test.js +263 -0
- package/dist/components/__tests__/BucketCreate.test.d.ts +1 -0
- package/dist/components/__tests__/BucketCreate.test.js +574 -0
- package/dist/components/__tests__/BucketDetails.test.d.ts +1 -0
- package/dist/components/__tests__/BucketDetails.test.js +421 -0
- package/dist/components/__tests__/BucketLifecycleFormPage.test.d.ts +14 -0
- package/dist/components/__tests__/BucketLifecycleFormPage.test.js +618 -0
- package/dist/components/__tests__/BucketLifecycleList.test.d.ts +1 -0
- package/dist/components/__tests__/BucketLifecycleList.test.js +325 -0
- package/dist/components/__tests__/BucketList.test.js +495 -81
- package/dist/components/__tests__/BucketNotificationFormPage.test.d.ts +1 -0
- package/dist/components/__tests__/BucketNotificationFormPage.test.js +348 -0
- package/dist/components/__tests__/BucketNotificationList.test.d.ts +1 -0
- package/dist/components/__tests__/BucketNotificationList.test.js +379 -0
- package/dist/components/__tests__/BucketOverview.test.js +484 -179
- package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
- package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +16 -0
- package/dist/components/__tests__/BucketReplicationFormPage.test.js +1757 -0
- package/dist/components/__tests__/BucketReplicationList.test.d.ts +1 -0
- package/dist/components/__tests__/BucketReplicationList.test.js +344 -0
- package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
- package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
- package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.d.ts +1 -0
- package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +196 -0
- package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
- package/dist/components/__tests__/EmptyBucketButton.test.d.ts +1 -0
- package/dist/components/__tests__/EmptyBucketButton.test.js +302 -0
- package/dist/components/__tests__/MetadataSearch.test.js +65 -65
- package/dist/components/__tests__/ObjectList.test.js +741 -240
- package/dist/components/__tests__/UploadButton.test.js +45 -45
- package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
- package/dist/components/breadcrumb/Breadcrumb.js +37 -0
- package/dist/components/breadcrumb/DataBrowserBreadcrumb.d.ts +1 -0
- package/dist/components/breadcrumb/DataBrowserBreadcrumb.js +10 -0
- package/dist/components/breadcrumb/__tests__/Breadcrumb.test.d.ts +1 -0
- package/dist/components/breadcrumb/__tests__/Breadcrumb.test.js +196 -0
- package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.d.ts +1 -0
- package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.js +153 -0
- package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.d.ts +1 -0
- package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.js +134 -0
- package/dist/components/breadcrumb/index.d.ts +8 -0
- package/dist/components/breadcrumb/index.js +4 -0
- package/dist/components/breadcrumb/useBreadcrumbPaths.d.ts +2 -0
- package/dist/components/breadcrumb/useBreadcrumbPaths.js +82 -0
- package/dist/components/buckets/BucketAccessor.d.ts +2 -0
- package/dist/components/buckets/BucketAccessor.js +125 -0
- package/dist/components/buckets/BucketConfigEditButton.d.ts +8 -0
- package/dist/components/buckets/{BucketPolicyButton.js → BucketConfigEditButton.js} +9 -5
- package/dist/components/buckets/BucketCorsPage.d.ts +1 -0
- package/dist/components/buckets/BucketCorsPage.js +234 -0
- package/dist/components/buckets/BucketCreate.d.ts +50 -0
- package/dist/components/buckets/BucketCreate.js +279 -0
- package/dist/components/buckets/BucketDetails.d.ts +42 -0
- package/dist/components/buckets/BucketDetails.js +256 -40
- package/dist/components/buckets/BucketLifecycleFormPage.d.ts +15 -0
- package/dist/components/buckets/BucketLifecycleFormPage.js +1086 -0
- package/dist/components/buckets/BucketLifecycleList.d.ts +10 -0
- package/dist/components/buckets/BucketLifecycleList.js +270 -0
- package/dist/components/buckets/BucketList.d.ts +6 -4
- package/dist/components/buckets/BucketList.js +161 -94
- package/dist/components/buckets/BucketLocation.js +4 -4
- package/dist/components/buckets/BucketOverview.d.ts +86 -5
- package/dist/components/buckets/BucketOverview.js +481 -192
- package/dist/components/buckets/BucketPage.js +44 -22
- package/dist/components/buckets/BucketPolicyPage.js +155 -127
- package/dist/components/buckets/BucketReplicationFormPage.d.ts +1 -0
- package/dist/components/buckets/BucketReplicationFormPage.js +835 -0
- package/dist/components/buckets/BucketReplicationList.d.ts +11 -0
- package/dist/components/buckets/BucketReplicationList.js +189 -0
- package/dist/components/buckets/BucketVersioning.d.ts +4 -0
- package/dist/components/buckets/BucketVersioning.js +76 -0
- package/dist/components/buckets/DeleteBucketButton.js +8 -8
- package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +18 -0
- package/dist/components/buckets/DeleteBucketConfigRuleButton.js +53 -0
- package/dist/components/buckets/EmptyBucketButton.d.ts +5 -0
- package/dist/components/buckets/EmptyBucketButton.js +232 -0
- package/dist/components/buckets/EmptyBucketSummary.d.ts +9 -0
- package/dist/components/buckets/EmptyBucketSummary.js +60 -0
- package/dist/components/buckets/EmptyBucketSummaryList.d.ts +13 -0
- package/dist/components/buckets/EmptyBucketSummaryList.js +140 -0
- package/dist/components/buckets/__tests__/BucketVersioning.test.d.ts +1 -0
- package/dist/components/buckets/__tests__/BucketVersioning.test.js +163 -0
- package/dist/components/buckets/notifications/BucketNotificationFormPage.d.ts +1 -0
- package/dist/components/buckets/notifications/BucketNotificationFormPage.js +316 -0
- package/dist/components/buckets/notifications/BucketNotificationList.d.ts +10 -0
- package/dist/components/buckets/notifications/BucketNotificationList.js +267 -0
- package/dist/components/buckets/notifications/EventsSection.js +145 -29
- package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
- package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
- package/dist/components/buckets/notifications/events.d.ts +71 -7
- package/dist/components/buckets/notifications/events.js +98 -16
- package/dist/components/index.d.ts +27 -13
- package/dist/components/index.js +20 -6
- package/dist/components/layouts/ArrowNavigation.d.ts +3 -0
- package/dist/components/layouts/ArrowNavigation.js +28 -0
- package/dist/components/layouts/BrowserPageLayout.d.ts +5 -1
- package/dist/components/layouts/BrowserPageLayout.js +10 -5
- package/dist/components/objects/CreateFolderButton.d.ts +2 -2
- package/dist/components/objects/CreateFolderButton.js +12 -12
- package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
- package/dist/components/objects/DeleteObjectButton.js +19 -21
- package/dist/components/objects/GetPresignedUrlButton.d.ts +7 -0
- package/dist/components/objects/GetPresignedUrlButton.js +255 -0
- package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +2 -2
- package/dist/components/objects/ObjectDetails/ObjectMetadata.js +263 -230
- package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +2 -2
- package/dist/components/objects/ObjectDetails/ObjectSummary.js +540 -138
- package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +2 -2
- package/dist/components/objects/ObjectDetails/ObjectTags.js +95 -123
- package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.d.ts +1 -0
- package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +516 -0
- package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.d.ts +1 -0
- package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +1064 -0
- package/dist/components/objects/ObjectDetails/index.d.ts +18 -2
- package/dist/components/objects/ObjectDetails/index.js +152 -40
- package/dist/components/objects/ObjectList.d.ts +12 -10
- package/dist/components/objects/ObjectList.js +590 -263
- package/dist/components/objects/ObjectLock/EditRetentionButton.d.ts +4 -0
- package/dist/components/objects/ObjectLock/EditRetentionButton.js +32 -0
- package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.d.ts +3 -0
- package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +211 -0
- package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +9 -0
- package/dist/components/objects/ObjectLock/ObjectLockSettings.js +159 -0
- package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +8 -0
- package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +39 -0
- package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.d.ts +1 -0
- package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +204 -0
- package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.d.ts +1 -0
- package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +374 -0
- package/dist/components/objects/ObjectPage.js +12 -8
- package/dist/components/objects/UploadButton.d.ts +3 -3
- package/dist/components/objects/UploadButton.js +10 -10
- package/dist/components/objects/__tests__/GetPresignedUrlButton.test.d.ts +1 -0
- package/dist/components/objects/__tests__/GetPresignedUrlButton.test.js +531 -0
- package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
- package/dist/components/providers/DataBrowserProvider.js +60 -38
- package/dist/components/providers/QueryProvider.d.ts +9 -0
- package/dist/components/providers/QueryProvider.js +21 -0
- package/dist/components/search/MetadataSearch.js +29 -28
- package/dist/components/search/SearchHints.js +1 -1
- package/dist/components/ui/ArrayFieldActions.d.ts +36 -0
- package/dist/components/ui/ArrayFieldActions.js +43 -0
- package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +16 -0
- package/dist/components/ui/ConfirmDeleteRuleModal.js +48 -0
- package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
- package/dist/components/ui/DeleteObjectModalContent.js +12 -12
- package/dist/components/ui/FilterFormSection.d.ts +44 -0
- package/dist/components/ui/FilterFormSection.js +159 -0
- package/dist/components/ui/Search.elements.d.ts +2 -2
- package/dist/components/ui/Search.elements.js +7 -7
- package/dist/components/ui/Table.elements.d.ts +2 -1
- package/dist/components/ui/Table.elements.js +18 -12
- package/dist/config/__tests__/factory.test.d.ts +1 -0
- package/dist/config/__tests__/factory.test.js +311 -0
- package/dist/config/factory.d.ts +14 -49
- package/dist/config/factory.js +23 -68
- package/dist/config/types.d.ts +212 -34
- package/dist/contexts/DataBrowserUICustomizationContext.d.ts +27 -0
- package/dist/contexts/DataBrowserUICustomizationContext.js +13 -0
- package/dist/hooks/__tests__/useAccessibleBuckets.test.d.ts +1 -0
- package/dist/hooks/__tests__/useAccessibleBuckets.test.js +145 -0
- package/dist/hooks/__tests__/useISVBucketDetection.test.d.ts +1 -0
- package/dist/hooks/__tests__/useISVBucketDetection.test.js +188 -0
- package/dist/hooks/__tests__/useIsBucketEmpty.test.js +27 -27
- package/dist/hooks/__tests__/useLoginMutation.test.d.ts +1 -0
- package/dist/hooks/__tests__/useLoginMutation.test.js +194 -0
- package/dist/hooks/bucketConfiguration.d.ts +8 -1
- package/dist/hooks/bucketConfiguration.js +52 -51
- package/dist/hooks/bucketOperations.d.ts +10 -1
- package/dist/hooks/bucketOperations.js +10 -9
- package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +80 -80
- package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +80 -80
- package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +44 -44
- package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +63 -63
- package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +95 -52
- package/dist/hooks/factories/index.d.ts +4 -4
- package/dist/hooks/factories/index.js +2 -2
- package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
- package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +16 -13
- package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
- package/dist/hooks/factories/useCreateS3LoginHook.js +1 -1
- package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
- package/dist/hooks/factories/useCreateS3MutationHook.js +7 -2
- package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
- package/dist/hooks/factories/useCreateS3QueryHook.js +29 -3
- package/dist/hooks/index.d.ts +19 -8
- package/dist/hooks/index.js +16 -5
- package/dist/hooks/loginOperations.d.ts +1 -1
- package/dist/hooks/loginOperations.js +1 -1
- package/dist/hooks/objectOperations.d.ts +2 -2
- package/dist/hooks/objectOperations.js +50 -49
- package/dist/hooks/presignedOperations.d.ts +4 -4
- package/dist/hooks/presignedOperations.js +5 -5
- package/dist/hooks/useAccessibleBuckets.d.ts +11 -0
- package/dist/hooks/useAccessibleBuckets.js +115 -0
- package/dist/hooks/useBatchObjectLegalHold.d.ts +11 -0
- package/dist/hooks/useBatchObjectLegalHold.js +48 -0
- package/dist/hooks/useBucketConfigEditor.d.ts +31 -0
- package/dist/hooks/useBucketConfigEditor.js +82 -0
- package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
- package/dist/hooks/useDataBrowserNavigate.js +24 -0
- package/dist/hooks/useDeleteBucketConfigRule.d.ts +26 -0
- package/dist/hooks/useDeleteBucketConfigRule.js +46 -0
- package/dist/hooks/useEmptyBucket.d.ts +27 -0
- package/dist/hooks/useEmptyBucket.js +116 -0
- package/dist/hooks/useFeatures.d.ts +7 -0
- package/dist/hooks/useFeatures.js +8 -0
- package/dist/hooks/useISVBucketDetection.d.ts +15 -0
- package/dist/hooks/useISVBucketDetection.js +27 -0
- package/dist/hooks/useIsBucketEmpty.js +4 -4
- package/dist/hooks/useLimitedAccessFlow.d.ts +48 -0
- package/dist/hooks/useLimitedAccessFlow.js +23 -0
- package/dist/hooks/useS3Client.d.ts +6 -0
- package/dist/hooks/useS3Client.js +3 -2
- package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
- package/dist/hooks/useS3ConfigSwitch.js +37 -0
- package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
- package/dist/hooks/useSupportedNotificationEvents.js +8 -0
- package/dist/hooks/useTableRowSelection.d.ts +9 -0
- package/dist/hooks/useTableRowSelection.js +45 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +2 -2
- package/dist/schemas/bucketPolicySchema.json +3 -13
- package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
- package/dist/test/msw/handlers/deleteBucket.js +20 -10
- package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
- package/dist/test/msw/handlers/getBucketAcl.js +29 -17
- package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
- package/dist/test/msw/handlers/getBucketLocation.js +29 -15
- package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
- package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
- package/dist/test/msw/handlers/headObject.d.ts +1 -1
- package/dist/test/msw/handlers/headObject.js +31 -13
- package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
- package/dist/test/msw/handlers/listBuckets.js +5 -3
- package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
- package/dist/test/msw/handlers/listObjectVersions.js +38 -26
- package/dist/test/msw/handlers/listObjects.d.ts +1 -1
- package/dist/test/msw/handlers/listObjects.js +35 -23
- package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
- package/dist/test/msw/handlers/objectLegalHold.js +32 -17
- package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
- package/dist/test/msw/handlers/objectRetention.js +31 -17
- package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
- package/dist/test/msw/handlers/putBucketAcl.js +29 -14
- package/dist/test/msw/handlers/putObject.d.ts +1 -1
- package/dist/test/msw/handlers/putObject.js +27 -12
- package/dist/test/msw/handlers.d.ts +3 -3
- package/dist/test/msw/handlers.js +77 -54
- package/dist/test/msw/index.d.ts +2 -2
- package/dist/test/msw/index.js +1 -1
- package/dist/test/msw/server.d.ts +1 -1
- package/dist/test/msw/server.js +1 -1
- package/dist/test/msw/utils.js +2 -2
- package/dist/test/setup.d.ts +1 -1
- package/dist/test/setup.js +13 -30
- package/dist/test/testUtils.d.ts +170 -36
- package/dist/test/testUtils.js +229 -116
- package/dist/test/utils/errorHandling.test.js +146 -108
- package/dist/types/index.d.ts +49 -36
- package/dist/types/monaco.d.ts +13 -0
- package/dist/types/monaco.js +0 -0
- package/dist/utils/__tests__/proxyMiddleware.test.d.ts +1 -0
- package/dist/utils/__tests__/proxyMiddleware.test.js +579 -0
- package/dist/utils/__tests__/s3Client.test.d.ts +1 -0
- package/dist/utils/__tests__/s3Client.test.js +340 -0
- package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
- package/dist/utils/__tests__/s3ConfigIdentifier.test.js +437 -0
- package/dist/utils/constants.d.ts +22 -0
- package/dist/utils/constants.js +19 -0
- package/dist/utils/deletion/index.d.ts +2 -2
- package/dist/utils/deletion/index.js +1 -1
- package/dist/utils/deletion/messages.d.ts +1 -1
- package/dist/utils/deletion/messages.js +4 -4
- package/dist/utils/errorHandling.d.ts +12 -3
- package/dist/utils/errorHandling.js +12 -7
- package/dist/utils/hooks.js +8 -8
- package/dist/utils/index.d.ts +5 -2
- package/dist/utils/index.js +5 -1
- package/dist/utils/proxyMiddleware.d.ts +32 -13
- package/dist/utils/proxyMiddleware.js +90 -36
- package/dist/utils/s3Client.d.ts +14 -4
- package/dist/utils/s3Client.js +5 -26
- package/dist/utils/s3ConfigIdentifier.d.ts +79 -0
- package/dist/utils/s3ConfigIdentifier.js +57 -0
- package/dist/utils/s3RuleUtils.d.ts +53 -0
- package/dist/utils/s3RuleUtils.js +101 -0
- package/package.json +10 -8
- package/dist/components/__tests__/BucketNotificationCreatePage.test.js +0 -316
- package/dist/components/buckets/BucketPolicyButton.d.ts +0 -7
- package/dist/components/buckets/notifications/BucketNotificationCreatePage.d.ts +0 -1
- package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +0 -234
- package/dist/hooks/useLoginMutation.d.ts +0 -21
- package/dist/hooks/useLoginMutation.js +0 -9
- package/dist/utils/useFeatures.d.ts +0 -1
- package/dist/utils/useFeatures.js +0 -7
- /package/dist/components/__tests__/{BucketNotificationCreatePage.test.d.ts → BucketAccessor.test.d.ts} +0 -0
|
@@ -1,67 +1,68 @@
|
|
|
1
|
-
import { DeleteBucketCorsCommand, DeleteBucketLifecycleCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, GetBucketAclCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetObjectLockConfigurationCommand, PutBucketAclCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketLifecycleConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutObjectLockConfigurationCommand } from "@aws-sdk/client-s3";
|
|
2
|
-
import { useCreateS3QueryHook } from "./factories/useCreateS3QueryHook.js";
|
|
1
|
+
import { DeleteBucketCorsCommand, DeleteBucketLifecycleCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, GetBucketAclCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, PutBucketAclCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketLifecycleConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutObjectLockConfigurationCommand } from "@aws-sdk/client-s3";
|
|
3
2
|
import { useCreateS3MutationHook } from "./factories/useCreateS3MutationHook.js";
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { useCreateS3QueryHook } from "./factories/useCreateS3QueryHook.js";
|
|
4
|
+
const useGetBucketAcl = useCreateS3QueryHook(GetBucketAclCommand, 'GetBucketAcl');
|
|
5
|
+
const useSetBucketAcl = useCreateS3MutationHook(PutBucketAclCommand, 'PutBucketAcl', [
|
|
6
|
+
'GetBucketAcl',
|
|
7
|
+
'ListBuckets'
|
|
8
8
|
]);
|
|
9
|
-
const useGetBucketPolicy = useCreateS3QueryHook(GetBucketPolicyCommand,
|
|
10
|
-
const useSetBucketPolicy = useCreateS3MutationHook(PutBucketPolicyCommand,
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const useGetBucketPolicy = useCreateS3QueryHook(GetBucketPolicyCommand, 'GetBucketPolicy');
|
|
10
|
+
const useSetBucketPolicy = useCreateS3MutationHook(PutBucketPolicyCommand, 'PutBucketPolicy', [
|
|
11
|
+
'GetBucketPolicy',
|
|
12
|
+
'ListBuckets'
|
|
13
13
|
]);
|
|
14
|
-
const useDeleteBucketPolicy = useCreateS3MutationHook(DeleteBucketPolicyCommand,
|
|
15
|
-
|
|
14
|
+
const useDeleteBucketPolicy = useCreateS3MutationHook(DeleteBucketPolicyCommand, 'DeleteBucketPolicy', [
|
|
15
|
+
'GetBucketPolicy'
|
|
16
16
|
]);
|
|
17
|
-
const useGetBucketVersioning = useCreateS3QueryHook(GetBucketVersioningCommand,
|
|
18
|
-
const useSetBucketVersioning = useCreateS3MutationHook(PutBucketVersioningCommand,
|
|
19
|
-
|
|
17
|
+
const useGetBucketVersioning = useCreateS3QueryHook(GetBucketVersioningCommand, 'GetBucketVersioning');
|
|
18
|
+
const useSetBucketVersioning = useCreateS3MutationHook(PutBucketVersioningCommand, 'PutBucketVersioning', [
|
|
19
|
+
'GetBucketVersioning'
|
|
20
20
|
]);
|
|
21
|
-
const useGetBucketCors = useCreateS3QueryHook(GetBucketCorsCommand,
|
|
22
|
-
const useSetBucketCors = useCreateS3MutationHook(PutBucketCorsCommand,
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const useGetBucketCors = useCreateS3QueryHook(GetBucketCorsCommand, 'GetBucketCors');
|
|
22
|
+
const useSetBucketCors = useCreateS3MutationHook(PutBucketCorsCommand, 'PutBucketCors', [
|
|
23
|
+
'GetBucketCors',
|
|
24
|
+
'ListBuckets'
|
|
25
25
|
]);
|
|
26
|
-
const useDeleteBucketCors = useCreateS3MutationHook(DeleteBucketCorsCommand,
|
|
27
|
-
|
|
26
|
+
const useDeleteBucketCors = useCreateS3MutationHook(DeleteBucketCorsCommand, 'DeleteBucketCors', [
|
|
27
|
+
'GetBucketCors'
|
|
28
28
|
]);
|
|
29
|
-
const useGetBucketLifecycle = useCreateS3QueryHook(GetBucketLifecycleConfigurationCommand,
|
|
30
|
-
const useSetBucketLifecycle = useCreateS3MutationHook(PutBucketLifecycleConfigurationCommand,
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const useGetBucketLifecycle = useCreateS3QueryHook(GetBucketLifecycleConfigurationCommand, 'GetBucketLifecycleConfiguration');
|
|
30
|
+
const useSetBucketLifecycle = useCreateS3MutationHook(PutBucketLifecycleConfigurationCommand, 'PutBucketLifecycleConfiguration', [
|
|
31
|
+
'GetBucketLifecycleConfiguration',
|
|
32
|
+
'ListBuckets'
|
|
33
33
|
]);
|
|
34
|
-
const useDeleteBucketLifecycle = useCreateS3MutationHook(DeleteBucketLifecycleCommand,
|
|
35
|
-
|
|
34
|
+
const useDeleteBucketLifecycle = useCreateS3MutationHook(DeleteBucketLifecycleCommand, 'DeleteBucketLifecycle', [
|
|
35
|
+
'GetBucketLifecycleConfiguration'
|
|
36
36
|
]);
|
|
37
|
-
const useGetBucketNotification = useCreateS3QueryHook(GetBucketNotificationConfigurationCommand,
|
|
38
|
-
const useSetBucketNotification = useCreateS3MutationHook(PutBucketNotificationConfigurationCommand,
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
const useGetBucketNotification = useCreateS3QueryHook(GetBucketNotificationConfigurationCommand, 'GetBucketNotificationConfiguration');
|
|
38
|
+
const useSetBucketNotification = useCreateS3MutationHook(PutBucketNotificationConfigurationCommand, 'PutBucketNotificationConfiguration', [
|
|
39
|
+
'GetBucketNotificationConfiguration',
|
|
40
|
+
'ListBuckets'
|
|
41
41
|
]);
|
|
42
|
-
const useGetBucketEncryption = useCreateS3QueryHook(GetBucketEncryptionCommand,
|
|
43
|
-
const useSetBucketEncryption = useCreateS3MutationHook(PutBucketEncryptionCommand,
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
const useGetBucketEncryption = useCreateS3QueryHook(GetBucketEncryptionCommand, 'GetBucketEncryption');
|
|
43
|
+
const useSetBucketEncryption = useCreateS3MutationHook(PutBucketEncryptionCommand, 'PutBucketEncryption', [
|
|
44
|
+
'GetBucketEncryption',
|
|
45
|
+
'ListBuckets'
|
|
46
46
|
]);
|
|
47
|
-
const useGetBucketTagging = useCreateS3QueryHook(GetBucketTaggingCommand,
|
|
48
|
-
const useSetBucketTagging = useCreateS3MutationHook(PutBucketTaggingCommand,
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
const useGetBucketTagging = useCreateS3QueryHook(GetBucketTaggingCommand, 'GetBucketTagging');
|
|
48
|
+
const useSetBucketTagging = useCreateS3MutationHook(PutBucketTaggingCommand, 'PutBucketTagging', [
|
|
49
|
+
'GetBucketTagging',
|
|
50
|
+
'ListBuckets'
|
|
51
51
|
]);
|
|
52
|
-
const useDeleteBucketTagging = useCreateS3MutationHook(DeleteBucketTaggingCommand,
|
|
53
|
-
|
|
52
|
+
const useDeleteBucketTagging = useCreateS3MutationHook(DeleteBucketTaggingCommand, 'DeleteBucketTagging', [
|
|
53
|
+
'GetBucketTagging'
|
|
54
54
|
]);
|
|
55
|
-
const useGetBucketObjectLockConfiguration = useCreateS3QueryHook(GetObjectLockConfigurationCommand,
|
|
56
|
-
const useSetBucketObjectLockConfiguration = useCreateS3MutationHook(PutObjectLockConfigurationCommand,
|
|
57
|
-
|
|
55
|
+
const useGetBucketObjectLockConfiguration = useCreateS3QueryHook(GetObjectLockConfigurationCommand, 'GetObjectLockConfiguration');
|
|
56
|
+
const useSetBucketObjectLockConfiguration = useCreateS3MutationHook(PutObjectLockConfigurationCommand, 'PutObjectLockConfiguration', [
|
|
57
|
+
'GetObjectLockConfiguration'
|
|
58
58
|
]);
|
|
59
|
-
const useGetBucketReplication = useCreateS3QueryHook(GetBucketReplicationCommand,
|
|
60
|
-
const useSetBucketReplication = useCreateS3MutationHook(PutBucketReplicationCommand,
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
const useGetBucketReplication = useCreateS3QueryHook(GetBucketReplicationCommand, 'GetBucketReplication');
|
|
60
|
+
const useSetBucketReplication = useCreateS3MutationHook(PutBucketReplicationCommand, 'PutBucketReplication', [
|
|
61
|
+
'GetBucketReplication',
|
|
62
|
+
'ListBuckets'
|
|
63
63
|
]);
|
|
64
|
-
const useDeleteBucketReplication = useCreateS3MutationHook(DeleteBucketReplicationCommand,
|
|
65
|
-
|
|
64
|
+
const useDeleteBucketReplication = useCreateS3MutationHook(DeleteBucketReplicationCommand, 'DeleteBucketReplication', [
|
|
65
|
+
'GetBucketReplication'
|
|
66
66
|
]);
|
|
67
|
-
|
|
67
|
+
const useGetPublicAccessBlock = useCreateS3QueryHook(GetPublicAccessBlockCommand, 'GetPublicAccessBlock');
|
|
68
|
+
export { useDeleteBucketCors, useDeleteBucketLifecycle, useDeleteBucketPolicy, useDeleteBucketReplication, useDeleteBucketTagging, useGetBucketAcl, useGetBucketCors, useGetBucketEncryption, useGetBucketLifecycle, useGetBucketNotification, useGetBucketObjectLockConfiguration, useGetBucketPolicy, useGetBucketReplication, useGetBucketTagging, useGetBucketVersioning, useGetPublicAccessBlock, useSetBucketAcl, useSetBucketCors, useSetBucketEncryption, useSetBucketLifecycle, useSetBucketNotification, useSetBucketObjectLockConfiguration, useSetBucketPolicy, useSetBucketReplication, useSetBucketTagging, useSetBucketVersioning };
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This file contains hooks for fundamental bucket operations like
|
|
5
5
|
* listing, creating, and deleting buckets.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { type CreateBucketCommandInput, type CreateBucketCommandOutput, type DeleteBucketCommandInput, type DeleteBucketCommandOutput, type GetBucketLocationCommandInput, type GetBucketLocationCommandOutput, type ListBucketsCommandInput, type ListBucketsCommandOutput, type ListObjectsV2CommandInput, type ListObjectsV2CommandOutput } from '@aws-sdk/client-s3';
|
|
8
8
|
/**
|
|
9
9
|
* Hook for listing all S3 buckets
|
|
10
10
|
*
|
|
@@ -34,3 +34,12 @@ export declare const useCreateBucket: (options?: Omit<import("@tanstack/react-qu
|
|
|
34
34
|
* Automatically invalidates the buckets list after successful deletion.
|
|
35
35
|
*/
|
|
36
36
|
export declare const useDeleteBucket: (options?: Omit<import("@tanstack/react-query").UseMutationOptions<DeleteBucketCommandOutput, import("..").EnhancedS3Error, DeleteBucketCommandInput, unknown>, "mutationFn"> | undefined) => import("@tanstack/react-query").UseMutationResult<DeleteBucketCommandOutput, import("..").EnhancedS3Error, DeleteBucketCommandInput>;
|
|
37
|
+
/**
|
|
38
|
+
* Hook for validating access to a specific S3 bucket.
|
|
39
|
+
*
|
|
40
|
+
* Attempts to list objects in a given bucket to verify user permissions.
|
|
41
|
+
* Used for users with limited permissions who cannot use ListBuckets.
|
|
42
|
+
*
|
|
43
|
+
* The hook is disabled by default and must be manually triggered via refetch().
|
|
44
|
+
*/
|
|
45
|
+
export declare const useValidateBucketAccess: (params?: ListObjectsV2CommandInput | undefined, options?: Omit<import("@tanstack/react-query").UseQueryOptions<ListObjectsV2CommandOutput, import("..").EnhancedS3Error, ListObjectsV2CommandOutput, readonly unknown[]>, "queryKey" | "queryFn"> | undefined) => import("@tanstack/react-query").UseQueryResult<ListObjectsV2CommandOutput, import("..").EnhancedS3Error>;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { CreateBucketCommand, DeleteBucketCommand, GetBucketLocationCommand, ListBucketsCommand } from "@aws-sdk/client-s3";
|
|
2
|
-
import { useCreateS3QueryHook } from "./factories/useCreateS3QueryHook.js";
|
|
1
|
+
import { CreateBucketCommand, DeleteBucketCommand, GetBucketLocationCommand, ListBucketsCommand, ListObjectsV2Command } from "@aws-sdk/client-s3";
|
|
3
2
|
import { useCreateS3MutationHook } from "./factories/useCreateS3MutationHook.js";
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
3
|
+
import { useCreateS3QueryHook } from "./factories/useCreateS3QueryHook.js";
|
|
4
|
+
const useBuckets = useCreateS3QueryHook(ListBucketsCommand, 'ListBuckets');
|
|
5
|
+
const useGetBucketLocation = useCreateS3QueryHook(GetBucketLocationCommand, 'GetBucketLocation');
|
|
6
|
+
const useCreateBucket = useCreateS3MutationHook(CreateBucketCommand, 'CreateBucket', [
|
|
7
|
+
'ListBuckets'
|
|
8
8
|
]);
|
|
9
|
-
const useDeleteBucket = useCreateS3MutationHook(DeleteBucketCommand,
|
|
10
|
-
|
|
9
|
+
const useDeleteBucket = useCreateS3MutationHook(DeleteBucketCommand, 'DeleteBucket', [
|
|
10
|
+
'ListBuckets'
|
|
11
11
|
]);
|
|
12
|
-
|
|
12
|
+
const useValidateBucketAccess = useCreateS3QueryHook(ListObjectsV2Command, 'ValidateBucketAccess');
|
|
13
|
+
export { useBuckets, useCreateBucket, useDeleteBucket, useGetBucketLocation, useValidateBucketAccess };
|
|
@@ -1,56 +1,56 @@
|
|
|
1
1
|
import { renderHook, waitFor } from "@testing-library/react";
|
|
2
|
-
import {
|
|
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 {
|
|
6
|
-
|
|
7
|
-
jest.mock(
|
|
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(
|
|
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(
|
|
20
|
+
it('should create a functioning mutation hook', ()=>{
|
|
21
21
|
const useMutation = useCreateS3FunctionMutationHook(mockOperation);
|
|
22
|
-
validateFactoryHook(useMutation,
|
|
22
|
+
validateFactoryHook(useMutation, 'function-based mutation');
|
|
23
23
|
const { result } = renderHook(()=>useMutation(), {
|
|
24
|
-
wrapper:
|
|
24
|
+
wrapper: createTestWrapper()
|
|
25
25
|
});
|
|
26
|
-
validateHookResult(result.current,
|
|
26
|
+
validateHookResult(result.current, 'mutation');
|
|
27
27
|
});
|
|
28
|
-
it(
|
|
28
|
+
it('should accept invalidation keys parameter', ()=>{
|
|
29
29
|
const useMutation = useCreateS3FunctionMutationHook(mockOperation, [
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
'PresignedUrls',
|
|
31
|
+
'TestQuery'
|
|
32
32
|
]);
|
|
33
|
-
validateFactoryHook(useMutation,
|
|
33
|
+
validateFactoryHook(useMutation, 'function-based mutation');
|
|
34
34
|
const { result } = renderHook(()=>useMutation(), {
|
|
35
|
-
wrapper:
|
|
35
|
+
wrapper: createTestWrapper()
|
|
36
36
|
});
|
|
37
|
-
validateHookResult(result.current,
|
|
37
|
+
validateHookResult(result.current, 'mutation');
|
|
38
38
|
});
|
|
39
|
-
it(
|
|
39
|
+
it('should execute function operation successfully', async ()=>{
|
|
40
40
|
const mockResponse = {
|
|
41
|
-
Url:
|
|
41
|
+
Url: 'https://presigned.url',
|
|
42
42
|
ExpiresAt: new Date(),
|
|
43
|
-
Bucket:
|
|
44
|
-
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:
|
|
49
|
+
wrapper: createTestWrapper()
|
|
50
50
|
});
|
|
51
51
|
const inputParams = {
|
|
52
|
-
Bucket:
|
|
53
|
-
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(
|
|
65
|
-
const mockError = new Error(
|
|
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:
|
|
69
|
+
wrapper: createTestWrapper()
|
|
70
70
|
});
|
|
71
71
|
result.current.mutate({
|
|
72
|
-
Bucket:
|
|
73
|
-
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:
|
|
81
|
-
Key:
|
|
80
|
+
Bucket: 'test-bucket',
|
|
81
|
+
Key: 'test-key'
|
|
82
82
|
});
|
|
83
83
|
expect(mockCreateS3OperationError).not.toHaveBeenCalled();
|
|
84
84
|
});
|
|
85
|
-
it(
|
|
86
|
-
const mockInternalError = new Error(
|
|
87
|
-
const mockWrappedError = new 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:
|
|
98
|
+
wrapper: createTestWrapper()
|
|
99
99
|
});
|
|
100
100
|
result.current.mutate({
|
|
101
|
-
Bucket:
|
|
102
|
-
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:
|
|
110
|
-
Key:
|
|
109
|
+
Bucket: 'test-bucket',
|
|
110
|
+
Key: 'test-key'
|
|
111
111
|
});
|
|
112
112
|
});
|
|
113
|
-
it(
|
|
113
|
+
it('should handle mutation callbacks correctly', async ()=>{
|
|
114
114
|
const mockResponse = {
|
|
115
|
-
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:
|
|
128
|
+
wrapper: createTestWrapper()
|
|
129
129
|
});
|
|
130
130
|
const variables = {
|
|
131
|
-
Bucket:
|
|
132
|
-
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(
|
|
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
|
-
|
|
149
|
-
|
|
148
|
+
'PresignedUrls',
|
|
149
|
+
'ObjectList'
|
|
150
150
|
]);
|
|
151
151
|
const { result } = renderHook(()=>useMutation(), {
|
|
152
|
-
wrapper:
|
|
152
|
+
wrapper: createTestWrapper()
|
|
153
153
|
});
|
|
154
154
|
result.current.mutate({
|
|
155
|
-
Bucket:
|
|
156
|
-
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:
|
|
164
|
-
Key:
|
|
163
|
+
Bucket: 'test-bucket',
|
|
164
|
+
Key: 'test-key'
|
|
165
165
|
});
|
|
166
166
|
});
|
|
167
|
-
it(
|
|
167
|
+
it('should handle concurrent function operations correctly', async ()=>{
|
|
168
168
|
const mockResponse1 = {
|
|
169
|
-
Url:
|
|
169
|
+
Url: 'https://presigned1.url',
|
|
170
170
|
ExpiresAt: new Date()
|
|
171
171
|
};
|
|
172
172
|
const mockResponse2 = {
|
|
173
|
-
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:
|
|
183
|
+
wrapper: createTestWrapper()
|
|
184
184
|
});
|
|
185
185
|
const { result: result2 } = renderHook(()=>useMutation(), {
|
|
186
|
-
wrapper:
|
|
186
|
+
wrapper: createTestWrapper()
|
|
187
187
|
});
|
|
188
188
|
result1.current.mutate({
|
|
189
|
-
Bucket:
|
|
190
|
-
Key:
|
|
189
|
+
Bucket: 'test-bucket',
|
|
190
|
+
Key: 'file1.txt'
|
|
191
191
|
});
|
|
192
192
|
result2.current.mutate({
|
|
193
|
-
Bucket:
|
|
194
|
-
Key:
|
|
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(
|
|
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:
|
|
217
|
+
wrapper: createTestWrapper()
|
|
218
218
|
});
|
|
219
219
|
const inputParams = {
|
|
220
|
-
Bucket:
|
|
221
|
-
Key:
|
|
222
|
-
ContentType:
|
|
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(
|
|
232
|
+
it('should handle complex function operations with metadata', async ()=>{
|
|
233
233
|
const mockResponse = {
|
|
234
|
-
Url:
|
|
235
|
-
ExpiresAt: new Date(
|
|
236
|
-
Bucket:
|
|
237
|
-
Key:
|
|
238
|
-
VersionId:
|
|
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:
|
|
243
|
+
wrapper: createTestWrapper()
|
|
244
244
|
});
|
|
245
245
|
const complexParams = {
|
|
246
|
-
Bucket:
|
|
247
|
-
Key:
|
|
248
|
-
VersionId:
|
|
249
|
-
ResponseContentType:
|
|
250
|
-
ResponseContentDisposition:
|
|
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(
|
|
260
|
+
it('should handle function operations without parameters', async ()=>{
|
|
261
261
|
const mockResponse = {
|
|
262
|
-
status:
|
|
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:
|
|
267
|
+
wrapper: createTestWrapper()
|
|
268
268
|
});
|
|
269
269
|
result.current.mutate(void 0);
|
|
270
270
|
await waitFor(()=>{
|