diff --git a/lib/jasmine-core/jasmine-html.js b/lib/jasmine-core/jasmine-html.js index a72404ed..5552bf45 100644 --- a/lib/jasmine-core/jasmine-html.js +++ b/lib/jasmine-core/jasmine-html.js @@ -238,15 +238,22 @@ jasmineRequire.HtmlReporter = function(j$) { alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage, seedBar)); + var errorBarClassName = 'jasmine-bar jasmine-errored'; + var errorBarMessagePrefix = 'AfterAll '; + for(i = 0; i < failedSuites.length; i++) { var failedSuite = failedSuites[i]; for(var j = 0; j < failedSuite.failedExpectations.length; j++) { - var errorBarMessage = 'AfterAll ' + failedSuite.failedExpectations[j].message; - var errorBarClassName = 'jasmine-bar jasmine-errored'; - alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessage)); + alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failedSuite.failedExpectations[j].message)); } } + var globalFailures = (doneResult && doneResult.failedExpectations) || []; + for(i = 0; i < globalFailures.length; i++) { + var failure = globalFailures[i]; + alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failure.message)); + } + var results = find('.jasmine-results'); results.appendChild(summary); diff --git a/spec/html/HtmlReporterSpec.js b/spec/html/HtmlReporterSpec.js index 593cc20d..980796b4 100644 --- a/spec/html/HtmlReporterSpec.js +++ b/spec/html/HtmlReporterSpec.js @@ -1,5 +1,4 @@ describe("New HtmlReporter", function() { - // TODO: Figure out why this isn't rendering... it("builds the initial DOM elements, including the title banner", function() { var env = new jasmineUnderTest.Env(), container = document.createElement("div"), @@ -196,14 +195,16 @@ describe("New HtmlReporter", function() { reporter.jasmineStarted({}); reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My After All Exception' }] }); reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My Other Exception' }] }); - reporter.jasmineDone({}); + reporter.jasmineDone({ failedExpectations: [{ message: 'Global After All Failure' }, { message: 'Other Global' }] }); var alertBars = container.querySelectorAll(".jasmine-alert .jasmine-bar"); - expect(alertBars.length).toEqual(3); + expect(alertBars.length).toEqual(5); expect(alertBars[1].innerHTML).toMatch(/My After All Exception/); expect(alertBars[1].getAttribute("class")).toEqual('jasmine-bar jasmine-errored'); expect(alertBars[2].innerHTML).toMatch(/My Other Exception/); + expect(alertBars[3].innerHTML).toMatch(/Global After All Failure/); + expect(alertBars[4].innerHTML).toMatch(/Other Global/); }); }); diff --git a/src/html/HtmlReporter.js b/src/html/HtmlReporter.js index 0628adb0..b321885f 100644 --- a/src/html/HtmlReporter.js +++ b/src/html/HtmlReporter.js @@ -209,15 +209,22 @@ jasmineRequire.HtmlReporter = function(j$) { alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage, seedBar)); + var errorBarClassName = 'jasmine-bar jasmine-errored'; + var errorBarMessagePrefix = 'AfterAll '; + for(i = 0; i < failedSuites.length; i++) { var failedSuite = failedSuites[i]; for(var j = 0; j < failedSuite.failedExpectations.length; j++) { - var errorBarMessage = 'AfterAll ' + failedSuite.failedExpectations[j].message; - var errorBarClassName = 'jasmine-bar jasmine-errored'; - alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessage)); + alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failedSuite.failedExpectations[j].message)); } } + var globalFailures = (doneResult && doneResult.failedExpectations) || []; + for(i = 0; i < globalFailures.length; i++) { + var failure = globalFailures[i]; + alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failure.message)); + } + var results = find('.jasmine-results'); results.appendChild(summary);