From 1526d5e2a8c644d29966d763fa728463f8f444d9 Mon Sep 17 00:00:00 2001 From: Steve Gravrock Date: Tue, 7 Nov 2017 20:48:23 -0800 Subject: [PATCH] Treat afterAll errors at any level as failures [Finishes #152492514] --- lib/jasmine-core/jasmine-html.js | 2 +- spec/core/integration/EnvSpec.js | 1 - spec/html/HtmlReporterSpec.js | 21 +++++++++++++++++++++ src/html/HtmlReporter.js | 2 +- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/jasmine-core/jasmine-html.js b/lib/jasmine-core/jasmine-html.js index 4f9722bd..26248ed4 100644 --- a/lib/jasmine-core/jasmine-html.js +++ b/lib/jasmine-core/jasmine-html.js @@ -220,7 +220,7 @@ jasmineRequire.HtmlReporter = function(j$) { var statusBarMessage = ''; var statusBarClassName = 'jasmine-overall-result jasmine-bar '; var globalFailures = (doneResult && doneResult.failedExpectations) || []; - var failed = failureCount + globalFailures.length > 0; + var failed = failureCount + globalFailures.length + failedSuites.length > 0; if (totalSpecsDefined > 0 || failed) { statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount); diff --git a/spec/core/integration/EnvSpec.js b/spec/core/integration/EnvSpec.js index 8bbad5fe..b5cfc29f 100644 --- a/spec/core/integration/EnvSpec.js +++ b/spec/core/integration/EnvSpec.js @@ -433,7 +433,6 @@ describe("Env integration", function() { env.it('has a spec', function() {}); env.afterAll(function() { - debugger; throw 'nope'; }); diff --git a/spec/html/HtmlReporterSpec.js b/spec/html/HtmlReporterSpec.js index 84bcd1a3..87f7a093 100644 --- a/spec/html/HtmlReporterSpec.js +++ b/spec/html/HtmlReporterSpec.js @@ -179,6 +179,27 @@ describe("HtmlReporter", function() { }); describe("when there are suite failures", function () { + it("displays an overall result of failure even if no other failures occurred", function() { + var env = new jasmineUnderTest.Env(), + container = document.createElement("div"), + getContainer = function() { return container; }, + reporter = new jasmineUnderTest.HtmlReporter({ + env: env, + getContainer: getContainer, + createElement: function() { return document.createElement.apply(document, arguments); }, + createTextNode: function() { return document.createTextNode.apply(document, arguments); } + }); + + reporter.initialize(); + + reporter.jasmineStarted({}); + reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My After All Exception' }] }); + reporter.jasmineDone({ failedExpectations: [] }); + + var alertBar = container.querySelector(".jasmine-overall-result"); + expect(alertBar.classList).toContain("jasmine-failed"); + }); + it("displays the exceptions in their own alert bars", function(){ var env = new jasmineUnderTest.Env(), container = document.createElement("div"), diff --git a/src/html/HtmlReporter.js b/src/html/HtmlReporter.js index cbcd41b8..e4ec91bf 100644 --- a/src/html/HtmlReporter.js +++ b/src/html/HtmlReporter.js @@ -191,7 +191,7 @@ jasmineRequire.HtmlReporter = function(j$) { var statusBarMessage = ''; var statusBarClassName = 'jasmine-overall-result jasmine-bar '; var globalFailures = (doneResult && doneResult.failedExpectations) || []; - var failed = failureCount + globalFailures.length > 0; + var failed = failureCount + globalFailures.length + failedSuites.length > 0; if (totalSpecsDefined > 0 || failed) { statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount);