Aquí está la función que quiero probar, toma un token y una descripción como accesorios. Normalmente, en el código React, puedo obtener un token de useContext.
export const updateUserProfileAbout = async ( token, description ) => { const dataUpdateTemplateDescriptionRes = await patchData(`me/`, token, { about:description, }); const dataUpdateTemplateDescriptionJson = await dataUpdateTemplateDescriptionRes.json(); return dataUpdateTemplateDescriptionJson; };Y aquí está mi función patchData personalizada:
const patchData = async (urn, token, data = "") => { const headers = { "Content-Type": "application/json", Authorization: `Bearer ${token.access}`, }; const body = data ? JSON.stringify(data) : null; let response; if (body) { response = await fetch(`${host}/api/${urn}`, { method: "PATCH", headers, body, }); } else { response = await fetch(`${host}/api/${urn}`, { method: "PATCH", headers, }); } if (!response.ok) throw new Error(response.status); return response; };Después de un día más de investigación, es posible que me equivoque, pero no creo que deba preocuparme por el token o la autorización cuando se realizan pruebas unitarias para el front-end. Todo lo que necesito es jest.fn() para simular la función y jest.spyOn(global, "fetch") para rastrear la API de búsqueda.
Para más información, aquí hay algunas referencias que leí:
https://codewithhugo.com/jest-fn-spyon-stub-mock/
https://dev.to/qmenoret/burlas-y-espias-con-broma-32gf
https://www.pluralsight.com/guides/how-does-jest.fn()-work
https://www.loupetestware.com/post/mocking-api-calls-with-jest