2014-09-02 19 views
6

In questo momento sto provando a testare i miei controller e ho bisogno di accedere alla sessione, ho scoperto che è possibile accedere utilizzando superagent ma la mia unica opzione per accedere al web l'app è tramite google oauth e al momento non riesco a trovare alcun campione appropriato per il test con Mocha. Qualsiasi aiuto?Come unit test google oauth passaporto in vele js con Mocha

risposta

1

Dipende da come sono state implementate le sessioni.

Nel mio Sails app, dopo l'autenticazione, ho impostato req.session.authenticated = true, insieme con i biscotti, ecc Una cosa che si può fare se si sta facendo qualcosa di simile è nel vostro itinerario /login, aggiungere:

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

Poi , nei test, in un gancio before, è possibile utilizzare superagent per fare una richiesta al percorso /login per autenticare:

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! 
     }); 
    }); 
    }); 
}); 

E 'solo un'idea - è possibile adattare questo approccio per però sei Checki sessioni. Questo funziona per la mia app Sails che usa Mocha per i test.