passport.use(new BearerStrategy({ passReqToCallback: true },
function(req, accessToken, done) {
accessTokens.validate(req, accessToken, function(err, token) {
if (err) {
req.log.error(err);
return done(null, false);
}
if (!token) { return done(null, false); }
users.getById(req, token.userId, function(err, user) {
if (err) {
req.log.error(err);
return done(null, false);
}
if (!user) { return done(null, false); }
// default to * for now
var info = { scope: '*' };
req.authenticationStrategy = 'OAUTH2';
req.authToken = accessToken;
done(null, user, info);
});
});
When I stub users.getById function, it excutes original function rather than stub function.
Below is my test:
it('test-error: users getbyId error null for bearer strategy', function(done) { //need to
var passport = index.__get__("passport");
var strategy = _.find(passport._strategies, function (value) {
return value.name === 'bearer'
})._verify;
var stub=sinon.stub(users,'getById');
stub.callsArgWith(2,null,null);
var accessToken = theToken;
strategy(context,accessToken,function(err,user){
assert.isNull(err,"err should be null");
assert.isFalse(user,"user should be False");
done();
});
users.getById.restore();
});