Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
report when an async afterAll doesn't call in time
  • Loading branch information
slackersoft committed Jun 7, 2014
1 parent 6066c71 commit f0892a5
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
24 changes: 23 additions & 1 deletion spec/core/integration/EnvSpec.js
Expand Up @@ -345,7 +345,6 @@ describe("Env integration", function() {

env.afterAll(function() {
env.expect(1).toEqual(2);

});
});

Expand Down Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion src/core/QueueRunner.js
Expand Up @@ -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()]]);
}
Expand Down

0 comments on commit f0892a5

Please sign in to comment.