有一个关于使用AVA进行Firebase测试的快速问题。使用带有Firebase Admin的test.after.finally()来删除测试清理中的用户帐户时,承诺不会解决或抛出错误。我很有可能在这里没有做正确的事情,并且会喜欢一些意见。
我的代码:
test.after.always(async () => {
internals.ids.forEach(async (id) => {
await admin.database().ref(`users/${id}`).remove();
await admin.auth().deleteUser(id);
});
});
其中internals.ids是一系列id,需要在运行所有测试结束时进行清理。
这可能与AVA的非串行性质有关,也可能没有,但我不是百分百肯定。如果您需要更多信息,请告诉我。谢谢!
答案 0 :(得分:0)
请改为尝试:
for (const id of internals.ids) {
await ...remove()
await ...deleteUser(id)
}
由于您正在使用forEach()
,因此挂钩实际上并没有等待您的任何删除/用户删除完成,并且该过程可能会在它们执行之前退出。