Typescript 云函数测试失败,触发器函数缺少context.params

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":

以下是关于firebase函数单元测试的教程:

我为
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);
    });