Je suis actuellement en train de se moquer de AWS SecretsManager pour mes tests unitaires avec la Plaisanterie, et, à chaque fois, je suis frappé par le ConfigError
Mon code est un peu comme ceci
//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
}
})
}
Ma maquette qui va comme ceci :
//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(),
}
})
})
Cependant, j'ai cette erreur jeté à moi : ConfigError: Missing region in config
et je crois comprendre que, dans une certaine mesure, cependant je ne comprends pas pourquoi il se produit ici en se moquant de la partie...
Merci à l'avance!
EDIT: Merci pour la 1ère réponse, j'ai réussi à arrêter d'avoir cette erreur. Cependant, l' getSecretValue()
la méthode ne retourne pas la valeur du Secret que je veux.
randomMethod()
et j'essaie de relier cette méthode pour ce moqué de SecretsManager exemple, et en dépit de ne pas avoir la config d'erreur de plus, l'getSecretValue()
n'est-ce pas retourner le secret que je veux. J'ai mis à jour le code ci-dessus.