Debe informar a mocha que la prueba que está escribiendo es asíncrona. Agregue una devolución de llamada hecha a su it
llame a la función y llame a esta devolución de llamada realizada desde connection.connect. La devolución de llamada realizada es lo suficientemente inteligente como para averiguar si se pasó un error como primer argumento y, en caso de que se pase un error, la prueba fallará.
describe('Access to DB', function(){
describe('#fail', function(){
it('should return -1 because wrong credentials', function(done){
var connection = mysql.createConnection({
host: 'right host',
user: 'wrong user',
password: 'wrong password',
database: 'right database'
});
connection.connect(done);
});
})
});