Quiero probar la siguiente función.
export async function getIdToken() { const currentUser = firebase.auth().currentUser; if (currentUser) { return currentUser.getIdToken(); } else { return undefined; } } export async function getSomethingViaHTTPS() { const idToken = await getIdToken(); const response = await fetch("https://someURL.com", { method: "GET", headers: { Authorization: "Bearer " + idToken } }); if (response.status === 200) { return await response.json(); } throw new Error("failed to fetch data breaches: " + response.status + ": " + (await response.text())); }Ahora no sé cómo puedo probarlo ya que durante la prueba el usuario actual no estaría definido. ¿Hay alguna manera de burlarse del usuario actual? Esta es mi función de prueba:
describe("something via https", () => { const mockGetSomethingAPI = responseBody => { fetchMock.once(req => { if (req.url !== "https://someURL.com") { return Promise.reject({}); } return Promise.resolve(JSON.stringify(responseBody)); }); }; it("get something", async () => { mockGetSomethingAPI({ "something": "some text" }); expect(await mockGetSomethingAPI()).toEqual({ something: "testestest" }); }); });