describe('suite1', function(){
  beforeAll(function (){
    // Let's do 'cleanup' beforeEach too, in case another suite didn't clean up properly
    spies.restoreAll();
    stubs.restoreAll();
    console.log("I'm beforeAll");
  });
  beforeEach(function (){
    console.log("I'm beforeEach");
    spies.create('log', console, 'log');
  });
  afterEach(function (){
    spies.restoreAll();
    console.log("I'm afterEach");
  });
  afterAll(function (){
    console.log("I'm afterAll");
    spies.restoreAll();
    stubs.restoreAll();
  });
  it('test1', function(){
    console.log('Hello world');
    expect(spies.log).to.have.been.calledWith('Hello world');
  })
});

describe('suite2', function(){
  it('async test', function(done){
    var onTimeout = function () {
      done();
    };
    Meteor.setTimeout(onTimeout, 50);
  });
});


describe.skip('skipped suite', function(){
  it('work in progress', function(){
    expect(false).to.be.true;
  });
});

describe('suite with skipped test', function(){
  it.skip('skipped test', function(){
    expect(false).to.be.true;
  });
});

describe('client only and server only tests', function(){
  it.client('runs only in client', function(){
    expect(Meteor.isClient).to.be.true;
  });
  it.server('runs only in server', function(){
    expect(Meteor.isServer).to.be.true;
  });
});

describe.client('client only test suite', function(){
  it('runs only in client', function(){
    expect(Meteor.isClient).to.be.true;
  });
  it.server('overrides describe.client and runs only in server', function(){
    expect(Meteor.isServer).to.be.true;
  });
});

describe.server('server only test suite', function(){
  it('runs only in server', function(){
    expect(Meteor.isServer).to.be.true;
  });
  it.client('overrides describe.server and runs only in client', function(){
    expect(Meteor.isClient).to.be.true;
  });
});

@@ -750,20 +750,23 @@
 unction(
-done
+waitFor
 )%7B%0D%0A    
@@ -806,15 +806,31 @@
     
-done();
+expect(true).to.be.true
 %0D%0A  
@@ -857,16 +857,24 @@
 Timeout(
+waitFor(
 onTimeou
@@ -874,16 +874,17 @@
 nTimeout
+)
 , 50);%0D%0A
@@ -1949,28 +1949,266 @@
 t).to.be.true;%0D%0A  %7D);%0D%0A%7D);%0D%0A
+%0D%0Adescribe('top-level describe', function()%7B%0D%0A  describe('nested describe', function() %7B%0D%0A    describe('deep nested describe', function() %7B%0D%0A      it('a test', function () %7B%0D%0A        expect(true).to.be.true;%0D%0A      %7D)%0D%0A    %7D)%0D%0A  %7D)%0D%0A%7D);%0D%0A

Add nested describe test in js