【发布时间】:2021-02-18 13:23:24
【问题描述】:
我正在使用火力功能。它适用于部署,但现在我已经编写了单元测试。 它说:
functions.config().stripe.secret;// ( Cannot read property 'secret' of undefined)
我了解,对于测试,您需要设置一个 mockConfig。
我使用 config.ts 来配置我的功能(这是发生错误的地方)
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
//init cloud firestore db
export const db = admin.firestore();
const settings = { timestampsInSnapshots: true };
db.settings(settings)
console.log(functions.config().stripe);
export const stripeSecret = functions.config().stripe.secret;
import Stripe from 'stripe';
export const stripe = new Stripe(stripeSecret, {
apiVersion: '2020-08-27',
});
为了测试,我有一个 test-config.ts,我在单元测试中引用它,如下所示:
import { fun } from './test-config';
fun.cleanup;
在我的 test-config.ts 我有这个(敏感信息已编辑)
import TestFunctions from 'firebase-functions-test';
const firebaseConfig = {
apiKey: "...lala...",
authDomain: "...lala...",
databaseURL: "...lala...",
projectId: "...lala...",
storageBucket: "...lala...",
messagingSenderId: "...lala...",
appId: "...lala...",
measurementId: "...lala..."}
const envConfig = { stripe : { secret : 'sk_test...lalala...' }};
const fun = TestFunctions(firebaseConfig, 'service-account.json');
fun.mockConfig(envConfig);
export { fun }
关于我在测试中的配置没有被选中的任何想法。 我在开玩笑。
【问题讨论】:
标签: angular function testing jestjs mocking