Skip to content

Commit 04daf91

Browse files
committed
test(config-resolver): resolveRegionConfig.spec.ts
1 parent feaf5ee commit 04daf91

File tree

1 file changed

+76
-7
lines changed

1 file changed

+76
-7
lines changed
Lines changed: 76 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,85 @@
1+
import { getRealRegion } from "./getRealRegion";
2+
import { isFipsRegion } from "./isFipsRegion";
13
import { resolveRegionConfig } from "./resolveRegionConfig";
24

5+
jest.mock("./getRealRegion");
6+
jest.mock("./isFipsRegion");
7+
38
describe("RegionConfig", () => {
9+
const mockRegion = "mockRegion";
10+
const mockRealRegion = "mockRealRegion";
411
const mockUseFipsEndpoint = () => Promise.resolve(false);
512

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+
});
1145
});
1246

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+
});
1584
});
1685
});

0 commit comments

Comments
 (0)