From f8bccabf0362d7f6ef370f6f419281bc667aeebe Mon Sep 17 00:00:00 2001 From: slackersoft Date: Wed, 27 Aug 2014 08:13:17 -0700 Subject: [PATCH] Move afterAll reporting into Suite since that's where they're being tracked --- src/core/Env.js | 11 +++++++---- src/core/QueueRunner.js | 10 ---------- src/core/Suite.js | 11 +++++++++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/core/Env.js b/src/core/Env.js index 3fb56eee..965c9ab2 100644 --- a/src/core/Env.js +++ b/src/core/Env.js @@ -173,9 +173,6 @@ getJasmineRequireObj().Env = function(j$) { reporter.afterAllEvent('Error thrown: '+ (e.message || e.description)); } }; - options.reportExpectationFailure = function(message) { - reporter.afterAllEvent('Expectation failed: '+ message); - }; new j$.QueueRunner(options).execute(); }; @@ -185,7 +182,10 @@ getJasmineRequireObj().Env = function(j$) { id: getNextSuiteId(), description: 'Jasmine__TopLevel__Suite', queueRunner: queueRunnerFactory, - resultCallback: function() {} // TODO - hook this up + resultCallback: function() {}, // TODO - hook this up + reportExpectationFailure: function(message) { + reporter.afterAllEvent('Expectation failed: '+ message); + } }); runnableLookupTable[topSuite.id] = topSuite; defaultResourcesForRunnable(topSuite.id); @@ -241,6 +241,9 @@ getJasmineRequireObj().Env = function(j$) { currentlyExecutingSuites.pop(); } reporter.suiteDone(attrs); + }, + reportExpectationFailure: function(message) { + reporter.afterAllEvent('Expectation failed: '+ message); } }); diff --git a/src/core/QueueRunner.js b/src/core/QueueRunner.js index 8a60969b..6feb23e4 100644 --- a/src/core/QueueRunner.js +++ b/src/core/QueueRunner.js @@ -19,8 +19,6 @@ getJasmineRequireObj().QueueRunner = function(j$) { this.userContext = attrs.userContext || {}; this.timer = attrs.timeout || {setTimeout: setTimeout, clearTimeout: clearTimeout}; this.reportException = attrs.reportException || function() {}; - this.reportExpectationFailure = attrs.reportExpectationFailure || function() {}; - this.afterAllExpectationFailures = attrs.afterAllExpectationFailures || []; } QueueRunner.prototype.execute = function() { @@ -39,7 +37,6 @@ getJasmineRequireObj().QueueRunner = function(j$) { return attemptAsync(queueableFn); } else { attemptSync(queueableFn); - flushAfterAllExpectationFailures(); } } @@ -63,7 +60,6 @@ getJasmineRequireObj().QueueRunner = function(j$) { }, next = once(function () { clearTimeout(timeoutId); - flushAfterAllExpectationFailures(); self.run(queueableFns, iterativeIndex + 1); }), timeoutId; @@ -97,12 +93,6 @@ getJasmineRequireObj().QueueRunner = function(j$) { throw e; } } - - function flushAfterAllExpectationFailures() { - while (self.afterAllExpectationFailures.length) { - self.reportExpectationFailure(self.afterAllExpectationFailures.pop()); - } - } }; return QueueRunner; diff --git a/src/core/Suite.js b/src/core/Suite.js index bdca8ad1..a21731c2 100644 --- a/src/core/Suite.js +++ b/src/core/Suite.js @@ -8,6 +8,7 @@ getJasmineRequireObj().Suite = function() { this.resultCallback = attrs.resultCallback || function() {}; this.clearStack = attrs.clearStack || function(fn) {fn();}; this.expectationFactory = attrs.expectationFactory; + this.reportExpectationFailure = attrs.reportExpectationFailure || function() {}; this.beforeFns = []; this.afterFns = []; @@ -90,11 +91,11 @@ getJasmineRequireObj().Suite = function() { queueableFns: allFns, onComplete: complete, userContext: this.sharedUserContext(), - onException: function() { self.onException.apply(self, arguments); }, - afterAllExpectationFailures: this.afterAllExpectationFailures + onException: function() { self.onException.apply(self, arguments); } }); function complete() { + self.reportAfterAllExpectationFailures(); self.resultCallback(self.result); if (onComplete) { @@ -107,6 +108,12 @@ getJasmineRequireObj().Suite = function() { } }; + Suite.prototype.reportAfterAllExpectationFailures = function() { + while (this.afterAllExpectationFailures.length) { + this.reportExpectationFailure(this.afterAllExpectationFailures.pop()); + } + }; + Suite.prototype.isExecutable = function() { var foundActive = false; for(var i = 0; i < this.children.length; i++) {