Ответ 1
Вы можете использовать метод sinon
для заглушки isAuthenticated
, но вы должны сделать это до того, как ссылка на auth.isAuthenticated
будет установлена как промежуточное программное обеспечение, поэтому перед тем, как вы создадите index.js
и app
. Скорее всего, вы захотите этого в hook beforeEach
:
var app;
var auth;
beforeEach(function() {
auth = require('../wherever/auth/auth.service');
sinon.stub(auth, 'isAuthenticated')
.callsFake(function(req, res, next) {
return next();
});
// after you can create app:
app = require('../../wherever/index');
});
afterEach(function() {
// restore original method
auth.isAuthenticated.restore();
});
it('it should return a 200 response', function(done) {
request(app).post('/subscriptions/sync')
.set('Authorization','Bearer '+ authToken)
.send({receipt: newSubscriptionReceipt })
.expect(200,done);
});
Обратите внимание, что даже после восстановления auth.isAuthenticated
существующий экземпляр app
будет иметь заглушку в качестве промежуточного программного обеспечения, поэтому вам нужно создать другой экземпляр app
, если по какой-то причине вам нужно получить оригинальное поведение.