Skip to content

Commit b2e8e7d

Browse files
committed
readability
1 parent 8c51abb commit b2e8e7d

File tree

6 files changed

+127
-171
lines changed

6 files changed

+127
-171
lines changed

packages/credential-provider-imds/src/fromContainerMetadata.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { parse } from "url";
55

66
import { httpRequest } from "./remoteProvider/httpRequest";
77
import { fromImdsCredentials, isImdsCredentials } from "./remoteProvider/ImdsCredentials";
8-
import { providerConfigFromInit, RemoteProviderInit } from "./remoteProvider/RemoteProviderInit";
8+
import { DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, RemoteProviderInit } from "./remoteProvider/RemoteProviderInit";
99
import { retry } from "./remoteProvider/retry";
1010

1111
/**
@@ -28,7 +28,7 @@ export const ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
2828
* Container Metadata Service
2929
*/
3030
export const fromContainerMetadata = (init: RemoteProviderInit = {}): AwsCredentialIdentityProvider => {
31-
const { timeout, maxRetries } = providerConfigFromInit(init);
31+
const { timeout = DEFAULT_TIMEOUT, maxRetries = DEFAULT_MAX_RETRIES } = init;
3232
return () =>
3333
retry(async () => {
3434
const requestOptions = await getCmdsUri({ logger: init.logger });

packages/credential-provider-imds/src/fromInstanceMetadata.spec.ts

Lines changed: 20 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@ import { afterEach, beforeEach, describe, expect, test as it, vi } from "vitest"
55
import { InstanceMetadataV1FallbackError } from "./error/InstanceMetadataV1FallbackError";
66
import {
77
fromInstanceMetadata,
8-
getConfiguredProfileName,
8+
getEc2InstanceProfileName,
99
getImdsProfile,
1010
throwIfImdsTurnedOff,
1111
} from "./fromInstanceMetadata";
1212
import { httpRequest } from "./remoteProvider/httpRequest";
1313
import { fromImdsCredentials, isImdsCredentials } from "./remoteProvider/ImdsCredentials";
14-
import { providerConfigFromInit } from "./remoteProvider/RemoteProviderInit";
1514
import { retry } from "./remoteProvider/retry";
1615
import { getInstanceMetadataEndpoint } from "./utils/getInstanceMetadataEndpoint";
1716
import { staticStabilityProvider } from "./utils/staticStabilityProvider";
@@ -73,10 +72,6 @@ describe("fromInstanceMetadata", () => {
7372
vi.mocked(loadConfig).mockReturnValue(() => Promise.resolve(false));
7473
vi.spyOn({ throwIfImdsTurnedOff }, "throwIfImdsTurnedOff").mockResolvedValue(undefined);
7574
(isImdsCredentials as unknown as any).mockReturnValue(true);
76-
vi.mocked(providerConfigFromInit).mockReturnValue({
77-
timeout: mockTimeout,
78-
maxRetries: mockMaxRetries,
79-
});
8075
});
8176

8277
afterEach(() => {
@@ -98,31 +93,36 @@ describe("fromInstanceMetadata", () => {
9893
);
9994
const provider = fromInstanceMetadata({});
10095

101-
await expect(provider()).rejects.toEqual(new CredentialsProviderError("IMDS credential fetching is disabled"));
96+
await expect(provider()).rejects.toEqual(new CredentialsProviderError("IMDS credential fetching is disabled", {}));
10297
expect(httpRequest).not.toHaveBeenCalled();
10398
});
10499

105100
it("returns valid credentials with account ID when ec2InstanceProfileName is provided", async () => {
106-
const profileName = "my-profile-0002";
101+
const ec2InstanceProfileName = "my-profile-0002";
107102

108103
vi.mocked(httpRequest)
104+
.mockImplementation(((...args: any[]) => {
105+
console.log(...args);
106+
return mockToken;
107+
}) as any)
109108
.mockResolvedValueOnce(mockToken as any)
109+
.mockResolvedValueOnce(JSON.stringify(mockImdsCreds) as any)
110110
.mockResolvedValueOnce(JSON.stringify(mockImdsCreds) as any);
111111

112112
vi.mocked(retry).mockImplementation((fn: any) => fn());
113113
vi.mocked(fromImdsCredentials).mockReturnValue(mockCreds);
114114

115-
const credentials = await fromInstanceMetadata({ ec2InstanceProfileName: profileName })();
115+
const credentials = await fromInstanceMetadata({ ec2InstanceProfileName: ec2InstanceProfileName })();
116116

117117
expect(credentials).toEqual(mockCreds);
118118
expect(credentials.accountId).toBe(mockCreds.accountId);
119119

120-
expect(httpRequest).toHaveBeenCalledTimes(2);
121120
expect(httpRequest).toHaveBeenNthCalledWith(1, mockTokenRequestOptions);
122121
expect(httpRequest).toHaveBeenNthCalledWith(2, {
123122
...mockProfileRequestOptions,
124-
path: `${mockProfileRequestOptions.path}${profileName}`,
123+
path: `${mockProfileRequestOptions.path}${ec2InstanceProfileName}`,
125124
});
125+
expect(httpRequest).toHaveBeenCalledTimes(2);
126126
});
127127

128128
it("returns valid credentials with account ID when profile is discovered from IMDS", async () => {
@@ -177,7 +177,6 @@ describe("fromInstanceMetadata", () => {
177177

178178
vi.mocked(retry).mockImplementation((fn: any) => fn());
179179
vi.mocked(fromImdsCredentials).mockReturnValue(mockCreds);
180-
vi.spyOn({ throwIfImdsTurnedOff }, "throwIfImdsTurnedOff").mockResolvedValue();
181180

182181
await expect(fromInstanceMetadata()()).resolves.toEqual(mockCreds);
183182
expect(httpRequest).toHaveBeenNthCalledWith(3, {
@@ -186,34 +185,6 @@ describe("fromInstanceMetadata", () => {
186185
});
187186
});
188187

189-
it("passes {} to providerConfigFromInit if init not defined", async () => {
190-
vi.mocked(retry).mockResolvedValueOnce(mockProfile).mockResolvedValueOnce(mockCreds);
191-
vi.mocked(loadConfig).mockReturnValueOnce(() => Promise.resolve(false));
192-
193-
await expect(fromInstanceMetadata()()).resolves.toEqual(mockCreds);
194-
expect(providerConfigFromInit).toHaveBeenCalledTimes(1);
195-
expect(providerConfigFromInit).toHaveBeenCalledWith({});
196-
});
197-
198-
it("passes init to providerConfigFromInit", async () => {
199-
vi.mocked(retry).mockResolvedValueOnce(mockProfile).mockResolvedValueOnce(mockCreds);
200-
vi.mocked(loadConfig).mockReturnValueOnce(() => Promise.resolve(false));
201-
202-
const init = { maxRetries: 5, timeout: 1213 };
203-
await expect(fromInstanceMetadata(init)()).resolves.toEqual(mockCreds);
204-
expect(providerConfigFromInit).toHaveBeenCalledTimes(1);
205-
expect(providerConfigFromInit).toHaveBeenCalledWith(init);
206-
});
207-
208-
it("passes maxRetries returned from providerConfigFromInit to retry", async () => {
209-
vi.mocked(retry).mockResolvedValueOnce(mockProfile).mockResolvedValueOnce(mockCreds);
210-
211-
await expect(fromInstanceMetadata()()).resolves.toEqual(mockCreds);
212-
expect(retry).toHaveBeenCalledTimes(2);
213-
expect(vi.mocked(retry).mock.calls[0][1]).toBe(mockMaxRetries);
214-
expect(vi.mocked(retry).mock.calls[1][1]).toBe(mockMaxRetries);
215-
});
216-
217188
it("throws CredentialsProviderError if credentials returned are incorrect", async () => {
218189
vi.mocked(httpRequest)
219190
.mockResolvedValueOnce(mockToken as any)
@@ -305,9 +276,13 @@ describe("fromInstanceMetadata", () => {
305276
const profileName = "profile-from-init";
306277
const options = { hostname };
307278

308-
vi.spyOn({ getConfiguredProfileName }, "getConfiguredProfileName").mockResolvedValueOnce(profileName);
279+
vi.spyOn(
280+
{ getConfiguredProfileName: getEc2InstanceProfileName },
281+
"getConfiguredProfileName"
282+
).mockResolvedValueOnce(profileName);
309283

310-
const credentials = await getImdsProfile(options, mockMaxRetries, {
284+
const credentials = await getImdsProfile(options, {
285+
maxRetries: mockMaxRetries,
311286
ec2InstanceProfileName: profileName,
312287
});
313288

@@ -321,7 +296,7 @@ describe("fromInstanceMetadata", () => {
321296

322297
vi.mocked(loadConfig).mockReturnValue(() => Promise.resolve(envProfileName));
323298

324-
const credentials = await getImdsProfile(options, mockMaxRetries, {});
299+
const credentials = await getImdsProfile(options, { maxRetries: mockMaxRetries });
325300

326301
expect(credentials).toBe(envProfileName);
327302
expect(httpRequest).not.toHaveBeenCalled();
@@ -334,7 +309,7 @@ describe("fromInstanceMetadata", () => {
334309

335310
vi.mocked(loadConfig).mockReturnValue(() => Promise.resolve(configProfileName));
336311

337-
let credentials = await getImdsProfile(options, mockMaxRetries, {});
312+
let credentials = await getImdsProfile(options, { maxRetries: mockMaxRetries });
338313
expect(credentials).toBe(configProfileName);
339314
expect(httpRequest).not.toHaveBeenCalled();
340315

@@ -343,7 +318,7 @@ describe("fromInstanceMetadata", () => {
343318
.mockRejectedValueOnce(Object.assign(new Error(), { statusCode: 404 }))
344319
.mockResolvedValueOnce(legacyProfileName as any);
345320

346-
credentials = await getImdsProfile(options, mockMaxRetries, {});
321+
credentials = await getImdsProfile(options, { maxRetries: mockMaxRetries });
347322
expect(credentials).toBe(legacyProfileName);
348323
expect(httpRequest).toHaveBeenCalledTimes(2);
349324
expect(httpRequest).toHaveBeenNthCalledWith(1, {

0 commit comments

Comments
 (0)