2016-05-12 11 views
2

Ich bin mit Mocha und Chai meinen Node/Express-API zu testen, und ich kann nicht herausfinden, warum der Test nicht, um die .end erreicht()Chai nicht erreicht .end()

Hier ist der Test :

it('should authenticate successfully with user credentials', function (done) { 
    agent 
     .post('/login') 
     .set('Content-Type', 'application/x-www-form-urlencoded') 
     .send({ 'username': 'username', 'password': 'password'}) 
     .end(function (err, res) { 
      console.log(res); 
      console.log('***************************Authenticated*********************************************'); 
      expect(res).to.have.status(200); 
     }); 
    done(); 
}); 

Und hier ist der Weg, den ich bin schlagen:

app.post('/login', passport.authenticate('ldapauth', { successRedirect: '/' })); 

ich mein Problem Figur mit der Tatsache sein, dass es keine formale Antwort, sondern eine Umleitung, aber ich bin nicht sicher, wie man damit umgeht.

+2

Beginnen Sie mit 'done()' zu _inside_ der 'end' Handler zu verschieben. – robertklep

Antwort

2

Die Lösung bestand darin, den done() Callback in meine .end() Methode zu verschieben. Danke @robertklep

0

Wenn Sie async Methoden Int Mocha testen, sollten Sie Aufruf Methode in Callback-Funktion wie folgt aufrufen.