
var n = 30;
while (n--) {
  describe('Array ' + n, function(){
    var arr;

    beforeEach(function(){
      arr = [1,2,3];
    })

    describe('#indexOf()', function(){
      it('should return -1 when the value is not present', function(){
        assert(-1 == arr.indexOf(5));
      })

      it('should return the correct index when the value is present', function(done){
        assert(0 == arr.indexOf(1));
        assert(1 == arr.indexOf(2));
        done();
      })
    })
  })
}

describe('something', function(){
  it('should provide a useful error', function(done){
    setTimeout(function(){
      throw new Error('boom');
      done();
    }, 1);
  })

  it('should provide an even better error on phantomjs', function(done){
    setTimeout(function(){
      var AssertionError = function(message, actual, expected) {
        this.message = message;
        this.actual = actual;
        this.expected = expected;
        this.showDiff = true;
      };
      AssertionError.prototype = Object.create(Error.prototype);
      AssertionError.prototype.name = 'AssertionError';
      AssertionError.prototype.constructor = AssertionError;

      mocha.throwError(new AssertionError('kabooom', 'text with a typo', 'text without a typo'));
      done();
    }, 1);
  })
})