Тесты от зацикливания через асинхронный JavaScript (Mocha)

Я пытаюсь протестировать асинхронный JavaScript с Mocha, и у меня есть некоторые проблемы с циклическим перемещением по асинхронно заполненному массиву.

Моя цель - создать N (=arr.length) тесты, по одному на каждый элемент массива.

Возможно, что-то в семантике Mocha мне не хватает.

Это мой (нерабочий) упрощенный код до сих пор:

var arr = []

describe("Array test", function(){

    before(function(done){
        setTimeout(function(){
            for(var i = 0; i < 5; i++){
                arr.push(Math.floor(Math.random() * 10))
            }

            done();
        }, 1000);
    });

    it('Testing elements', function(){
        async.each(arr, function(el, cb){
            it("testing" + el, function(done){
                expect(el).to.be.a('number');
                done()
            })
            cb()
        })
    })
});

Вывод, который я получаю:

  Array test
    ✓ Testing elements


  1 passing (1s)

Я хотел бы иметь вывод, как этот:

  Array test
      Testing elements
      ✓ testing3
      ✓ testing5
      ✓ testing7
      ✓ testing3
      ✓ testing1

  5 passing (1s)

Любая помощь о том, как написать это?