Typescript 云函数测试失败,触发器函数缺少context.params
以下是关于firebase函数单元测试的教程: 我为Typescript 云函数测试失败,触发器函数缺少context.params,typescript,firebase-realtime-database,jestjs,google-cloud-functions,ts-jest,Typescript,Firebase Realtime Database,Jestjs,Google Cloud Functions,Ts Jest,以下是关于firebase函数单元测试的教程: 我为onCreate实时数据库触发器添加了一个单元测试,当数据到达时,context.params在单元测试中显示为空。 所以我有 test('checks that the user gets created', async () => { const userId = 'aaaaaaa'; const path = `/users/${userId}`; const data = { "id":
onCreate
实时数据库触发器添加了一个单元测试,当数据到达时,context.params
在单元测试中显示为空。
所以我有
test('checks that the user gets created', async () => {
const userId = 'aaaaaaa';
const path = `/users/${userId}`;
const data = {
"id": userId,
"firstName": "Dan",
"phoneNumber": "+11111111111",
"carInfo": {
"color": "blue",
"make": "Ford",
"model": "Focus",
"plate": "BV-11-AAA"
}
};
// Create a Database snapshot
const snap = testEnv.database.makeDataSnapshot(data, path);
// Execute it
await wrapped(snap);
const after = await admin.database().ref(path).once('value');
const afterValue = after.val();
expect(afterValue.phoneNumber).toBe('+11111111111')
});
我的实际功能(index.ts
)是:
我在函数的处理程序中获得实际有效负载,但是:
它有两个问题:
afterValue
为null)(实际上可能是预期行为。不确定)上下文参数:{}
。我是否需要手动发送上下文的参数?从testEnv.database.makeDataSnapshot
命令提前感谢。有关Firebase的问题,您可以联系免费Firebase支持:有关Firebase的问题,您可以联系免费Firebase支持:
export const newUserCreated = database.ref('/users/{userId}').onCreate(async (snapshot: DataSnapshot, context) => {
console.log('context params : ', context.params);
const user = snapshot.val();
await createStripeCustomerHandler(user, snapshot.key);
});