Skip to content

Commit be93e5b

Browse files
committed
chore(config-resolver): simplify params passed to utility functions
1 parent 9303f03 commit be93e5b

File tree

6 files changed

+41
-102
lines changed

6 files changed

+41
-102
lines changed
Lines changed: 6 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +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";
126
const mockHostname = "{region}.mockHostname.com";
137
const mockSigningService = "mockSigningService";
148

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

24-
it("returns hostname template if present in partitionHash", () => {
25-
const mockPartitionHash: PartitionHash = {
26-
[mockPartition]: {
27-
regions: [mockRegion, `${mockRegion}2`, `${mockRegion}3`],
28-
hostname: mockHostname,
29-
},
30-
};
31-
32-
expect(
33-
getHostnameTemplate(mockRegion, { signingService: mockSigningService, partitionHash: mockPartitionHash })
34-
).toEqual(mockHostname);
35-
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, { partitionHash: mockPartitionHash });
36-
});
37-
38-
it("returns default hostname template if not present in partitionHash", () => {
39-
const mockPartitionHash: PartitionHash = {};
40-
41-
expect(
42-
getHostnameTemplate(mockRegion, { signingService: mockSigningService, partitionHash: mockPartitionHash })
43-
).toEqual(AWS_TEMPLATE.replace("{signingService}", mockSigningService));
44-
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+
);
4517
});
4618
});
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
@@ -52,7 +52,7 @@ describe(getRegionInfo.name, () => {
5252

5353
const getMockResolvedPartitionOptions = (partitionHash) => ({ partitionHash });
5454

55-
const getMockResolvedHostnameOptions = (regionHash, getResolvedPartitionOptions) => ({
55+
const getMockRegionInfoOptions = (regionHash, getResolvedPartitionOptions) => ({
5656
...getResolvedPartitionOptions,
5757
signingService: mockSigningService,
5858
regionHash,
@@ -75,21 +75,19 @@ describe(getRegionInfo.name, () => {
7575
const mockPartitionHash = getMockPartitionHash(regionCase);
7676

7777
const mockGetResolvedPartitionOptions = getMockResolvedPartitionOptions(mockPartitionHash);
78-
const mockGetResolvedHostnameOptions = getMockResolvedHostnameOptions(
79-
mockRegionHash,
80-
mockGetResolvedPartitionOptions
81-
);
78+
const mockGetRegionInfoOptions = getMockRegionInfoOptions(mockRegionHash, mockGetResolvedPartitionOptions);
8279

83-
expect(getRegionInfo(mockRegion, mockGetResolvedHostnameOptions)).toEqual({
80+
expect(getRegionInfo(mockRegion, mockGetRegionInfoOptions)).toEqual({
8481
signingService: mockSigningService,
8582
hostname: mockHostname,
8683
partition: mockPartition,
8784
});
8885

89-
expect(getResolvedHostname).toHaveBeenCalledWith(
90-
getMockResolvedRegion(regionCase),
91-
mockGetResolvedHostnameOptions
92-
);
86+
expect(getResolvedHostname).toHaveBeenCalledWith(getMockResolvedRegion(regionCase), {
87+
signingService: mockSigningService,
88+
regionHostname: mockGetRegionInfoOptions.regionHash[mockRegion]?.hostname,
89+
partitionHostname: mockGetRegionInfoOptions.partitionHash[mockPartition]?.hostname,
90+
});
9391
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, mockGetResolvedPartitionOptions);
9492
});
9593
});
@@ -121,10 +119,7 @@ describe(getRegionInfo.name, () => {
121119
const mockPartitionHash = getMockPartitionHash(regionCase);
122120

123121
const mockGetResolvedPartitionOptions = getMockResolvedPartitionOptions(mockPartitionHash);
124-
const mockGetResolvedHostnameOptions = getMockResolvedHostnameOptions(
125-
mockRegionHash,
126-
mockGetResolvedPartitionOptions
127-
);
122+
const mockGetRegionInfoOptions = getMockRegionInfoOptions(mockRegionHash, mockGetResolvedPartitionOptions);
128123

129124
const mockRegionHashWithSigningRegion = getMockRegionHashWithSigningRegion(
130125
regionCase,
@@ -133,7 +128,7 @@ describe(getRegionInfo.name, () => {
133128
);
134129

135130
expect(
136-
getRegionInfo(mockRegion, { ...mockGetResolvedHostnameOptions, regionHash: mockRegionHashWithSigningRegion })
131+
getRegionInfo(mockRegion, { ...mockGetRegionInfoOptions, regionHash: mockRegionHashWithSigningRegion })
137132
).toEqual({
138133
signingService: mockSigningService,
139134
hostname: mockHostname,
@@ -142,8 +137,9 @@ describe(getRegionInfo.name, () => {
142137
});
143138

144139
expect(getResolvedHostname).toHaveBeenCalledWith(getMockResolvedRegion(regionCase), {
145-
...mockGetResolvedHostnameOptions,
146-
regionHash: mockRegionHashWithSigningRegion,
140+
signingService: mockSigningService,
141+
regionHostname: mockGetRegionInfoOptions.regionHash[mockRegion]?.hostname,
142+
partitionHostname: mockGetRegionInfoOptions.partitionHash[mockPartition]?.hostname,
147143
});
148144
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, mockGetResolvedPartitionOptions);
149145
});
@@ -176,10 +172,7 @@ describe(getRegionInfo.name, () => {
176172
const mockPartitionHash = getMockPartitionHash(regionCase);
177173

178174
const mockGetResolvedPartitionOptions = getMockResolvedPartitionOptions(mockPartitionHash);
179-
const mockGetResolvedHostnameOptions = getMockResolvedHostnameOptions(
180-
mockRegionHash,
181-
mockGetResolvedPartitionOptions
182-
);
175+
const mockGetRegionInfoOptions = getMockRegionInfoOptions(mockRegionHash, mockGetResolvedPartitionOptions);
183176

184177
const mockRegionHashWithSigningRegion = getMockRegionHashWithSigningService(
185178
regionCase,
@@ -188,16 +181,17 @@ describe(getRegionInfo.name, () => {
188181
);
189182

190183
expect(
191-
getRegionInfo(mockRegion, { ...mockGetResolvedHostnameOptions, regionHash: mockRegionHashWithSigningRegion })
184+
getRegionInfo(mockRegion, { ...mockGetRegionInfoOptions, regionHash: mockRegionHashWithSigningRegion })
192185
).toEqual({
193186
signingService: mockSigningServiceInRegionHash,
194187
hostname: mockHostname,
195188
partition: mockPartition,
196189
});
197190

198191
expect(getResolvedHostname).toHaveBeenCalledWith(getMockResolvedRegion(regionCase), {
199-
...mockGetResolvedHostnameOptions,
200-
regionHash: mockRegionHashWithSigningRegion,
192+
signingService: mockSigningService,
193+
regionHostname: mockGetRegionInfoOptions.regionHash[mockRegion]?.hostname,
194+
partitionHostname: mockGetRegionInfoOptions.partitionHash[mockPartition]?.hostname,
201195
});
202196
expect(getResolvedPartition).toHaveBeenCalledWith(mockRegion, mockGetResolvedPartitionOptions);
203197
});

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 & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +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";
129
const mockHostname = "{region}.mockHostname.com";
1310

1411
afterEach(() => {
1512
jest.clearAllMocks();
1613
});
1714

1815
it("returns hostname if available in regionHash", () => {
19-
const mockRegionHash: RegionHash = {
20-
[mockRegion]: {
21-
hostname: mockHostname,
22-
},
23-
};
24-
const mockPartitionHash: PartitionHash = {};
25-
2616
expect(
2717
getResolvedHostname(mockRegion, {
2818
signingService: mockSigningService,
29-
regionHash: mockRegionHash,
30-
partitionHash: mockPartitionHash,
19+
regionHostname: mockHostname,
3120
})
3221
).toBe(mockHostname);
3322
expect(getHostnameTemplate).not.toHaveBeenCalled();
3423
});
3524

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

41-
const mockPartitionHash: PartitionHash = {
42-
[mockPartition]: {
43-
regions: [mockRegion, `${mockRegion}2`, `${mockRegion}3`],
44-
hostname: mockHostname,
45-
},
46-
};
47-
4828
expect(
4929
getResolvedHostname(mockRegion, {
5030
signingService: mockSigningService,
51-
regionHash: mockRegionHash,
52-
partitionHash: mockPartitionHash,
31+
partitionHostname: mockHostname,
5332
})
5433
).toBe(mockHostname.replace("{region}", mockRegion));
5534

5635
expect(getHostnameTemplate).toHaveBeenCalledTimes(1);
57-
expect(getHostnameTemplate).toHaveBeenCalledWith(mockRegion, {
58-
signingService: mockSigningService,
59-
partitionHash: mockPartitionHash,
36+
expect(getHostnameTemplate).toHaveBeenCalledWith(mockSigningService, {
37+
partitionHostname: mockHostname,
6038
});
6139
});
6240
});
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)