|
| 1 | +import { getRealRegion } from "./getRealRegion"; |
| 2 | +import { isFipsRegion } from "./isFipsRegion"; |
1 | 3 | import { resolveRegionConfig } from "./resolveRegionConfig";
|
2 | 4 |
|
| 5 | +jest.mock("./getRealRegion"); |
| 6 | +jest.mock("./isFipsRegion"); |
| 7 | + |
3 | 8 | describe("RegionConfig", () => {
|
| 9 | + const mockRegion = "mockRegion"; |
| 10 | + const mockRealRegion = "mockRealRegion"; |
4 | 11 | const mockUseFipsEndpoint = () => Promise.resolve(false);
|
5 | 12 |
|
6 |
| - it("assigns value returned by normalizeRegion to region", async () => { |
7 |
| - const region = "mockRegion"; |
8 |
| - const resolvedRegionConfig = resolveRegionConfig({ region, useFipsEndpoint: mockUseFipsEndpoint }); |
9 |
| - const resolvedRegion = await resolvedRegionConfig.region(); |
10 |
| - expect(resolvedRegion).toBe(region); |
| 13 | + beforeEach(() => { |
| 14 | + (getRealRegion as jest.Mock).mockReturnValue(mockRealRegion); |
| 15 | + (isFipsRegion as jest.Mock).mockReturnValue(false); |
| 16 | + }); |
| 17 | + |
| 18 | + afterEach(() => { |
| 19 | + jest.clearAllMocks(); |
| 20 | + }); |
| 21 | + |
| 22 | + describe("region", () => { |
| 23 | + it("return normalized value with real region if passed as a string", async () => { |
| 24 | + const resolvedRegionConfig = resolveRegionConfig({ region: mockRegion, useFipsEndpoint: mockUseFipsEndpoint }); |
| 25 | + const resolvedRegion = await resolvedRegionConfig.region(); |
| 26 | + expect(resolvedRegion).toBe(mockRealRegion); |
| 27 | + expect(getRealRegion).toHaveBeenCalledTimes(1); |
| 28 | + expect(getRealRegion).toHaveBeenCalledWith(mockRegion); |
| 29 | + }); |
| 30 | + |
| 31 | + it("return provider with real region if passed as a Provider", async () => { |
| 32 | + const resolvedRegionConfig = resolveRegionConfig({ |
| 33 | + region: () => Promise.resolve(mockRegion), |
| 34 | + useFipsEndpoint: mockUseFipsEndpoint, |
| 35 | + }); |
| 36 | + const resolvedRegion = await resolvedRegionConfig.region(); |
| 37 | + expect(resolvedRegion).toBe(mockRealRegion); |
| 38 | + expect(getRealRegion).toHaveBeenCalledTimes(1); |
| 39 | + expect(getRealRegion).toHaveBeenCalledWith(mockRegion); |
| 40 | + }); |
| 41 | + |
| 42 | + it("throw if region is not supplied", () => { |
| 43 | + expect(() => resolveRegionConfig({ useFipsEndpoint: mockUseFipsEndpoint })).toThrow(); |
| 44 | + }); |
11 | 45 | });
|
12 | 46 |
|
13 |
| - it("throw if region is not supplied", () => { |
14 |
| - expect(() => resolveRegionConfig({ useFipsEndpoint: mockUseFipsEndpoint })).toThrow(); |
| 47 | + describe("useFipsEndpoint", () => { |
| 48 | + let mockRegionProvider; |
| 49 | + let mockUseFipsEndpoint; |
| 50 | + |
| 51 | + beforeEach(() => { |
| 52 | + mockRegionProvider = jest.fn().mockResolvedValueOnce(Promise.resolve(mockRegion)); |
| 53 | + mockUseFipsEndpoint = jest.fn().mockResolvedValueOnce(Promise.resolve(false)); |
| 54 | + }); |
| 55 | + |
| 56 | + afterEach(() => { |
| 57 | + expect(isFipsRegion).toHaveBeenCalledTimes(1); |
| 58 | + expect(isFipsRegion).toHaveBeenCalledWith(mockRegion); |
| 59 | + expect(mockRegionProvider).toHaveBeenCalledTimes(1); |
| 60 | + }); |
| 61 | + |
| 62 | + it("returns Provider which returns true for FIPS endpoints", async () => { |
| 63 | + (isFipsRegion as jest.Mock).mockReturnValue(true); |
| 64 | + const resolvedRegionConfig = resolveRegionConfig({ |
| 65 | + region: mockRegionProvider, |
| 66 | + useFipsEndpoint: mockUseFipsEndpoint, |
| 67 | + }); |
| 68 | + |
| 69 | + const useFipsEndpoint = await resolvedRegionConfig.useFipsEndpoint(); |
| 70 | + expect(useFipsEndpoint).toStrictEqual(true); |
| 71 | + expect(mockUseFipsEndpoint).not.toHaveBeenCalled(); |
| 72 | + }); |
| 73 | + |
| 74 | + it("returns passed Provider if endpoint is not FIPS", async () => { |
| 75 | + const resolvedRegionConfig = resolveRegionConfig({ |
| 76 | + region: mockRegionProvider, |
| 77 | + useFipsEndpoint: mockUseFipsEndpoint, |
| 78 | + }); |
| 79 | + |
| 80 | + const useFipsEndpoint = await resolvedRegionConfig.useFipsEndpoint(); |
| 81 | + expect(useFipsEndpoint).toStrictEqual(false); |
| 82 | + expect(mockUseFipsEndpoint).toHaveBeenCalledTimes(1); |
| 83 | + }); |
15 | 84 | });
|
16 | 85 | });
|
0 commit comments