Как смоделировать функцию разрешения Promise в Jest - PullRequest
0 голосов
/ 02 апреля 2020

Я использую Jest + Enzyme. У меня есть функция,

     submitHandler = values => {
         return new Promise((resolve, _) => {
                saveSomething({values, resolve});
         }
     }

Мой тест:

    it('Should call saveSomething on form submit', () => {
        const values = {firstName: 'FName', lastname: 'LName'};
        const {enzymeWrapper, props} = setup();
        enzymeWrapper.find('Formik').simulate('submit', values);
        expect(props.saveSomething).toBeCalledWith({
            values: {
                ...values,
                contactLanguage: LOCALE_TO_LANGUAGE_MAP[props.locale],
            },
        });
    });

В настоящее время мой тест не пройден. Ошибка:

    Error: expect(jest.fn()).toBeCalledWith(...expected)

    - Expected
    + Received

    @@ -1,6 +1,7 @@
      Object {
    +   "resolve": [Function anonymous],
        "values": Object {
          "contactLanguage": "FRENCH",
          "firstName": "FName",
          "lastname": "LName",
        },,

Вопрос: Как смоделировать функцию разрешения?

1 Ответ

0 голосов
/ 19 апреля 2020

Шутливые макеты имеют свой собственный способ справляться с решениями и отказами Promise. Пожалуйста, обратитесь к Jest Mock API для подробностей.

Для этой цели используется mockResolvedValue метод.

Просто издевайтесь над submitHandler простым вызовом jest.fn() и добавьте метод mockResolvedValue.

Вы также можете проверить отклонения с помощью метода mockRejectValue.

...