Шутка издеваться с обещанием снова - PullRequest
0 голосов
/ 30 июня 2019

Я прочитал 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)
...