Many of the scheduler tests are failing and while I haven't looked closely enough to pin-point the cause of the failures, I see many "hacky" routines implemented just to handle asynchronous operations.
// synchronous test
it('should test synchronously', function(){
// test body
}
// asynchronous test (callback)
it('should test asynchronously', function(done){
// test body
});
// asynchronous test (Promise)
it('should pass when Promise resolves', function(){
return new Promise(function(resolve, reject){
// test body
});
});
There seems to be a few places where the test is using this API, but it should be used across all async tests and we shouldn't have to hack around it.