Skip to content

Commit c58aa23

Browse files
committed
Added assertions/test cases to SecretsProvider
1 parent 4824520 commit c58aa23

File tree

1 file changed

+38
-8
lines changed

1 file changed

+38
-8
lines changed

packages/parameters/tests/unit/SecretsProvider.test.ts

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { BaseProvider } from '../../src/BaseProvider';
22
import { DEFAULT_PROVIDERS } from '../../src/BaseProvider';
3+
import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
34
import { get_secret, SecretsProvider } from '../../src/SecretsProvider';
4-
import { GetSecretValueCommand, SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
55

66
const defaultProviderGetSpy = jest.spyOn(DEFAULT_PROVIDERS, 'get');
77
const defaultProviderHasSpy = jest.spyOn(DEFAULT_PROVIDERS, 'has');
8-
jest.spyOn(SecretsManagerClient.prototype, 'send').mockImplementation(() => ({ SecretString: 'foo', }));
8+
const clientSpy = jest.spyOn(SecretsManagerClient.prototype, 'send').mockImplementation(() => ({ SecretString: 'foo', }));
99

1010
describe('Class: SecretsProvider', () => {
1111

@@ -24,6 +24,11 @@ describe('Class: SecretsProvider', () => {
2424

2525
// Assess
2626
expect(value).toEqual('foo');
27+
expect(clientSpy).toBeCalledWith(expect.objectContaining({
28+
input: expect.objectContaining({
29+
SecretId: 'my-parameter'
30+
})
31+
}));
2732

2833
});
2934

@@ -39,6 +44,7 @@ describe('Class: SecretsProvider', () => {
3944

4045
// Assess
4146
expect(value).toEqual('bar');
47+
expect(clientSpy).toBeCalledTimes(0);
4248

4349
});
4450

@@ -54,24 +60,48 @@ describe('Class: SecretsProvider', () => {
5460

5561
// Assess
5662
expect(value).toEqual('foo');
63+
expect(clientSpy).toBeCalledTimes(1);
5764

5865
});
5966

6067
test('when called with custom sdkOptions, it uses them, and it returns a value from remote', async () => {
61-
6268
// Prepare
6369
const provider = new SecretsProvider();
64-
const customCommand = new GetSecretValueCommand({
65-
SecretId: 'A',
70+
71+
// Act
72+
const value = await provider.get('my-parameter', { sdkOptions: {
6673
VersionId: '7a9155b8-2dc9-466e-b4f6-5bc46516c84d'
67-
});
74+
} });
75+
76+
// Assess
77+
expect(value).toEqual('foo');
78+
expect(clientSpy).toBeCalledWith(expect.objectContaining({
79+
input: expect.objectContaining({
80+
SecretId: 'my-parameter',
81+
VersionId: '7a9155b8-2dc9-466e-b4f6-5bc46516c84d'
82+
})
83+
}));
84+
85+
});
86+
87+
test('when called with custom sdkOptions that should be overwritten, it use the correct ones, and it returns a value from remote', async () => {
88+
// Prepare
89+
const provider = new SecretsProvider();
6890

6991
// Act
70-
const value = await provider.get('my-parameter', { sdkOptions: customCommand });
92+
const value = await provider.get('my-parameter', { sdkOptions: {
93+
SecretId: 'THIS_SHOULD_BE_OVERWRITTEN',
94+
VersionId: '7a9155b8-2dc9-466e-b4f6-5bc46516c84d'
95+
} });
7196

7297
// Assess
7398
expect(value).toEqual('foo');
74-
expect(provider.store.has([ 'my-parameter', undefined ].toString())).toBe(true);
99+
expect(clientSpy).toBeCalledWith(expect.objectContaining({
100+
input: expect.objectContaining({
101+
SecretId: 'my-parameter',
102+
VersionId: '7a9155b8-2dc9-466e-b4f6-5bc46516c84d'
103+
})
104+
}));
75105

76106
});
77107

0 commit comments

Comments
 (0)