angular - 模拟开火功能配置 - 不拿起条纹键
问题描述
我正在使用火力功能。它适用于部署,但现在我已经编写了单元测试。它说:
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 }
任何想法为什么我的测试中的配置没有被选中。我在开玩笑。
解决方案
我能够通过确保解决它
import { fun } from './test-config';
fun.cleanup;
在顶部。
和,
"esModuleInterop": true
在 compilerOptions 下的 tsConfig.json 中。
推荐阅读
- linux - centos 7 httpd服务重启问题
- elasticsearch - 带有 geo_shape 的 Elasticsearch script_fields
- c# - 使用 .Net Core Web API 作为后端服务、Angular 和 Ionic 或 React(ReactJS、React Native)和 ElectronJS 的跨平台开发?
- python - 在 TensorFlow libdevice.10.bc InternalEr 中使用 XLA
- swift - Swift NSNotification 观察者不工作
- python - 我正在尝试使用 MoviePy 模块将视频 mp4 文件转换为音频 mp3 格式,但它向我显示 Nonetype 错误
- prometheus - 将从 AWS Fargate Task 公开的自定义应用程序指标集成到 prometheus
- python - Django 纯文本电子邮件模板在模板标签后生成\n
- stata - 如何在Stata中声明“字符串”条件?
- java - 在“导入 Maven 项目”和“构建 Maven 项目”期间发生内部错误