From 0fb998bc0e50e15a9185fd580e9d73cc8e4590f9 Mon Sep 17 00:00:00 2001 From: RanVaknin Date: Tue, 30 Jul 2024 16:51:15 +0000 Subject: [PATCH] fix(polly-request-presigner): override middleware name to allow concurrent presigning --- .../src/getSignedUrls.spec.ts | 14 ++++++++++++++ .../polly-request-presigner/src/getSignedUrls.ts | 1 + 2 files changed, 15 insertions(+) diff --git a/packages/polly-request-presigner/src/getSignedUrls.spec.ts b/packages/polly-request-presigner/src/getSignedUrls.spec.ts index 8cbb38b9e8ec..5629d8480fd6 100644 --- a/packages/polly-request-presigner/src/getSignedUrls.spec.ts +++ b/packages/polly-request-presigner/src/getSignedUrls.spec.ts @@ -98,4 +98,18 @@ describe("getSignedUrl", () => { expect(mockPresign).toBeCalled(); expect(mockPresign.mock.calls[0][1]).toMatchObject(options); }); + it("should not throw if called concurrently", async () => { + const mockPresigned = "a presigned url"; + mockPresign.mockReturnValue(mockPresigned); + const client = new PollyClient(clientParams); + const command = new SynthesizeSpeechCommand({ + Text: "hello world, this is alex", + OutputFormat: "mp3", + VoiceId: "Kimberly", + }); + const result = await Promise.all([getSignedUrl(client, command), getSignedUrl(client, command)]); + expect(result).toBeInstanceOf(Array); + expect(result).toHaveLength(2); + expect(mockPresign).toHaveBeenCalledTimes(2); + }); }); diff --git a/packages/polly-request-presigner/src/getSignedUrls.ts b/packages/polly-request-presigner/src/getSignedUrls.ts index ea92b9d38225..bc0d2ffebfd2 100644 --- a/packages/polly-request-presigner/src/getSignedUrls.ts +++ b/packages/polly-request-presigner/src/getSignedUrls.ts @@ -55,6 +55,7 @@ export const getSignedUrl = async ( name: "presignInterceptMiddleware", relation: "before", toMiddleware: "awsAuthMiddleware", + override: true, }); let presigned: HttpRequest;