2 réponses

Meilleure réponse

handleSearch ne renvoie pas une promesse qui est un anti-modèle, donc await handleSearch("api") n'affecte rien. Il échouera également si aucun callback n'est fourni. Les promesses natives permettent de fournir une non-fonction à then, dans ce cas elle est ignorée. Puisqu'un callback doit recevoir les mêmes paramètres que le callback then, il doit être:

function handleSearch(searchQuery, callback) {
  return fetch(searchQuery)
  .then(callback)
  ...
}
0
Estus Flask 28 août 2020 à 06:46

Eh bien, c'est mon approche pour simuler une fonction async:

    let resolve , reject;
    jest.mock("../module,()=>({
    ...jest.requireActual("../module"),
    handleSearch:jest.fn(()=> new Promise((res,rej)=>{
    resolve = res;
    reject = rej
    }))
    }))

it("should update result on successful fetch", async () => {
    const updateSearchResult = jest.fn();
    await handleSearch();
    resolve("api")
    expect(handleSearch).toHaveBeenCalledTimes(1);
  });
0
adel 28 août 2020 à 06:53