gpt4 book ai didi

node.js - 如何使用 sinon stub require ('firebase-admin' ).auth().getUserByEmail() ?

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:54 26 4
gpt4 key购买 nike

您能否分享一些用于 firebase-admin 身份验证的 Sinon stub 示例。挑战在于初始化 Firebase 管理应用以获取更多 stub 。

我尝试了下一个代码

  const admin = require('firebase-admin');
sinon.stub(admin, 'initializeApp');
var noUserError = new Error('error');
noUserError.code = 'auth/user-not-found';
sinon.stub(admin, 'auth').returns({
getUserByEmail: sinon.fake.rejects(noUserError)
});
var err = await admin.auth().getUserByEmail(email);
console.error(err);

但它返回

  Error (FirebaseAppError) {
codePrefix: 'app',
errorInfo: {
code: 'app/no-app',
message: 'The default Firebase app does not exist. Make sure you call initializeApp() before using any of the Firebase services.',
},
message: 'The default Firebase app does not exist. Make sure you call initializeApp() before using any of the Firebase services.',
}

预期结果是异常 Error with code = 'auth/user-not-found'

最佳答案

由于 admin.auth 是一个 getter,因此您不能将其 stub 为函数,而是作为使用 stub 对象返回函数的 getter 进行 stub 。您需要使用Sinon API中的stub.get(getterFn)

sinon.stub(admin, 'auth').get(() => () => ({
getUserByEmail: sinon.fake.rejects(noUserError)
}));

关于node.js - 如何使用 sinon stub require ('firebase-admin' ).auth().getUserByEmail() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57566458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com