Şu anda birim testim için AWS secretsmanager'ı Şaka ile alay etmeye çalışıyorum ve her seferinde ConfigError
Kodum şöyle bir şey
//index.ts
import SM from "aws-sdk/clients/secretsmanager"
const secretManagerClient = new SM()
...
export const randomMethod = async (a: string, b: string) => {
let secret
const personalToken = {
SecretId: process.env.secretId,
}
secretManagerClient
.getSecretValue(personalToken, (err, data) => {
if (err) {
console.error(`[SECRETS MANAGER] Error fetching personal token : ${err}`)
} else if (data && data.SecretString) {
secret = data.SecretString
}
})
}
Alay benim böyle gider :
//index.test.js
const mockGetSecretValue = jest.fn((SecretId) => {
switch (SecretId) {
case process.env.GITHUB_PERSONAL_TOKEN:
return {
SecretString: process.env.GITHUB_PERSONAL_TOKEN_VALUE,
}
default:
throw Error("secret not found")
}
})
jest.mock("aws-sdk/clients/secretsmanager", () => {
return jest.fn(() => {
return {
getSecretValue: jest.fn(({ SecretId }) => {
return mockGetSecretValue(SecretId)
}),
promise: jest.fn(),
}
})
})
Ancak, bana atılan bu hatayı alıyorum : ConfigError: Missing region in config
bunu bir dereceye kadar anlıyorum, ancak bunun neden burada alaycı kısımda gerçekleştiğini anlamıyorum...
Şimdiden teşekkürler!
DÜZENLEME: 1.Cevap sayesinde, bu hataya sahip olmayı bırakmayı başardım. Ancak, getSecretValue()
yöntem istediğim Gizli değeri döndürmüyor.
randomMethod()
Ve bu yöntemi bu alaycı SecretsManager örneğine bağlamaya çalışıyorum ve artık yapılandırma hatası olmamasına rağmengetSecretValue()
istediğim sırrı geri getirmiyor. Yukarıdaki kodu güncelledim.