Skip to content

Commit 20dd731

Browse files
authored
test(middleware-sdk-s3): only delete the s3-express bucket created by the test (#6077)
1 parent 6bb0904 commit 20dd731

File tree

1 file changed

+35
-74
lines changed

1 file changed

+35
-74
lines changed

packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.e2e.spec.ts

+35-74
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,11 @@ describe("s3 express CRUD test suite", () => {
3737
beforeAll(async () => {
3838
({ s3, controller, bucketName, recorder } = await createClientAndRecorder());
3939

40-
await deleteBuckets(controller);
4140
await s3.createBucket({
4241
Bucket: bucketName,
4342
CreateBucketConfiguration: {
44-
Location: {
45-
Type: "AvailabilityZone",
46-
Name: zone,
47-
},
48-
Bucket: {
49-
Type: "Directory",
50-
DataRedundancy: "SingleAvailabilityZone",
51-
},
43+
Location: { Type: "AvailabilityZone", Name: zone },
44+
Bucket: { Type: "Directory", DataRedundancy: "SingleAvailabilityZone" },
5245
},
5346
});
5447

@@ -99,34 +92,22 @@ describe("s3 express CRUD test suite", () => {
9992
});
10093

10194
afterAll(async () => {
102-
await deleteBuckets(controller);
95+
await emptyAndDeleteBucket(controller, bucketName);
10396
});
10497

10598
it("can create a bucket", () => {
10699
expect(createRecorder).toEqual({
107-
"CreateBucketCommand (normal)": {
108-
[bucketName]: 1,
109-
},
110-
"HeadBucketCommand (s3 express)": {
111-
[bucketName]: 1,
112-
},
113-
"CreateSessionCommand (normal)": {
114-
[bucketName]: 1,
115-
},
100+
"CreateBucketCommand (normal)": { [bucketName]: 1 },
101+
"HeadBucketCommand (s3 express)": { [bucketName]: 1 },
102+
"CreateSessionCommand (normal)": { [bucketName]: 1 },
116103
});
117104
});
118105

119106
it("can read/write/delete from a bucket", () => {
120107
expect(readWriteDeleteRecorder).toEqual({
121-
"PutObjectCommand (s3 express)": {
122-
[bucketName]: SCALE,
123-
},
124-
"GetObjectCommand (s3 express)": {
125-
[bucketName]: SCALE,
126-
},
127-
"DeleteObjectCommand (s3 express)": {
128-
[bucketName]: SCALE,
129-
},
108+
"PutObjectCommand (s3 express)": { [bucketName]: SCALE },
109+
"GetObjectCommand (s3 express)": { [bucketName]: SCALE },
110+
"DeleteObjectCommand (s3 express)": { [bucketName]: SCALE },
130111
});
131112
});
132113

@@ -209,12 +190,10 @@ describe("s3 express CRUD test suite", () => {
209190
});
210191

211192
async function createClientAndRecorder() {
212-
const sts = new STS({
213-
region,
214-
});
193+
const sts = new STS({ region });
215194
const accountId = (await sts.getCallerIdentity({})).Account;
216195

217-
const bucketName = `${accountId}-js-test-bucket-${(Date.now() / 1000) | 0}--${suffix}`;
196+
const bucketName = `${accountId}-js-test-bucket-${(Math.random() + 1).toString(36).substring(2)}--${suffix}`;
218197

219198
const s3 = new S3({
220199
region,
@@ -261,52 +240,34 @@ async function createClientAndRecorder() {
261240
};
262241
}
263242

264-
async function deleteBuckets(s3: S3) {
265-
const buckets = await s3.listDirectoryBuckets({});
266-
267-
for (const bucket of buckets.Buckets ?? []) {
268-
const Bucket = bucket.Name;
243+
async function emptyAndDeleteBucket(s3: S3, bucketName: string) {
244+
const Bucket = bucketName;
245+
try {
246+
await s3.headBucket({ Bucket });
247+
} catch (e) {
248+
return;
249+
}
269250

270-
try {
271-
await s3.headBucket({
272-
Bucket,
273-
});
274-
} catch (e) {
275-
return;
251+
const list = await s3.listObjectsV2({ Bucket }).catch((e) => {
252+
if (!String(e).includes("NoSuchBucket")) {
253+
throw e;
276254
}
255+
return {
256+
Contents: [],
257+
};
258+
});
277259

278-
const list = await s3
279-
.listObjectsV2({
280-
Bucket,
281-
})
282-
.catch((e) => {
283-
if (!String(e).includes("NoSuchBucket")) {
284-
throw e;
285-
}
286-
return {
287-
Contents: [],
288-
};
289-
});
290-
291-
const promises = [] as Promise<any>[];
292-
for (const key of list.Contents ?? []) {
293-
promises.push(
294-
s3.deleteObject({
295-
Bucket,
296-
Key: key.Key,
297-
})
298-
);
299-
}
300-
await Promise.all(promises);
260+
const promises = [] as Promise<any>[];
261+
for (const key of list.Contents ?? []) {
262+
promises.push(s3.deleteObject({ Bucket, Key: key.Key }));
263+
}
264+
await Promise.all(promises);
301265

302-
try {
303-
return await s3.deleteBucket({
304-
Bucket,
305-
});
306-
} catch (e) {
307-
if (!String(e).includes("NoSuchBucket")) {
308-
throw e;
309-
}
266+
try {
267+
return await s3.deleteBucket({ Bucket });
268+
} catch (e) {
269+
if (!String(e).includes("NoSuchBucket")) {
270+
throw e;
310271
}
311272
}
312273
}

0 commit comments

Comments
 (0)