Проверка результатов onUpdate в TypeError: Невозможно прочитать свойство 'val' из неопределенного - PullRequest
0 голосов
/ 12 мая 2018

Я недавно перенес свои функции Firebase с бета-версии на 1.0.2 и в процессе написал несколько модульных тестов с использованием нового Firebase Test SDK для облачных функций.Некоторые из моих функций отвечают за зеркалирование данных из Realtime в Firestore, и поэтому я использовал триггер onUpdate () Realtime Database, который предоставляет change и context объекты,Моя проблема заключается в том, что при их тестировании я получаю сообщение об ошибке TypeError: Невозможно прочитать свойство 'val' из неопределенного , поскольку свойства после и до объекта измененияне определено.Эти функции работают при развертывании, эта ошибка возникает только во время тестирования.Одной из функций, показывающих эту проблему, является:

exports.mirrorTransactionUpdates = functions.database.ref("transactions/{id}").onUpdate((change, context) => {
    return firestore.collection("transactions").doc(context.params.id).set(change.after.val());
});

и модульный тест:

describe("mirrorTransactionUpdates", () => {
    it("should update transactions in firestore", () => {
        const data = {date: 1};
        const snapshot = test.database.makeDataSnapshot(data, "transactions/test_transaction_id");
        return test.wrap(activeFunctions.mirrorTransactionUpdates)(snapshot, {
            params: {id: "test_transaction_id"}
        }).then(() => {
            return firestore.collection("transactions").doc("test_transaction_id").get()
                .then(mirroredDoc => {
                    assert.deepEqual(mirroredDoc.data(), data);
                });
        });
    });
});

Я нигде не могу найти, почему change.before и change.after не определены, когдамодульное тестирование.Я также не вижу в документах нигде, где я могу / должен определить их сам.Следует отметить, что это также происходит с обработчиком событий onWrite () .Любая помощь будет принята с благодарностью!

Я использую firebase-admin 5.11.0 и firebase-functions 1.0.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...