Skip to content

Commit 235af7c

Browse files
committed
chore(credential-provider-ini): undo circular import
1 parent b0ef7a9 commit 235af7c

File tree

4 files changed

+73
-19
lines changed

4 files changed

+73
-19
lines changed

packages/credential-provider-ini/src/resolveAssumeRoleCredentials.spec.ts

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ describe(resolveAssumeRoleCredentials.name, () => {
130130

131131
it("dynamically loads STS if roleAssumer is not available in options", async () => {
132132
const inputOptions = { ...mockOptions, roleAssumer: undefined };
133-
await resolveAssumeRoleCredentials(mockProfileName, mockProfiles, inputOptions);
133+
await resolveAssumeRoleCredentials(mockProfileName, mockProfiles, inputOptions, {}, resolveProfileData);
134134
expect(inputOptions.roleAssumer).toBeDefined();
135135
});
136136

@@ -146,9 +146,15 @@ describe(resolveAssumeRoleCredentials.name, () => {
146146
);
147147

148148
try {
149-
await resolveAssumeRoleCredentials(mockProfileCurrent, mockProfilesWithCycle, mockOptions, {
150-
mockProfileName: true,
151-
});
149+
await resolveAssumeRoleCredentials(
150+
mockProfileCurrent,
151+
mockProfilesWithCycle,
152+
mockOptions,
153+
{
154+
mockProfileName: true,
155+
},
156+
resolveProfileData
157+
);
152158
fail(`expected ${expectedError}`);
153159
} catch (error) {
154160
expect(error).toStrictEqual(expectedError);
@@ -168,7 +174,13 @@ describe(resolveAssumeRoleCredentials.name, () => {
168174
},
169175
};
170176

171-
const receivedCreds = await resolveAssumeRoleCredentials(mockProfileCurrent, mockProfilesWithSource, mockOptions);
177+
const receivedCreds = await resolveAssumeRoleCredentials(
178+
mockProfileCurrent,
179+
mockProfilesWithSource,
180+
mockOptions,
181+
{},
182+
resolveProfileData
183+
);
172184
expect(receivedCreds).toStrictEqual(mockCreds);
173185
expect(resolveProfileData).toHaveBeenCalledWith(
174186
mockProfileName,
@@ -192,7 +204,13 @@ describe(resolveAssumeRoleCredentials.name, () => {
192204
const mockRoleAssumeParams = getMockRoleAssumeParams();
193205
const mockProfilesWithCredSource = getMockProfilesWithCredSource(mockRoleAssumeParams);
194206

195-
const receivedCreds = await resolveAssumeRoleCredentials(mockProfileName, mockProfilesWithCredSource, mockOptions);
207+
const receivedCreds = await resolveAssumeRoleCredentials(
208+
mockProfileName,
209+
mockProfilesWithCredSource,
210+
mockOptions,
211+
{},
212+
resolveProfileData
213+
);
196214
expect(receivedCreds).toStrictEqual(mockCreds);
197215
expect(resolveProfileData).not.toHaveBeenCalled();
198216
expect(resolveCredentialSource).toHaveBeenCalledWith(mockCredentialSource, mockProfileName, undefined);
@@ -211,7 +229,13 @@ describe(resolveAssumeRoleCredentials.name, () => {
211229
const mockRoleAssumeParams = { ...getMockRoleAssumeParams(), role_session_name: undefined };
212230
const mockProfilesWithCredSource = getMockProfilesWithCredSource(mockRoleAssumeParams);
213231

214-
const receivedCreds = await resolveAssumeRoleCredentials(mockProfileName, mockProfilesWithCredSource, mockOptions);
232+
const receivedCreds = await resolveAssumeRoleCredentials(
233+
mockProfileName,
234+
mockProfilesWithCredSource,
235+
mockOptions,
236+
{},
237+
resolveProfileData
238+
);
215239
expect(receivedCreds).toStrictEqual(mockCreds);
216240
expect(mockOptions.roleAssumer).toHaveBeenCalledWith(mockSourceCredsFromCredential, {
217241
RoleArn: mockRoleAssumeParams.role_arn,
@@ -234,10 +258,16 @@ describe(resolveAssumeRoleCredentials.name, () => {
234258
false
235259
);
236260
try {
237-
await resolveAssumeRoleCredentials(mockProfileName, mockProfilesWithCredSource, {
238-
...mockOptions,
239-
mfaCodeProvider: undefined,
240-
});
261+
await resolveAssumeRoleCredentials(
262+
mockProfileName,
263+
mockProfilesWithCredSource,
264+
{
265+
...mockOptions,
266+
mfaCodeProvider: undefined,
267+
},
268+
{},
269+
resolveProfileData
270+
);
241271
fail(`expected ${expectedError}`);
242272
} catch (error) {
243273
expect(error).toStrictEqual(expectedError);
@@ -256,7 +286,13 @@ describe(resolveAssumeRoleCredentials.name, () => {
256286
const mockTokenCode = "mockTokenCode";
257287
mockOptions.mfaCodeProvider.mockResolvedValue(mockTokenCode);
258288

259-
const receivedCreds = await resolveAssumeRoleCredentials(mockProfileName, mockProfilesWithCredSource, mockOptions);
289+
const receivedCreds = await resolveAssumeRoleCredentials(
290+
mockProfileName,
291+
mockProfilesWithCredSource,
292+
mockOptions,
293+
{},
294+
resolveProfileData
295+
);
260296
expect(receivedCreds).toStrictEqual(mockCreds);
261297
expect(mockOptions.roleAssumer).toHaveBeenCalledWith(mockSourceCredsFromCredential, {
262298
RoleArn: mockRoleAssumeParams.role_arn,

packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { AwsCredentialIdentity, IniSection, Logger, ParsedIniData, Profile } fro
55

66
import { FromIniInit } from "./fromIni";
77
import { resolveCredentialSource } from "./resolveCredentialSource";
8-
import { resolveProfileData } from "./resolveProfileData";
8+
import type { ResolveProfileData } from "./resolveProfileData";
99

1010
/**
1111
* @internal
@@ -104,7 +104,8 @@ export const resolveAssumeRoleCredentials = async (
104104
profileName: string,
105105
profiles: ParsedIniData,
106106
options: FromIniInit,
107-
visitedProfiles: Record<string, true> = {}
107+
visitedProfiles: Record<string, true> = {},
108+
resolveProfileData: ResolveProfileData
108109
) => {
109110
options.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");
110111
const profileData = profiles[profileName];

packages/credential-provider-ini/src/resolveProfileData.spec.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,29 @@ describe(resolveProfileData.name, () => {
7979
vi.mocked(resolveAssumeRoleCredentials).mockImplementation(() => Promise.resolve(mockCreds));
8080
const receivedCreds = await resolveProfileData(mockProfileName, mockProfiles, mockOptions);
8181
expect(receivedCreds).toStrictEqual(mockCreds);
82-
expect(resolveAssumeRoleCredentials).toHaveBeenCalledWith(mockProfileName, mockProfiles, mockOptions, {});
82+
expect(resolveAssumeRoleCredentials).toHaveBeenCalledWith(
83+
mockProfileName,
84+
mockProfiles,
85+
mockOptions,
86+
{},
87+
resolveProfileData
88+
);
8389
});
8490

8591
it("when it's not static creds, and profiles are visited", async () => {
8692
(isStaticCredsProfile as unknown as any).mockReturnValue(false);
8793
vi.mocked(resolveAssumeRoleCredentials).mockImplementation(() => Promise.resolve(mockCreds));
8894
const receivedCreds = await resolveProfileData(mockProfileName, mockProfiles, mockOptions, { testProfile: true });
8995
expect(receivedCreds).toStrictEqual(mockCreds);
90-
expect(resolveAssumeRoleCredentials).toHaveBeenCalledWith(mockProfileName, mockProfiles, mockOptions, {
91-
testProfile: true,
92-
});
96+
expect(resolveAssumeRoleCredentials).toHaveBeenCalledWith(
97+
mockProfileName,
98+
mockProfiles,
99+
mockOptions,
100+
{
101+
testProfile: true,
102+
},
103+
resolveProfileData
104+
);
93105
});
94106
});
95107

packages/credential-provider-ini/src/resolveProfileData.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ import { isSsoProfile, resolveSsoCredentials } from "./resolveSsoCredentials";
88
import { isStaticCredsProfile, resolveStaticCredentials } from "./resolveStaticCredentials";
99
import { isWebIdentityProfile, resolveWebIdentityCredentials } from "./resolveWebIdentityCredentials";
1010

11+
/**
12+
* @internal
13+
*/
14+
export type ResolveProfileData = typeof resolveProfileData;
15+
1116
/**
1217
* @internal
1318
*/
@@ -37,7 +42,7 @@ export const resolveProfileData = async (
3742
// If this is the first profile visited, role assumption keys should be
3843
// given precedence over static credentials.
3944
if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {
40-
return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);
45+
return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles, resolveProfileData);
4146
}
4247

4348
// If no role assumption metadata is present, attempt to load static

0 commit comments

Comments
 (0)