как проверить, вызывается функция или нет после http после звонка? - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь проверить мою единственную функцию, в которой есть http почтовый запрос, после успешного вызова она вызывает функцию, я хочу проверить ее function is called or not after success.

вот мой код https://codesandbox.io/s/ecstatic-currying-5q1b8 Я тестирую ниже функции

export const saveWithoutSubmit = async (values, updateTaskListAfterFilter) => {
  var obj = {
    remarks: values.remarks,
    requestedBy: localStorage.getItem("msisdn")
  };
  try {
    const response = await sendPostRequest(`${API_TASK_URL}closeSr`, {
      ...obj,
      saveWithoutSubmit: true
    });

    if (response && response.data && response.data.status.code !== "200") {
      error(response.data.result.message);
    } else {
      console.log(response);
      success(response.data.status.message);
      updateTaskListAfterFilter();
    }
  } catch (e) {
    if (e.response && e.response.data) {
      console.log(e.response.data.message);
      error(e.response.data.status.message);
    }
  }
};

Я делаю такое тестирование

describe("remark service test", () => {
  const fakeAxios = {
    post: jest.fn(() => Promise.resolve({ data: { greeting: "hello there" } }))
  };

  const sendPostRequest = jest.fn(() =>
    Promise.resolve({ data: { greeting: "hello there" } })
  );
  it("save without sumit", async done => {
    const mockUpdateTaskListAfterFilter = jest.fn();
    const updateTaskListAfterFilter = () => {};
    saveWithoutSubmit({}, mockUpdateTaskListAfterFilter);

    // expect(updateTaskListAfterFilter).toBeCalled();
    expect(mockUpdateTaskListAfterFilter).toBeCalled();
    done();
  });
});

получаю ошибку

enter image description here

enter image description here

1 Ответ

1 голос
/ 16 февраля 2020

Почему бы просто не поместить переменную в обычную функцию стрелки и ждать saveWithoutSubmit

Примечание. service.test. js

import {
  saveWithoutSubmit
} from "./remark.service";

describe("remark service test", () => {
  it("save without sumit", async function() {
    console.log("save without sumit getting called");
    let called = false;
    const mockUpdateTaskListAfterFilter = () => {
      console.log("callback");
      called = true;
    };

    await saveWithoutSubmit({}, mockUpdateTaskListAfterFilter);
    console.log("after saveWithoutSubmit", called);
    expect(called).toBe(true);
  });
});
...