A função assíncrona no mocha antes de () terminar sempre antes da especificação ()?

Eu tenho uma função de retorno de chamada embefore() que é para limpar o banco de dados. Está tudo embefore() garantido para terminar antesit() começa?

before(function(){
   db.collection('user').remove({}, function(res){}); // is it guaranteed to finish before it()? 
});

it('test spec', function(done){
  // do the test
});

after(function(){
});

questionAnswers(2)

yourAnswerToTheQuestion