🔥
Firebase Functionsのテストコード (firebase test jest)
前提条件
テスト用に無料でいいのでFirebaseのPJを作ってそれを利用しましょう。
(実際にfirestoreの書き込み等行うので本番と分けた方が良い。)
テストに必要なライブラリをインストール
npm install --save-dev firebase-functions-test
npm i -D ts-jest @types/jest
npx ts-jest config:init
tsconfig.devを修正
diff --git a/functions/tsconfig.dev.json b/functions/tsconfig.dev.json
index 7560eed..ad935f2 100644
--- a/functions/tsconfig.dev.json
+++ b/functions/tsconfig.dev.json
@@ -1,5 +1,5 @@
{
"include": [
- ".eslintrc.js"
+ ".eslintrc.js", "test"
]
}
テストコードサンプル
import "jest";
import * as functions from "firebase-functions-test";
import * as myFunctions from "../src";
const testConfig = functions({
storageBucket: "my-project.appspot.com", // firebase管理画面から取得
projectId: "my-project", // firebase管理画面から取得
}, "./test-server.json");
describe("servers", () => {
let wrapped: any;
beforeAll(
() => {
// myFunctions.testFuntionがテストするファンクション
wrapped = testConfig.wrap(myFunctions.testFuntion);
}
);
test("hoge", async () => {
res:any = await wrapped({}, {});
expect(res.data).toEqual(1);
});
});
test-server.jsonは下記のfirebase管理画面からDL
テスト実行方法
下記をpackage.jsonのscriptsに追記。
npmスクリプトとして起動。
"test": "jest"
Discussion