Revert "[Finishes #45476285] Add timeout support to async tests"

This reverts commit 8f5d0beb8c.

Async timeout support is just not ready for prime time.
This commit is contained in:
Colin O'Byrne and JR Boyens
2013-07-24 14:38:57 -07:00
parent 8f5d0beb8c
commit 051f3499ec
6 changed files with 8 additions and 95 deletions

View File

@@ -291,55 +291,6 @@ describe("Env integration", function() {
env.execute();
});
describe("with a mock clock", function() {
beforeEach(function() {
jasmine.getEnv().clock.install();
});
afterEach(function() {
jasmine.getEnv().clock.uninstall();
});
it("should not hang on async specs that forget to call done()", function(done) {
var env = new j$.Env(),
reporter = jasmine.createSpyObj('fakeReporter', [
"jasmineStarted",
"jasmineDone",
"suiteStarted",
"suiteDone",
"specStarted",
"specDone"
]);
env.addReporter(reporter);
env.describe("tests", function() {
env.it("async spec that will hang", function(underTestCallback) {
env.expect(true).toBeTruthy();
});
env.it("after async spec", function() {
env.expect(true).toBeTruthy();
});
});
env.execute();
reporter.jasmineDone.and.callFake(function() {
expect(reporter.jasmineStarted).toHaveBeenCalledWith({
totalSpecsDefined: 2
});
expect(reporter.specDone).toHaveBeenCalledWith(jasmine.objectContaining({status: 'passed'}));
expect(reporter.specDone).toHaveBeenCalledWith(jasmine.objectContaining({status: 'failed'}));
done();
});
jasmine.getEnv().clock.tick(60001);
});
});
// TODO: something is wrong with this spec
it("should report as expected", function(done) {

View File

@@ -15,8 +15,6 @@ describe('Spies', function () {
});
it("warns the user that we indend to overwrite an existing property", function() {
TestClass.prototype.someFunction.and = "existing";
expect(function() {
j$.createSpy(TestClass.prototype, TestClass.prototype.someFunction);
}).toThrowError("Jasmine spies would overwrite the 'and' and 'calls' properties on the object being spied upon");
@@ -25,8 +23,8 @@ describe('Spies', function () {
it("adds a spyStrategy and callTracker to the spy", function() {
var spy = j$.createSpy(TestClass.prototype, TestClass.prototype.someFunction);
expect(spy.and).toEqual(jasmine.any(j$.SpyStrategy));
expect(spy.calls).toEqual(jasmine.any(j$.CallTracker));
expect(spy.and).toEqual(jasmine.any(j$.SpyStrategy);
expect(spy.calls).toEqual(jasmine.any(j$.CallTracker);
});
});

View File

@@ -6,9 +6,6 @@
var env = jasmine.getEnv();
SUPER_TIMEOUT = setTimeout;
SUPER_CLEAR_TIMEOUT = clearTimeout;
var jasmineInterface = {
describe: function(description, specDefinitions) {
return env.describe(description, specDefinitions);

View File

@@ -1,14 +1,13 @@
getJasmineRequireObj().Env = function(j$) {
function Env(options) {
options = options || {};
var self = this;
var global = options.global || j$.getGlobal();
var catchExceptions = true;
var realSetTimeout = j$.getGlobal().setTimeout;
var realClearTimeout = j$.getGlobal().clearTimeout;
this.clock = new j$.Clock(global, new j$.DelayedFunctionScheduler());
var spies = [];
@@ -121,13 +120,9 @@ getJasmineRequireObj().Env = function(j$) {
}
}
var asyncSpecTimeout = 60000;
var queueRunnerFactory = function(options) {
options.catchException = self.catchException;
options.clearStack = options.clearStack || clearStack;
options.realTimer = { setTimeout: realSetTimeout, clearTimeout: realClearTimeout };
options.asyncSpecTimeout = asyncSpecTimeout;
new j$.QueueRunner(options).run(options.fns, 0);
};

View File

@@ -6,11 +6,6 @@ getJasmineRequireObj().QueueRunner = function() {
this.clearStack = attrs.clearStack || function(fn) {fn();};
this.onException = attrs.onException || function() {};
this.catchException = attrs.catchException || function() { return true; };
this.timer = attrs.realTimer;
this.asyncSpecTimeout = attrs.asyncSpecTimeout || 60000;
this.leaf = attrs.leaf || false;
}
QueueRunner.prototype.execute = function() {
@@ -21,23 +16,16 @@ getJasmineRequireObj().QueueRunner = function() {
var length = fns.length,
self = this,
iterativeIndex;
var nextIteration = function(currentIteration) {
return function() {
self.run(fns, currentIteration + 1);
};
};
for(iterativeIndex = recursiveIndex; iterativeIndex < length; iterativeIndex++) {
var fn = fns[iterativeIndex];
if (fn.length > 0) {
var attemptSuccessful = attempt(fn, nextIteration(iterativeIndex));
var attemptSuccessful = attempt(function() {
fn.call(self, function() { self.run(fns, iterativeIndex + 1); });
});
if(attemptSuccessful) {
return;
} else {
// TODO cleanup the timeout ?
}
} else {
attempt(function() { fn.call(self); });
@@ -50,24 +38,9 @@ getJasmineRequireObj().QueueRunner = function() {
this.clearStack(this.onComplete);
}
function attempt(fn, done) {
var timeout;
function attempt(fn) {
try {
if (self.leaf) {
timeout = self.timer.setTimeout(function() {
self.onException(new Error("timeout"));
done();
}, self.asyncSpecTimeout);
}
var next = function() {
if (self.leaf) { self.timer.clearTimeout(timeout); }
done();
};
fn.call(self, next);
fn();
return true;
} catch (e) {
self.onException(e);

View File

@@ -57,7 +57,6 @@ getJasmineRequireObj().Spec = function() {
this.queueRunner({
fns: allFns,
leaf: true,
onException: function(e) {
if (Spec.isPendingSpecException(e)) {
self.pend();