@scality/data-browser-library 1.0.0-preview.9 → 1.0.3
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.js +271 -105
- 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 +13 -0
- package/dist/components/__tests__/BucketLifecycleFormPage.test.js +178 -178
- package/dist/components/__tests__/BucketLifecycleList.test.js +85 -85
- package/dist/components/__tests__/BucketList.test.js +463 -239
- 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 +281 -266
- package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
- package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +15 -0
- package/dist/components/__tests__/BucketReplicationFormPage.test.js +544 -544
- package/dist/components/__tests__/BucketReplicationList.test.js +106 -106
- package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
- package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
- package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +47 -47
- package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
- package/dist/components/__tests__/EmptyBucketButton.test.js +59 -59
- 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 +3 -2
- package/dist/components/buckets/BucketCreate.js +93 -47
- package/dist/components/buckets/BucketDetails.d.ts +42 -0
- package/dist/components/buckets/BucketDetails.js +249 -85
- package/dist/components/buckets/BucketLifecycleFormPage.js +225 -191
- package/dist/components/buckets/BucketLifecycleList.d.ts +2 -2
- package/dist/components/buckets/BucketLifecycleList.js +59 -61
- package/dist/components/buckets/BucketList.d.ts +7 -8
- package/dist/components/buckets/BucketList.js +158 -101
- package/dist/components/buckets/BucketLocation.js +4 -4
- package/dist/components/buckets/BucketOverview.d.ts +22 -2
- package/dist/components/buckets/BucketOverview.js +394 -187
- package/dist/components/buckets/BucketPage.js +43 -21
- package/dist/components/buckets/BucketPolicyPage.js +155 -127
- package/dist/components/buckets/BucketReplicationFormPage.js +134 -133
- package/dist/components/buckets/BucketReplicationList.d.ts +2 -2
- package/dist/components/buckets/BucketReplicationList.js +48 -45
- 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 +2 -2
- package/dist/components/buckets/DeleteBucketConfigRuleButton.js +2 -2
- package/dist/components/buckets/EmptyBucketButton.js +24 -24
- package/dist/components/buckets/EmptyBucketSummary.d.ts +2 -2
- package/dist/components/buckets/EmptyBucketSummary.js +1 -1
- package/dist/components/buckets/EmptyBucketSummaryList.d.ts +1 -1
- package/dist/components/buckets/EmptyBucketSummaryList.js +22 -22
- 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 -20
- package/dist/components/index.js +17 -10
- 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 +289 -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 +103 -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/formUtils.d.ts +15 -0
- package/dist/components/objects/ObjectDetails/formUtils.js +7 -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.js +4 -4
- package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +15 -15
- package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +1 -1
- package/dist/components/objects/ObjectLock/ObjectLockSettings.js +32 -31
- package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +1 -1
- package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +6 -6
- package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +51 -51
- package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +78 -78
- 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.js +12 -7
- package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +2 -2
- package/dist/components/ui/ConfirmDeleteRuleModal.js +6 -1
- package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
- package/dist/components/ui/DeleteObjectModalContent.js +12 -12
- package/dist/components/ui/FilterFormSection.d.ts +2 -2
- package/dist/components/ui/FilterFormSection.js +29 -29
- 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 +10 -56
- package/dist/config/factory.js +23 -71
- 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.js +45 -45
- 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 +65 -65
- 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 +11 -6
- package/dist/hooks/index.d.ts +19 -12
- package/dist/hooks/index.js +16 -9
- 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 +2 -2
- package/dist/hooks/useDeleteBucketConfigRule.js +4 -4
- package/dist/hooks/useEmptyBucket.js +11 -11
- package/dist/hooks/useFeatures.d.ts +7 -0
- package/dist/hooks/useFeatures.js +8 -0
- package/dist/hooks/useISVBucketDetection.js +6 -6
- 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/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 +85 -33
- package/dist/test/testUtils.js +176 -111
- package/dist/test/utils/errorHandling.test.js +119 -119
- package/dist/types/index.d.ts +50 -37
- 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 +10 -0
- package/dist/utils/constants.js +19 -9
- 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 +3 -3
- package/dist/utils/errorHandling.js +6 -6
- package/dist/utils/hooks.js +8 -8
- package/dist/utils/index.d.ts +5 -4
- package/dist/utils/index.js +4 -2
- 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 +5 -5
- package/dist/utils/s3RuleUtils.js +17 -17
- 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,93 +1,116 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { listBucketsHandler } from "./handlers/listBuckets.js";
|
|
1
|
+
import { HttpResponse, http } from "msw";
|
|
3
2
|
import { deleteBucketHandler } from "./handlers/deleteBucket.js";
|
|
4
|
-
import { getBucketLocationHandler } from "./handlers/getBucketLocation.js";
|
|
5
3
|
import { getBucketAclHandler } from "./handlers/getBucketAcl.js";
|
|
4
|
+
import { getBucketLocationHandler } from "./handlers/getBucketLocation.js";
|
|
6
5
|
import { getBucketPolicyHandler } from "./handlers/getBucketPolicy.js";
|
|
6
|
+
import { headObjectHandler } from "./handlers/headObject.js";
|
|
7
|
+
import { listBucketsHandler } from "./handlers/listBuckets.js";
|
|
7
8
|
import { listObjectsHandler } from "./handlers/listObjects.js";
|
|
8
9
|
import { listObjectVersionsHandler } from "./handlers/listObjectVersions.js";
|
|
9
|
-
import { headObjectHandler } from "./handlers/headObject.js";
|
|
10
|
-
import { getObjectRetentionHandler } from "./handlers/objectRetention.js";
|
|
11
10
|
import { getObjectLegalHoldHandler } from "./handlers/objectLegalHold.js";
|
|
12
|
-
import {
|
|
11
|
+
import { getObjectRetentionHandler } from "./handlers/objectRetention.js";
|
|
13
12
|
import { putBucketAclHandler } from "./handlers/putBucketAcl.js";
|
|
13
|
+
import { putObjectHandler } from "./handlers/putObject.js";
|
|
14
14
|
import { createS3ErrorXml, getS3BaseUrl } from "./utils.js";
|
|
15
15
|
const isBucketConfigurationRequest = (url)=>{
|
|
16
16
|
const configParams = [
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
17
|
+
'acl',
|
|
18
|
+
'policy',
|
|
19
|
+
'versioning',
|
|
20
|
+
'lifecycle',
|
|
21
|
+
'cors',
|
|
22
|
+
'website',
|
|
23
|
+
'tagging',
|
|
24
|
+
'encryption',
|
|
25
|
+
'notification',
|
|
26
|
+
'replication',
|
|
27
|
+
'requestPayment',
|
|
28
|
+
'accelerate',
|
|
29
|
+
'metrics',
|
|
30
|
+
'inventory',
|
|
31
|
+
'analytics',
|
|
32
|
+
'intelligentTiering',
|
|
33
|
+
'ownershipControls',
|
|
34
|
+
'publicAccessBlock',
|
|
35
|
+
'logging',
|
|
36
|
+
'location'
|
|
37
37
|
];
|
|
38
38
|
return configParams.some((param)=>url.searchParams.has(param));
|
|
39
39
|
};
|
|
40
|
-
const createBucketHandler =
|
|
41
|
-
const { bucketName } =
|
|
42
|
-
const url = new URL(
|
|
40
|
+
const createBucketHandler = http.put(`${getS3BaseUrl()}/:bucketName`, async ({ request, params })=>{
|
|
41
|
+
const { bucketName } = params;
|
|
42
|
+
const url = new URL(request.url);
|
|
43
43
|
if (isBucketConfigurationRequest(url)) return;
|
|
44
|
-
if (
|
|
45
|
-
if (bucketName.includes(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (bucketName.includes(
|
|
44
|
+
if ('string' == typeof bucketName) {
|
|
45
|
+
if (bucketName.includes('existing-bucket')) return HttpResponse.xml(createS3ErrorXml('BucketAlreadyExists', 'The requested bucket name is not available', bucketName), {
|
|
46
|
+
status: 409
|
|
47
|
+
});
|
|
48
|
+
if (bucketName.includes('restricted-bucket')) return HttpResponse.xml(createS3ErrorXml('AccessDenied', 'Access Denied'), {
|
|
49
|
+
status: 403
|
|
50
|
+
});
|
|
51
|
+
if (bucketName.includes('invalid-bucket-name')) return HttpResponse.xml(createS3ErrorXml('InvalidBucketName', 'Invalid bucket name'), {
|
|
52
|
+
status: 400
|
|
53
|
+
});
|
|
54
|
+
if (bucketName.includes('network-test-bucket')) return HttpResponse.error();
|
|
49
55
|
}
|
|
50
|
-
return
|
|
56
|
+
return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
51
57
|
<CreateBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
52
58
|
<Location>/${bucketName}</Location>
|
|
53
|
-
</CreateBucketResult
|
|
59
|
+
</CreateBucketResult>`, {
|
|
60
|
+
status: 200,
|
|
61
|
+
headers: {
|
|
62
|
+
Location: `/${bucketName}`
|
|
63
|
+
}
|
|
64
|
+
});
|
|
54
65
|
});
|
|
55
|
-
const getBucketVersioningHandler =
|
|
56
|
-
const { bucketName } =
|
|
57
|
-
const url = new URL(
|
|
58
|
-
if (!url.searchParams.has(
|
|
59
|
-
if (
|
|
60
|
-
if (bucketName.includes(
|
|
66
|
+
const getBucketVersioningHandler = http.get(`${getS3BaseUrl()}/:bucketName`, async ({ request, params })=>{
|
|
67
|
+
const { bucketName } = params;
|
|
68
|
+
const url = new URL(request.url);
|
|
69
|
+
if (!url.searchParams.has('versioning')) return;
|
|
70
|
+
if ('string' == typeof bucketName) {
|
|
71
|
+
if (bucketName.includes('nonexistent-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
61
72
|
<Error>
|
|
62
73
|
<Code>NoSuchBucket</Code>
|
|
63
74
|
<Message>The specified bucket does not exist</Message>
|
|
64
75
|
<BucketName>${bucketName}</BucketName>
|
|
65
|
-
</Error
|
|
66
|
-
|
|
76
|
+
</Error>`, {
|
|
77
|
+
status: 404
|
|
78
|
+
});
|
|
79
|
+
if (bucketName.includes('access-denied-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
67
80
|
<Error>
|
|
68
81
|
<Code>AccessDenied</Code>
|
|
69
82
|
<Message>Access Denied</Message>
|
|
70
|
-
</Error
|
|
71
|
-
|
|
72
|
-
|
|
83
|
+
</Error>`, {
|
|
84
|
+
status: 403
|
|
85
|
+
});
|
|
86
|
+
if (bucketName.includes('network-error-bucket')) return HttpResponse.error();
|
|
87
|
+
if (bucketName.includes('enabled-versioning-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
73
88
|
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
74
89
|
<Status>Enabled</Status>
|
|
75
90
|
<MfaDelete>Disabled</MfaDelete>
|
|
76
|
-
</VersioningConfiguration
|
|
77
|
-
|
|
91
|
+
</VersioningConfiguration>`, {
|
|
92
|
+
status: 200
|
|
93
|
+
});
|
|
94
|
+
if (bucketName.includes('suspended-versioning-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
78
95
|
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
79
96
|
<Status>Suspended</Status>
|
|
80
97
|
<MfaDelete>Disabled</MfaDelete>
|
|
81
|
-
</VersioningConfiguration
|
|
82
|
-
|
|
98
|
+
</VersioningConfiguration>`, {
|
|
99
|
+
status: 200
|
|
100
|
+
});
|
|
101
|
+
if (bucketName.includes('mfa-enabled-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
83
102
|
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
84
103
|
<Status>Enabled</Status>
|
|
85
104
|
<MfaDelete>Enabled</MfaDelete>
|
|
86
|
-
</VersioningConfiguration
|
|
105
|
+
</VersioningConfiguration>`, {
|
|
106
|
+
status: 200
|
|
107
|
+
});
|
|
87
108
|
}
|
|
88
|
-
return
|
|
109
|
+
return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
89
110
|
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
90
|
-
</VersioningConfiguration
|
|
111
|
+
</VersioningConfiguration>`, {
|
|
112
|
+
status: 200
|
|
113
|
+
});
|
|
91
114
|
});
|
|
92
115
|
const s3Handlers = [
|
|
93
116
|
listBucketsHandler,
|
package/dist/test/msw/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { createBucketHandler, getBucketVersioningHandler, s3Handlers, } from './handlers';
|
|
2
|
+
export { overrideHandlers, server, setupMswServer } from './server';
|
package/dist/test/msw/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { overrideHandlers, server, setupMswServer } from "./server.js";
|
|
2
1
|
import { createBucketHandler, getBucketVersioningHandler, s3Handlers } from "./handlers.js";
|
|
2
|
+
import { overrideHandlers, server, setupMswServer } from "./server.js";
|
|
3
3
|
export { createBucketHandler, getBucketVersioningHandler, overrideHandlers, s3Handlers, server, setupMswServer };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const server: import("msw/node").SetupServerApi;
|
|
2
2
|
export declare const setupMswServer: () => void;
|
|
3
3
|
export declare const overrideHandlers: (...handlers: Parameters<typeof server.use>) => void;
|
|
4
|
-
export { s3Handlers } from
|
|
4
|
+
export { s3Handlers } from './handlers';
|
package/dist/test/msw/server.js
CHANGED
package/dist/test/msw/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const getS3BaseUrl = ()=>
|
|
1
|
+
const getS3BaseUrl = ()=>'https://s3.amazonaws.com';
|
|
2
2
|
const createS3ErrorXml = (code, message, bucketName, key)=>{
|
|
3
|
-
let resourceDetails =
|
|
3
|
+
let resourceDetails = '';
|
|
4
4
|
if (bucketName) resourceDetails += `<BucketName>${bucketName}</BucketName>`;
|
|
5
5
|
if (key) resourceDetails += `<Key>${key}</Key>`;
|
|
6
6
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
package/dist/test/setup.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import '@testing-library/jest-dom';
|
package/dist/test/setup.js
CHANGED
|
@@ -11,42 +11,25 @@ var __webpack_require__ = {};
|
|
|
11
11
|
}
|
|
12
12
|
})();
|
|
13
13
|
})();
|
|
14
|
-
process.env.AWS_ACCESS_KEY_ID =
|
|
15
|
-
process.env.AWS_SECRET_ACCESS_KEY =
|
|
16
|
-
process.env.AWS_DEFAULT_REGION =
|
|
17
|
-
const testS3Config = {
|
|
18
|
-
endpoint: "http://localhost:8000",
|
|
19
|
-
region: "us-east-1",
|
|
20
|
-
realHost: "s3.amazonaws.com",
|
|
21
|
-
forcePathStyle: true
|
|
22
|
-
};
|
|
23
|
-
const testDevConfig = {
|
|
24
|
-
useProxy: false,
|
|
25
|
-
proxyEndpoint: "http://localhost:3000/api/s3",
|
|
26
|
-
proxyBasePath: "/api/s3",
|
|
27
|
-
proxyHost: "localhost",
|
|
28
|
-
proxyPort: 3000
|
|
29
|
-
};
|
|
30
|
-
globalThis.__S3_CONFIG__ = testS3Config;
|
|
31
|
-
globalThis.__DEV_CONFIG__ = testDevConfig;
|
|
32
|
-
globalThis.__IS_DEVELOPMENT__ = true;
|
|
33
|
-
globalThis.__IS_PRODUCTION__ = false;
|
|
14
|
+
process.env.AWS_ACCESS_KEY_ID = 'test-access-key';
|
|
15
|
+
process.env.AWS_SECRET_ACCESS_KEY = 'test-secret-key';
|
|
16
|
+
process.env.AWS_DEFAULT_REGION = 'us-east-1';
|
|
34
17
|
jest.setTimeout(10000);
|
|
35
18
|
Object.assign(__webpack_require__.g, {
|
|
36
19
|
TextDecoder: TextDecoder,
|
|
37
20
|
TextEncoder: TextEncoder
|
|
38
21
|
});
|
|
39
|
-
Object.defineProperty(HTMLCanvasElement.prototype,
|
|
22
|
+
Object.defineProperty(HTMLCanvasElement.prototype, 'getContext', {
|
|
40
23
|
value: ()=>null
|
|
41
24
|
});
|
|
42
|
-
jest.mock(
|
|
25
|
+
jest.mock('pretty-bytes', ()=>({
|
|
43
26
|
__esModule: true,
|
|
44
27
|
default: (bytes)=>{
|
|
45
28
|
const sizes = [
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
29
|
+
'B',
|
|
30
|
+
'KB',
|
|
31
|
+
'MB',
|
|
32
|
+
'GB'
|
|
50
33
|
];
|
|
51
34
|
let i = 0;
|
|
52
35
|
let num = bytes;
|
|
@@ -57,8 +40,8 @@ jest.mock("pretty-bytes", ()=>({
|
|
|
57
40
|
return `${Math.round(num)} ${sizes[i]}`;
|
|
58
41
|
}
|
|
59
42
|
}));
|
|
60
|
-
jest.mock(
|
|
61
|
-
const Joi = jest.requireActual(
|
|
43
|
+
jest.mock('joi', ()=>{
|
|
44
|
+
const Joi = jest.requireActual('joi');
|
|
62
45
|
return {
|
|
63
46
|
__esModule: true,
|
|
64
47
|
default: Joi,
|
|
@@ -76,11 +59,11 @@ const originalError = console.error;
|
|
|
76
59
|
const originalWarn = console.warn;
|
|
77
60
|
beforeAll(()=>{
|
|
78
61
|
console.error = (...args)=>{
|
|
79
|
-
if (
|
|
62
|
+
if ('string' == typeof args[0] && (args[0].includes('AWS') || args[0].includes('S3') || args[0].includes('Warning: An update to') || args[0].includes('Warning: A props object containing a "key" prop'))) return;
|
|
80
63
|
originalError(...args);
|
|
81
64
|
};
|
|
82
65
|
console.warn = (...args)=>{
|
|
83
|
-
if (
|
|
66
|
+
if ('string' == typeof args[0] && (args[0].includes('AWS') || args[0].includes('S3') || args[0].includes('Warning: An update to') || args[0].includes('Warning: A props object containing a "key" prop'))) return;
|
|
84
67
|
originalWarn(...args);
|
|
85
68
|
};
|
|
86
69
|
});
|
package/dist/test/testUtils.d.ts
CHANGED
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* - Factory pattern validation utilities
|
|
11
11
|
* - Form testing helpers
|
|
12
12
|
*/
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
15
|
-
import
|
|
16
|
-
import type {
|
|
13
|
+
import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3';
|
|
14
|
+
import { type UseQueryResult } from '@tanstack/react-query';
|
|
15
|
+
import type React from 'react';
|
|
16
|
+
import type { S3BrowserConfig, S3Credentials } from '../types';
|
|
17
17
|
/**
|
|
18
18
|
* Default S3 configuration for tests
|
|
19
19
|
*/
|
|
@@ -45,12 +45,6 @@ export declare const setupCommonMocks: () => void;
|
|
|
45
45
|
* @param height - The mock height in pixels
|
|
46
46
|
*/
|
|
47
47
|
export declare function mockOffsetSize(width: number, height: number): void;
|
|
48
|
-
/**
|
|
49
|
-
* Creates a simple QueryClient wrapper for tests that don't need DataBrowser context
|
|
50
|
-
*/
|
|
51
|
-
export declare const createQueryWrapper: () => ({ children }: {
|
|
52
|
-
children: React.ReactNode;
|
|
53
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
54
48
|
/**
|
|
55
49
|
* Creates a test wrapper with DataBrowser context and QueryClient
|
|
56
50
|
*/
|
|
@@ -69,28 +63,6 @@ export declare const renderHookWithWrapper: <TProps, TResult>(hook: (props: TPro
|
|
|
69
63
|
* Creates a test File object
|
|
70
64
|
*/
|
|
71
65
|
export declare const createTestFile: (name: string, content: string, type?: string) => File;
|
|
72
|
-
type GlobalConfigOverrides = {
|
|
73
|
-
s3?: Partial<S3Configuration>;
|
|
74
|
-
dev?: Partial<DevelopmentConfiguration>;
|
|
75
|
-
environment?: {
|
|
76
|
-
isDevelopment?: boolean;
|
|
77
|
-
isProduction?: boolean;
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Override global configuration for testing specific scenarios
|
|
82
|
-
* Useful for testing different deployment environments or proxy configurations
|
|
83
|
-
*/
|
|
84
|
-
export declare const overrideGlobalConfig: (overrides: GlobalConfigOverrides) => void;
|
|
85
|
-
/**
|
|
86
|
-
* Reset global configuration to test defaults
|
|
87
|
-
* Should be called in afterEach or afterAll to ensure test isolation
|
|
88
|
-
*/
|
|
89
|
-
export declare const resetGlobalConfig: () => void;
|
|
90
|
-
/**
|
|
91
|
-
* Test helper for running tests with specific global configuration
|
|
92
|
-
*/
|
|
93
|
-
export declare const withGlobalConfig: (overrides: GlobalConfigOverrides, testFn: () => void | Promise<void>) => () => Promise<void>;
|
|
94
66
|
/**
|
|
95
67
|
* Creates a factory test error
|
|
96
68
|
*/
|
|
@@ -138,6 +110,22 @@ export declare const createMockMutationResult: (mutate: jest.Mock, overrides?: {
|
|
|
138
110
|
isPaused: false;
|
|
139
111
|
submittedAt: number;
|
|
140
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* Creates a mock UseQueryResult for testing React Query queries
|
|
115
|
+
*
|
|
116
|
+
* This helper provides a complete mock object that matches the UseQueryResult type
|
|
117
|
+
* from @tanstack/react-query, eliminating the need for 'as any' type assertions.
|
|
118
|
+
*
|
|
119
|
+
* @param overrides - Optional overrides for any properties (e.g., { isLoading: true, data: mockData })
|
|
120
|
+
* @returns A complete UseQueryResult mock object
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```ts
|
|
124
|
+
* const mockQueryResult = createMockQueryResult({ isLoading: true });
|
|
125
|
+
* mockUseGetBucketPolicy.mockReturnValue(mockQueryResult);
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare const createMockQueryResult: <T, E = Error>(overrides?: Partial<UseQueryResult<T, E>>) => UseQueryResult<T, E>;
|
|
141
129
|
/**
|
|
142
130
|
* Finds a Toggle input element by its label text
|
|
143
131
|
* Traverses the DOM to locate the associated checkbox input
|
|
@@ -161,4 +149,68 @@ export declare const mockSuccessSubmit: (mockMutate: jest.Mock) => void;
|
|
|
161
149
|
* @param errorMessage - The error message to return (default: "Network Error")
|
|
162
150
|
*/
|
|
163
151
|
export declare const mockErrorSubmit: (mockMutate: jest.Mock, errorMessage?: string) => void;
|
|
164
|
-
|
|
152
|
+
import type { GetBucketAclCommandOutput, GetBucketCorsCommandOutput, GetBucketLifecycleConfigurationCommandOutput, GetBucketLocationCommandOutput, GetBucketPolicyCommandOutput, GetBucketReplicationCommandOutput, GetBucketTaggingCommandOutput, GetBucketVersioningCommandOutput, GetObjectLockConfigurationCommandOutput } from '@aws-sdk/client-s3';
|
|
153
|
+
export type MockQueryResult<T> = {
|
|
154
|
+
data: T | undefined;
|
|
155
|
+
status: 'idle' | 'pending' | 'success' | 'error';
|
|
156
|
+
error?: Error | null;
|
|
157
|
+
};
|
|
158
|
+
export type ISVBucketStatusMock = {
|
|
159
|
+
isVeeamBucket: boolean;
|
|
160
|
+
isCommvaultBucket: boolean;
|
|
161
|
+
isISVManaged: boolean;
|
|
162
|
+
isvApplication: string | undefined;
|
|
163
|
+
isLoading: boolean;
|
|
164
|
+
bucketTagsStatus: 'idle' | 'pending' | 'success' | 'error';
|
|
165
|
+
};
|
|
166
|
+
export interface BucketMockData {
|
|
167
|
+
versioning: MockQueryResult<GetBucketVersioningCommandOutput>;
|
|
168
|
+
acl: MockQueryResult<GetBucketAclCommandOutput>;
|
|
169
|
+
location: MockQueryResult<GetBucketLocationCommandOutput>;
|
|
170
|
+
cors: MockQueryResult<GetBucketCorsCommandOutput>;
|
|
171
|
+
objectLock: MockQueryResult<GetObjectLockConfigurationCommandOutput>;
|
|
172
|
+
policy: MockQueryResult<GetBucketPolicyCommandOutput>;
|
|
173
|
+
tagging: MockQueryResult<GetBucketTaggingCommandOutput>;
|
|
174
|
+
lifecycle: MockQueryResult<GetBucketLifecycleConfigurationCommandOutput>;
|
|
175
|
+
replication: MockQueryResult<GetBucketReplicationCommandOutput>;
|
|
176
|
+
isvBucketStatus: ISVBucketStatusMock;
|
|
177
|
+
features: boolean;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Creates default bucket mock data for testing
|
|
181
|
+
* @returns Default bucket mock data with all properties set to success state
|
|
182
|
+
*/
|
|
183
|
+
export declare const createDefaultBucketMocks: () => BucketMockData;
|
|
184
|
+
/**
|
|
185
|
+
* Applies bucket mock data to the provided mock functions
|
|
186
|
+
* @param mocks - Object containing all the mocked hook functions
|
|
187
|
+
* @param mockData - Optional partial overrides for the default mock data
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```ts
|
|
191
|
+
* applyBucketMocks(
|
|
192
|
+
* {
|
|
193
|
+
* useGetBucketVersioning: mockUseGetBucketVersioning,
|
|
194
|
+
* useGetBucketAcl: mockUseGetBucketAcl,
|
|
195
|
+
* // ... other mocks
|
|
196
|
+
* },
|
|
197
|
+
* {
|
|
198
|
+
* versioning: { data: { Status: "Suspended" }, status: "success" }
|
|
199
|
+
* }
|
|
200
|
+
* );
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
export declare const applyBucketMocks: (mocks: {
|
|
204
|
+
useGetBucketVersioning: jest.Mock;
|
|
205
|
+
useGetBucketAcl: jest.Mock;
|
|
206
|
+
useGetBucketLocation: jest.Mock;
|
|
207
|
+
useGetBucketCors: jest.Mock;
|
|
208
|
+
useGetBucketObjectLockConfiguration: jest.Mock;
|
|
209
|
+
useGetBucketPolicy: jest.Mock;
|
|
210
|
+
useGetBucketTagging: jest.Mock;
|
|
211
|
+
useGetBucketLifecycle?: jest.Mock;
|
|
212
|
+
useGetBucketReplication?: jest.Mock;
|
|
213
|
+
useISVBucketStatus: jest.Mock;
|
|
214
|
+
useFeatures: jest.Mock;
|
|
215
|
+
}, mockData?: Partial<BucketMockData>) => void;
|
|
216
|
+
export { overrideHandlers, setupMswServer } from './msw';
|