Skip to content

Commit

Permalink
test(middleware-sdk-s3): add e2e test for throw-200-errors
Browse files Browse the repository at this point in the history
  • Loading branch information
kuhe committed Aug 6, 2024
1 parent d88855e commit 1673ad8
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
57 changes: 57 additions & 0 deletions packages/middleware-sdk-s3/src/throw-200-exceptions.e2e.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import { S3 } from "@aws-sdk/client-s3";
import { GetCallerIdentityCommandOutput, STS } from "@aws-sdk/client-sts";

jest.setTimeout(100000);

describe("S3 throw 200 exceptions", () => {
const config = {
region: "us-west-2",
};
const s3 = new S3(config);
const stsClient = new STS(config);

const alphabet = "abcdefghijklmnopqrstuvwxyz";
const randId = alphabet[(Math.random() * alphabet.length) | 0] + alphabet[(Math.random() * alphabet.length) | 0];
let Bucket: string;
let callerID: GetCallerIdentityCommandOutput;

beforeAll(async () => {
callerID = await stsClient.getCallerIdentity({});
Bucket = `${callerID.Account}-${randId}-s3-200s-e2e-test-empty-${config.region}-${(Date.now() / 1000) | 0}`;

await s3.createBucket({
Bucket,
});
});

afterAll(async () => {
const list = await s3.listObjectsV2({
Bucket,
});
for (const item of list.Contents ?? []) {
await s3.deleteObject({
Bucket,
Key: item.Key,
});
}

await s3.deleteBucket({
Bucket,
});
s3.destroy();
});

it("should split stream successfully for less than 3kb payload and greater than 3kb payload", async () => {
for (let i = 0; i < 10; ++i) {
await s3.listObjects({
Bucket,
});

await s3.putObject({
Bucket,
Key: i + "long-text-".repeat(10),
Body: "abcd",
});
}
});
});
1 change: 1 addition & 0 deletions packages/middleware-sdk-s3/src/throw-200-exceptions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ export const throw200ExceptionsMiddleware =
return headStream(stream, MAX_BYTES_TO_INSPECT);
},
});

if (typeof bodyCopy?.destroy === "function") {
// discard partially-read Node.js Stream.
bodyCopy.destroy();
Expand Down

0 comments on commit 1673ad8

Please sign in to comment.