2014-09-02 10 views
6

Im Moment versuche ich meine Controller zu testen und ich muss auf Sitzung zugreifen, fand ich heraus, dass Sie sich anmelden können superagent aber meine einzige Option für die Anmeldung im Internet app ist durch google oauth, und im Moment kann ich keine geeigneten Proben zum Testen mit Mocha finden. Irgendeine Hilfe?So testen Sie Google Oauth Reisepass in Segel Js mit Mokka

Antwort

1

Es hängt davon ab, wie Sie Ihre Sitzungen implementiert haben.

In meiner Sails App, nach der Authentifizierung, habe ich req.session.authenticated = true, zusammen mit Cookies usw. Eine Sache, die Sie tun können, wenn Sie ähnlich in Ihrem Tun sind etwas /login Weg ist, fügen:

if (process.env.NODE_ENV === 'test') { 
    req.session.authenticated = true; 
    // do what you would do next after authentication 
} else { 
    // do normal login procedures 
} 

Dann , in Ihren Tests, in einem before Haken, können Sie superagent verwenden, um eine Anfrage an die /login Route zu authentifizieren zu machen: Es ist nur eine Idee

describe('MyController', function() { 
    var agent; 

    before(function (done) { 
    agent = require('superagent').agent('YOUR_APP_URL'); 

    // authenticate 
    agent 
     .post('/login') 
     .end(done) 
    }); 

    // in your tests, use the same agent to make future requests 
    describe('#someAction', function() { 
    it('should do something', function(done) { 
     agent. 
     .post('someAction') 
     .end(function (err, res) { 
      // should work! 
     }); 
    }); 
    }); 
}); 

- Sie können diesen Ansatz passen sich aber du bist checki ng Sitzungen. Dies funktioniert für meine Sails App mit Mocha für Tests.