diff --git a/packages/middleware-retry/src/defaultStrategy.spec.ts b/packages/middleware-retry/src/defaultStrategy.spec.ts index 7c2207a6237a8..fe3759e611946 100644 --- a/packages/middleware-retry/src/defaultStrategy.spec.ts +++ b/packages/middleware-retry/src/defaultStrategy.spec.ts @@ -11,40 +11,22 @@ import { getDefaultRetryQuota } from "./defaultRetryQuota"; import { HttpRequest } from "@aws-sdk/protocol-http"; import { v4 } from "uuid"; -jest.mock("@aws-sdk/service-error-classification", () => ({ - isThrottlingError: jest.fn().mockReturnValue(true) -})); +jest.mock("@aws-sdk/service-error-classification"); +jest.mock("./delayDecider"); +jest.mock("./retryDecider"); +jest.mock("./defaultRetryQuota"); +jest.mock("@aws-sdk/protocol-http"); +jest.mock("uuid"); -jest.mock("./delayDecider", () => ({ - defaultDelayDecider: jest.fn().mockReturnValue(0) -})); - -jest.mock("./retryDecider", () => ({ - defaultRetryDecider: jest.fn().mockReturnValue(true) -})); +describe("defaultStrategy", () => { + let next: jest.Mock; // variable for next mock function in utility methods + const maxAttempts = 3; -jest.mock("./defaultRetryQuota", () => { const mockDefaultRetryQuota = { hasRetryTokens: jest.fn().mockReturnValue(true), retrieveRetryTokens: jest.fn().mockReturnValue(1), releaseRetryTokens: jest.fn() }; - return { getDefaultRetryQuota: () => mockDefaultRetryQuota }; -}); - -jest.mock("@aws-sdk/protocol-http", () => ({ - HttpRequest: { - isInstance: jest.fn().mockReturnValue(false) - } -})); - -jest.mock("uuid", () => ({ - v4: jest.fn(() => "42") -})); - -describe("defaultStrategy", () => { - let next: jest.Mock; // variable for next mock function in utility methods - const maxAttempts = 3; const mockSuccessfulOperation = ( maxAttempts: number, @@ -122,6 +104,17 @@ describe("defaultStrategy", () => { return retryStrategy.retry(next, { request: { headers: {} } } as any); }; + beforeEach(() => { + (isThrottlingError as jest.Mock).mockReturnValue(true); + (defaultDelayDecider as jest.Mock).mockReturnValue(0); + (defaultRetryDecider as jest.Mock).mockReturnValue(true); + (getDefaultRetryQuota as jest.Mock).mockReturnValue(mockDefaultRetryQuota); + ((HttpRequest as unknown) as jest.Mock).mockReturnValue({ + isInstance: jest.fn().mockReturnValue(false) + }); + (v4 as jest.Mock).mockReturnValue("42"); + }); + afterEach(() => { jest.clearAllMocks(); }); diff --git a/packages/middleware-retry/src/retryDecider.spec.ts b/packages/middleware-retry/src/retryDecider.spec.ts index 271f22baba0bc..b51843644b60a 100644 --- a/packages/middleware-retry/src/retryDecider.spec.ts +++ b/packages/middleware-retry/src/retryDecider.spec.ts @@ -7,18 +7,20 @@ import { import { defaultRetryDecider } from "./retryDecider"; import { SdkError } from "@aws-sdk/smithy-client"; -jest.mock("@aws-sdk/service-error-classification", () => ({ - isRetryableByTrait: jest.fn().mockReturnValue(false), - isClockSkewError: jest.fn().mockReturnValue(false), - isThrottlingError: jest.fn().mockReturnValue(false), - isTransientError: jest.fn().mockReturnValue(false) -})); +jest.mock("@aws-sdk/service-error-classification"); describe("defaultRetryDecider", () => { const createMockError = () => Object.assign(new Error(), { $metadata: {} }) as SdkError; beforeEach(() => { + (isRetryableByTrait as jest.Mock).mockReturnValue(false); + (isClockSkewError as jest.Mock).mockReturnValue(false); + (isThrottlingError as jest.Mock).mockReturnValue(false); + (isTransientError as jest.Mock).mockReturnValue(false); + }); + + afterEach(() => { jest.clearAllMocks(); });