Skip to content

Commit cc264ca

Browse files
committed
chore(config-resolver): simplify params passed to utility functions
1 parent e0ef919 commit cc264ca

File tree

6 files changed

+41
-106
lines changed

6 files changed

+41
-106
lines changed
Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,18 @@
11
import { getHostnameTemplate } from "./getHostnameTemplate";
2-
import { getResolvedPartition } from "./getResolvedPartition";
3-
import { PartitionHash } from "./PartitionHash";
4-
5-
jest.mock("./getResolvedPartition");
62

73
const AWS_TEMPLATE = "{signingService}.{region}.amazonaws.com";
84

95
describe(getHostnameTemplate.name, () => {
10-
const mockRegion = "mockRegion";
11-
const mockPartition = "mockPartition";
12-
const mockRegionRegex = "mockRegionRegex";
136
const mockHostname = "{region}.mockHostname.com";
147
const mockSigningService = "mockSigningService";
158

16-
beforeEach(() => {
17-
(getResolvedPartition as jest.Mock).mockReturnValue(mockPartition);
18-
});
19-
20-
afterEach(() => {
21-
expect(getResolvedPartition).toHaveBeenCalledTimes(1);
22-
jest.clearAllMocks();
9+
it("returns partitionHostname if present", () => {
10+
expect(getHostnameTemplate(mockSigningService, { partitionHostname: mockHostname })).toEqual(mockHostname);
2311
});
2412

25-
it("returns hostname template if present in partitionHash", () => {
26-
const mockPartitionHash: PartitionHash = {
27-
[mockPartition]: {
28-
regions: [mockRegion, `${mockRegion}2`, `${mockRegion}3`],
29-
regionRegex: mockRegionRegex,
30-
hostname: mockHostname,
31-
},
32-
};
33-
34-
expect(
35-
getHostnameTemplate(mockRegion, { signingService: mockSigningService, partitionHash: mockPartitionHash })
36-
).toEqual(mockHostname);
37-
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, { partitionHash: mockPartitionHash });
38-
});
39-
40-
it("returns default hostname template if not present in partitionHash", () => {
41-
const mockPartitionHash: PartitionHash = {};
42-
43-
expect(
44-
getHostnameTemplate(mockRegion, { signingService: mockSigningService, partitionHash: mockPartitionHash })
45-
).toEqual(AWS_TEMPLATE.replace("{signingService}", mockSigningService));
46-
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, { partitionHash: mockPartitionHash });
13+
it("returns default hostname template if partitionHostname is not present", () => {
14+
expect(getHostnameTemplate(mockSigningService, {})).toEqual(
15+
AWS_TEMPLATE.replace("{signingService}", mockSigningService)
16+
);
4717
});
4818
});
Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
import { getResolvedPartition } from "./getResolvedPartition";
2-
import { PartitionHash } from "./PartitionHash";
3-
41
const AWS_TEMPLATE = "{signingService}.{region}.amazonaws.com";
52

63
export interface GetHostnameTemplateOptions {
7-
signingService: string;
8-
partitionHash: PartitionHash;
4+
partitionHostname?: string;
95
}
106

11-
export const getHostnameTemplate = (region: string, { signingService, partitionHash }: GetHostnameTemplateOptions) =>
12-
partitionHash[getResolvedPartition(region, { partitionHash })]?.hostname ??
13-
AWS_TEMPLATE.replace("{signingService}", signingService);
7+
export const getHostnameTemplate = (signingService: string, { partitionHostname }: GetHostnameTemplateOptions) =>
8+
partitionHostname ?? AWS_TEMPLATE.replace("{signingService}", signingService);

packages/config-resolver/src/regionInfo/getRegionInfo.spec.ts

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ describe(getRegionInfo.name, () => {
5454

5555
const getMockResolvedPartitionOptions = (partitionHash) => ({ partitionHash });
5656

57-
const getMockResolvedHostnameOptions = (regionHash, getResolvedPartitionOptions) => ({
57+
const getMockRegionInfoOptions = (regionHash, getResolvedPartitionOptions) => ({
5858
...getResolvedPartitionOptions,
5959
signingService: mockSigningService,
6060
regionHash,
@@ -77,21 +77,19 @@ describe(getRegionInfo.name, () => {
7777
const mockPartitionHash = getMockPartitionHash(regionCase);
7878

7979
const mockGetResolvedPartitionOptions = getMockResolvedPartitionOptions(mockPartitionHash);
80-
const mockGetResolvedHostnameOptions = getMockResolvedHostnameOptions(
81-
mockRegionHash,
82-
mockGetResolvedPartitionOptions
83-
);
80+
const mockGetRegionInfoOptions = getMockRegionInfoOptions(mockRegionHash, mockGetResolvedPartitionOptions);
8481

85-
expect(getRegionInfo(mockRegion, mockGetResolvedHostnameOptions)).toEqual({
82+
expect(getRegionInfo(mockRegion, mockGetRegionInfoOptions)).toEqual({
8683
signingService: mockSigningService,
8784
hostname: mockHostname,
8885
partition: mockPartition,
8986
});
9087

91-
expect(getResolvedHostname).toHaveBeenCalledWith(
92-
getMockResolvedRegion(regionCase),
93-
mockGetResolvedHostnameOptions
94-
);
88+
expect(getResolvedHostname).toHaveBeenCalledWith(getMockResolvedRegion(regionCase), {
89+
signingService: mockSigningService,
90+
regionHostname: mockGetRegionInfoOptions.regionHash[mockRegion]?.hostname,
91+
partitionHostname: mockGetRegionInfoOptions.partitionHash[mockPartition]?.hostname,
92+
});
9593
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, mockGetResolvedPartitionOptions);
9694
});
9795
});
@@ -123,10 +121,7 @@ describe(getRegionInfo.name, () => {
123121
const mockPartitionHash = getMockPartitionHash(regionCase);
124122

125123
const mockGetResolvedPartitionOptions = getMockResolvedPartitionOptions(mockPartitionHash);
126-
const mockGetResolvedHostnameOptions = getMockResolvedHostnameOptions(
127-
mockRegionHash,
128-
mockGetResolvedPartitionOptions
129-
);
124+
const mockGetRegionInfoOptions = getMockRegionInfoOptions(mockRegionHash, mockGetResolvedPartitionOptions);
130125

131126
const mockRegionHashWithSigningRegion = getMockRegionHashWithSigningRegion(
132127
regionCase,
@@ -135,7 +130,7 @@ describe(getRegionInfo.name, () => {
135130
);
136131

137132
expect(
138-
getRegionInfo(mockRegion, { ...mockGetResolvedHostnameOptions, regionHash: mockRegionHashWithSigningRegion })
133+
getRegionInfo(mockRegion, { ...mockGetRegionInfoOptions, regionHash: mockRegionHashWithSigningRegion })
139134
).toEqual({
140135
signingService: mockSigningService,
141136
hostname: mockHostname,
@@ -144,8 +139,9 @@ describe(getRegionInfo.name, () => {
144139
});
145140

146141
expect(getResolvedHostname).toHaveBeenCalledWith(getMockResolvedRegion(regionCase), {
147-
...mockGetResolvedHostnameOptions,
148-
regionHash: mockRegionHashWithSigningRegion,
142+
signingService: mockSigningService,
143+
regionHostname: mockGetRegionInfoOptions.regionHash[mockRegion]?.hostname,
144+
partitionHostname: mockGetRegionInfoOptions.partitionHash[mockPartition]?.hostname,
149145
});
150146
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, mockGetResolvedPartitionOptions);
151147
});
@@ -178,10 +174,7 @@ describe(getRegionInfo.name, () => {
178174
const mockPartitionHash = getMockPartitionHash(regionCase);
179175

180176
const mockGetResolvedPartitionOptions = getMockResolvedPartitionOptions(mockPartitionHash);
181-
const mockGetResolvedHostnameOptions = getMockResolvedHostnameOptions(
182-
mockRegionHash,
183-
mockGetResolvedPartitionOptions
184-
);
177+
const mockGetRegionInfoOptions = getMockRegionInfoOptions(mockRegionHash, mockGetResolvedPartitionOptions);
185178

186179
const mockRegionHashWithSigningRegion = getMockRegionHashWithSigningService(
187180
regionCase,
@@ -190,16 +183,17 @@ describe(getRegionInfo.name, () => {
190183
);
191184

192185
expect(
193-
getRegionInfo(mockRegion, { ...mockGetResolvedHostnameOptions, regionHash: mockRegionHashWithSigningRegion })
186+
getRegionInfo(mockRegion, { ...mockGetRegionInfoOptions, regionHash: mockRegionHashWithSigningRegion })
194187
).toEqual({
195188
signingService: mockSigningServiceInRegionHash,
196189
hostname: mockHostname,
197190
partition: mockPartition,
198191
});
199192

200193
expect(getResolvedHostname).toHaveBeenCalledWith(getMockResolvedRegion(regionCase), {
201-
...mockGetResolvedHostnameOptions,
202-
regionHash: mockRegionHashWithSigningRegion,
194+
signingService: mockSigningService,
195+
regionHostname: mockGetRegionInfoOptions.regionHash[mockRegion]?.hostname,
196+
partitionHostname: mockGetRegionInfoOptions.partitionHash[mockPartition]?.hostname,
203197
});
204198
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, mockGetResolvedPartitionOptions);
205199
});

packages/config-resolver/src/regionInfo/getRegionInfo.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ export const getRegionInfo = (
2020
return {
2121
partition,
2222
signingService,
23-
hostname: getResolvedHostname(resolvedRegion, { signingService, regionHash, partitionHash }),
23+
hostname: getResolvedHostname(resolvedRegion, {
24+
signingService,
25+
regionHostname: regionHash[region]?.hostname,
26+
partitionHostname: partitionHash[partition]?.hostname,
27+
}),
2428
...(regionHash[resolvedRegion]?.signingRegion && {
2529
signingRegion: regionHash[resolvedRegion].signingRegion,
2630
}),
Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,40 @@
11
import { getHostnameTemplate } from "./getHostnameTemplate";
22
import { getResolvedHostname } from "./getResolvedHostname";
3-
import { PartitionHash } from "./PartitionHash";
4-
import { RegionHash } from "./RegionHash";
53

64
jest.mock("./getHostnameTemplate");
75

86
describe(getResolvedHostname.name, () => {
97
const mockSigningService = "mockSigningService";
108
const mockRegion = "mockRegion";
11-
const mockPartition = "mockPartition";
12-
const mockRegionRegex = "mockRegionRegex";
139
const mockHostname = "{region}.mockHostname.com";
1410

1511
afterEach(() => {
1612
jest.clearAllMocks();
1713
});
1814

1915
it("returns hostname if available in regionHash", () => {
20-
const mockRegionHash: RegionHash = {
21-
[mockRegion]: {
22-
hostname: mockHostname,
23-
},
24-
};
25-
const mockPartitionHash: PartitionHash = {};
26-
2716
expect(
2817
getResolvedHostname(mockRegion, {
2918
signingService: mockSigningService,
30-
regionHash: mockRegionHash,
31-
partitionHash: mockPartitionHash,
19+
regionHostname: mockHostname,
3220
})
3321
).toBe(mockHostname);
3422
expect(getHostnameTemplate).not.toHaveBeenCalled();
3523
});
3624

3725
it("returns hostname from hostname template when not available in regionHash", () => {
38-
const mockRegionHash: RegionHash = {};
39-
4026
(getHostnameTemplate as jest.Mock).mockReturnValue(mockHostname);
4127

42-
const mockPartitionHash: PartitionHash = {
43-
[mockPartition]: {
44-
regions: [mockRegion, `${mockRegion}2`, `${mockRegion}3`],
45-
regionRegex: mockRegionRegex,
46-
hostname: mockHostname,
47-
},
48-
};
49-
5028
expect(
5129
getResolvedHostname(mockRegion, {
5230
signingService: mockSigningService,
53-
regionHash: mockRegionHash,
54-
partitionHash: mockPartitionHash,
31+
partitionHostname: mockHostname,
5532
})
5633
).toBe(mockHostname.replace("{region}", mockRegion));
5734

5835
expect(getHostnameTemplate).toHaveBeenCalledTimes(1);
59-
expect(getHostnameTemplate).toHaveBeenCalledWith(mockRegion, {
60-
signingService: mockSigningService,
61-
partitionHash: mockPartitionHash,
36+
expect(getHostnameTemplate).toHaveBeenCalledWith(mockSigningService, {
37+
partitionHostname: mockHostname,
6238
});
6339
});
6440
});
Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
import { getHostnameTemplate } from "./getHostnameTemplate";
2-
import { PartitionHash } from "./PartitionHash";
3-
import { RegionHash } from "./RegionHash";
42

53
export interface GetResolvedHostnameOptions {
64
signingService: string;
7-
regionHash: RegionHash;
8-
partitionHash: PartitionHash;
5+
regionHostname?: string;
6+
partitionHostname?: string;
97
}
108

119
export const getResolvedHostname = (
12-
region: string,
13-
{ signingService, regionHash, partitionHash }: GetResolvedHostnameOptions
14-
) =>
15-
regionHash[region]?.hostname ??
16-
getHostnameTemplate(region, { signingService, partitionHash }).replace("{region}", region);
10+
resolvedRegion: string,
11+
{ signingService, regionHostname, partitionHostname }: GetResolvedHostnameOptions
12+
) => regionHostname ?? getHostnameTemplate(signingService, { partitionHostname }).replace("{region}", resolvedRegion);

0 commit comments

Comments
 (0)