我想测试以下功能
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()));
}
现在我不知道如何测试它,因为在测试期间当前用户将是未定义的。有没有办法模拟当前用户?这是我的测试功能:
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" });
});
});