report when an async afterAll doesn't call in time

This commit is contained in:
slackersoft
2014-06-06 18:41:06 -07:00
parent 6066c71966
commit f0892a55aa
2 changed files with 28 additions and 2 deletions

View File

@@ -345,7 +345,6 @@ describe("Env integration", function() {
env.afterAll(function() {
env.expect(1).toEqual(2);
});
});
@@ -637,6 +636,29 @@ describe("Env integration", function() {
env.execute();
});
it("should wait the specified interval before reporting an afterAll that fails to call done", function(done) {
var env = new j$.Env(),
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','afterAllError']);
reporter.jasmineDone.and.callFake(function() {
expect(reporter.afterAllError).toHaveBeenCalledWith(jasmine.any(Error));
done();
});
env.addReporter(reporter);
env.describe('my suite', function() {
env.it('my spec', function() {
});
env.afterAll(function(innerDone) {
jasmine.clock().tick(4312);
});
});
env.execute();
});
});
// TODO: something is wrong with this spec

View File

@@ -69,7 +69,11 @@ getJasmineRequireObj().QueueRunner = function(j$) {
if (queueableFn.timeout) {
timeoutId = Function.prototype.apply.apply(self.timer.setTimeout, [j$.getGlobal(), [function() {
self.onException(new Error('Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.'));
var error = new Error('Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.');
if (queueableFn.isAfterAll) {
runner.reporter.afterAllError(error);
}
self.onException(error);
next();
}, queueableFn.timeout()]]);
}