Fixed bug: waitsFor() hangs forever if latch function never returns true.
This commit is contained in:
parent
254ebb8a03
commit
55149310c3
|
@ -339,7 +339,7 @@ describe("jasmine spec running", function () {
|
|||
fakeTimer.tick(400);
|
||||
expect(runsBlockExecuted).toEqual(false);
|
||||
expect(timeoutSpec.results().getItems()[0].message).toEqual('timeout: timed out after 500 msec waiting for something to happen');
|
||||
// todo: expect(subsequentSpecRan).toEqual(true); [xw 20100819]
|
||||
expect(subsequentSpecRan).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ describe('WaitsForBlock', function () {
|
|||
expect(spec.fail).toHaveBeenCalled();
|
||||
var failMessage = spec.fail.mostRecentCall.args[0].message;
|
||||
expect(failMessage).toMatch(message);
|
||||
expect(onComplete).not.toHaveBeenCalled(); // todo: this is an issue... [xw 20100819]
|
||||
expect(onComplete).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
|
@ -4,6 +4,7 @@ jasmine.Queue = function(env) {
|
|||
this.running = false;
|
||||
this.index = 0;
|
||||
this.offset = 0;
|
||||
this.abort = false;
|
||||
};
|
||||
|
||||
jasmine.Queue.prototype.addBefore = function(block) {
|
||||
|
@ -38,7 +39,7 @@ jasmine.Queue.prototype.next_ = function() {
|
|||
while (goAgain) {
|
||||
goAgain = false;
|
||||
|
||||
if (self.index < self.blocks.length) {
|
||||
if (self.index < self.blocks.length && !this.abort) {
|
||||
var calledSynchronously = true;
|
||||
var completedSynchronously = false;
|
||||
|
||||
|
@ -48,6 +49,10 @@ jasmine.Queue.prototype.next_ = function() {
|
|||
return;
|
||||
}
|
||||
|
||||
if (self.blocks[self.index].abort) {
|
||||
self.abort = true;
|
||||
}
|
||||
|
||||
self.offset = 0;
|
||||
self.index++;
|
||||
|
||||
|
|
|
@ -39,7 +39,9 @@ jasmine.WaitsForBlock.prototype.execute = function(onComplete) {
|
|||
name: 'timeout',
|
||||
message: message
|
||||
});
|
||||
// todo: need to prevent additional blocks in this spec from running... [xw 20100819]
|
||||
|
||||
this.abort = true;
|
||||
onComplete();
|
||||
} else {
|
||||
this.totalTimeSpentWaitingForLatch += jasmine.WaitsForBlock.TIMEOUT_INCREMENT;
|
||||
var self = this;
|
||||
|
|
Loading…
Reference in New Issue