(代码已被混淆-可能有一些小错误)
我有一个玩笑的集成测试,我想利用nock,也想在其中模拟一个函数。运行测试时,我可以看到我的模拟没有在运行(没有显示控制台,也没有任何控制台来自模拟的数据,只是原始导入)。
是否无法在nock内模拟函数,或者我在这里做错了什么?
快递代码
import passport from 'passport';
router.post('/return', (req: Request, res: Response, next) =>
passport.authenticate(
'azuread-openidconnect',
{ session: false },
async (err: Error | null, user: GraphUser) => {
if (err) {
return res.status(400);
}
console.log('HERE'); // This is hit
if (user) {
return res.json(user)
}
// This is where I land because User data isn't populated from the mock
return res.status(400);
}
);
笑话
jest.mock('passport', () => ({
authenticate: (a, b, callback) => {
console.log('THERE'); //This is never hit
callback('test', {
oid: 'oid',
email: 'email',
});
},
}));
describe('/return', () => {
it('returns a user', () => {
await apiHelper.request
.post('/return')
.set('Cookie', [
'redirect_url=http://localhost:3000/authorize',
])
.send('id_token=fakeToken')
.expect(200)
});
});