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
6
A
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.