環境
TypeScript, Node(Hapi)
###コード
import admin from "firebase-admin";
const decoded = adimn.auth().verifyIdToken(token);
このverifyIdToken(token)で返すデータをJestでモックしたかった。
###テスト
test.ts
let spy: jest.SpyInstance;
afterEach(() => {
spy.mockRestore();
});
test("テスト", () => {
const admin = require("firebase-admin");
const mockVerifyIdToken = jest.fn().mockResolvedValue({ uid: "uid" });
const mockAuth = jest.fn().mockReturnValue({ verifyIdToken: mockVerifyIdToken });
spy = jest.spyOn(admin, "app").mockReturnValue({ auth: mockAuth });
})
複数のテストで違う値を返したかったのでspyOnを使いました。
これで
const decoded = adimn.auth().verifyIdToken(token);
の部分は{ uid: "uid" }
を返しました。
ちゃんとは読んでないけど参考