Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"done() called multiple times" moongoose with mocha

See debugger output here

var expect = require('chai').expect  
var User = require('../../app/models/index.js').User  


describe('Model User', function(){  
  it('add a user', function(done){  
    var user = new User({  
      uname: 'cx',  
      password: 'cx'  
    })  

   user.save()    //Model#save()  return Promise
    .then(function(user,effectNum){  
       done()   //success state
    })
    .catch(function(error){
      done(error)  //fail state
    })
 })
})

Use Chai, Mocha, Moongoose I test my code when learn moongodb. Seems to be correct But I get a error:

   0 passing (2m)
   2 failing

   1) Model User add a user:
     Error: done() called multiple times

   2) Model User add a user:
     Error: done() called multiple times

why it call done multiple times

like image 278
froYo Avatar asked Nov 01 '25 01:11

froYo


1 Answers

describe('Model User', function(){


     it('add a user', function(done){
    var user = new User({
      uname: 'cx',
      password: 'cx'
    })

    user.save()
        .then(function(){
          assert(false)
        }).then(done,done)

  })
})

//or
describe('Model User', function(){
  it('add a user', function(){
    var user = new User({
      uname: 'cx',
      password: 'cx'
    })

   return  user.save()
        .then(function(){
          assert(false)
        })

  })
})

Mocha support Promise ^_^ ,My mistake

like image 86
froYo Avatar answered Nov 02 '25 17:11

froYo