Я прочитал Jest Mock Promise с параметрами , и у меня в основном один и тот же фрагмент кода, но он продолжает выдавать ошибку "ParameterNotFound"
// - тестовый код -
it("get parameter", async done => {
const paramsForGetParam = {
Name: "StripeSecretKey",
WithDecryption: true
};
const mockedResponseData = {
Parameter: {
Name: "StripeSecretKey",
Type: "SecureString",
Value: "myVal",
Version: 1,
LastModifiedDate: 1530018761.888,
ARN: "arn:aws:ssm:us-east-1:123456789012:parameter/helloSecureWorld"
}
};
// ssm.getParameter().promise = jest.fn();
ssm.getParameter = jest.fn();
ssm.getParameter.mockImplementation(() => ({
promise: jest
.fn()
.mockImplementation(() => Promise.resolve(mockedResponseData))
}));
ssm
.getParameter()
.promise.mockImplementation(() => Promise.resolve(mockedResponseData));
const data = await helpers.getSsmVar("StripeSecretKey");
expect(data).toEqual(mockedResponseData.Parameter.Value);
expect(ssm.getParameter).toHaveBeenCalledTimes(1);
done();
});
Вот мой код разработчика:
const aws = require("aws-sdk");
aws.config.update({ region: "us-east-1" });
const ssm = new aws.SSM();
const baseSsm = `/mybox/`;
module.exports = {
getSsmVar: async function(name) {
var params = {
Name: baseSsm + name,
WithDecryption: true
};
var request = await ssm.getParameter(params).promise();
return request;
}
};
, но с ошибкой он продолжает указывать ниже, не сообщая мне, какой параметр не найден. Говорил, что проверяет параметр имени, но я думаю, что имя (params.Name) правильно?
● Helpers Tests › get parameter
ParameterNotFound:
at Request.extractError (node_modules/aws-sdk/lib/protocol/json.js:50:27)
at Request.callListeners (node_modules/aws-sdk/lib/sequential_executor.js:112:20)
at Request.emit (node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (node_modules/aws-sdk/lib/request.js:713:14)
at Request.transition (node_modules/aws-sdk/lib/request.js:25:10)