1
- import { SSMParameterMock } from "./ssm-parameter-mock" ;
2
- import { SecretsManagerMock } from "./secrets-manager-mock" ;
1
+ import { GetSecretValueCommand , SecretsManagerClient } from "@aws-sdk/client-secrets-manager" ;
2
+ import { GetParameterCommand , ParameterType , SSMClient } from "@aws-sdk/client-ssm" ;
3
+ import { mockClient } from 'aws-sdk-client-mock' ;
4
+
3
5
import { SecretKey } from "../secret-key" ;
4
6
import { KeyType } from "../key-type" ;
5
7
6
- const ssmMock = new SSMParameterMock ( ) ;
7
- const secretsManagerMock = new SecretsManagerMock ( ) ;
8
-
9
- jest . mock ( "aws-sdk" , ( ) => ( {
10
- SSM : jest . fn ( ) . mockImplementation ( ( ) => ssmMock . implementation ) ,
11
- SecretsManager : jest
12
- . fn ( )
13
- . mockImplementation ( ( ) => secretsManagerMock . implementation ) ,
14
- } ) ) ;
8
+ const secretsManagerClientMock = mockClient ( SecretsManagerClient ) ;
9
+ const ssmClientMock = mockClient ( SSMClient ) ;
15
10
16
11
beforeEach ( ( ) => {
17
- ssmMock . reset ( ) ;
18
- secretsManagerMock . reset ( ) ;
12
+ secretsManagerClientMock . reset ( ) ;
13
+ ssmClientMock . reset ( ) ;
19
14
} ) ;
20
15
21
16
test ( "plain text secret" , async ( ) => {
@@ -34,11 +29,17 @@ test("plain text secret", async () => {
34
29
test ( "ssm parameter secret" , async ( ) => {
35
30
const value = "secret" ;
36
31
const parameterName = "foo" ;
37
-
38
- ssmMock . addParameter ( {
32
+ const requestParams = {
39
33
Name : parameterName ,
40
- Type : "SecureString" ,
41
- Value : value ,
34
+ WithDecryption : true ,
35
+ } ;
36
+
37
+ ssmClientMock . on ( GetParameterCommand , requestParams ) . resolvesOnce ( {
38
+ Parameter : {
39
+ Name : parameterName ,
40
+ Type : ParameterType . SECURE_STRING ,
41
+ Value : value ,
42
+ }
42
43
} ) ;
43
44
44
45
const secretKeyString = JSON . stringify ( {
@@ -54,8 +55,16 @@ test("ssm parameter secret", async () => {
54
55
test ( "secrets manger secret" , async ( ) => {
55
56
const value = "secret" ;
56
57
const secretId = "foo" ;
57
-
58
- secretsManagerMock . addSecretString ( secretId , value ) ;
58
+ const requestParams = {
59
+ SecretId : secretId ,
60
+ VersionId : undefined ,
61
+ VersionStage : undefined ,
62
+ } ;
63
+
64
+ secretsManagerClientMock . on ( GetSecretValueCommand , requestParams ) . resolvesOnce ( {
65
+ Name : secretId ,
66
+ SecretString : value ,
67
+ } ) ;
59
68
60
69
const secretKeyString = JSON . stringify ( {
61
70
secretKeyType : KeyType . SECRETS_MANAGER ,
@@ -71,8 +80,16 @@ test("secrets manger secret with fieldName", async () => {
71
80
const value = "secret" ;
72
81
const secretString = JSON . stringify ( { xxx : value } ) ;
73
82
const secretId = "foo" ;
74
-
75
- secretsManagerMock . addSecretString ( secretId , secretString ) ;
83
+ const requestParams = {
84
+ SecretId : secretId ,
85
+ VersionId : undefined ,
86
+ VersionStage : undefined ,
87
+ } ;
88
+
89
+ secretsManagerClientMock . on ( GetSecretValueCommand , requestParams ) . resolvesOnce ( {
90
+ Name : secretId ,
91
+ SecretString : secretString ,
92
+ } ) ;
76
93
77
94
const secretKeyString = JSON . stringify ( {
78
95
secretKeyType : KeyType . SECRETS_MANAGER ,
0 commit comments