diff --git a/lib/jasmine-core/jasmine-html.js b/lib/jasmine-core/jasmine-html.js index 3bf2b2dc..b491766e 100644 --- a/lib/jasmine-core/jasmine-html.js +++ b/lib/jasmine-core/jasmine-html.js @@ -184,7 +184,7 @@ jasmineRequire.HtmlReporter = function(j$) { summary.addResults(this.#stateBuilder.topResults); results.appendChild(summary.rootEl); - if (this.#failures.any()) { + if (this.#stateBuilder.anyNonTopSuiteFailures) { this.#alerts.addFailureToggle( () => this.#setMenuModeTo('jasmine-failure-list'), () => this.#setMenuModeTo('jasmine-spec-list') @@ -798,11 +798,6 @@ jasmineRequire.FailuresView = function(j$) { this.#failureEls.push(this.#makeFailureEl(result, parent)); } - // TODO move this to state builder or something - any() { - return this.#failureEls.length > 0; - } - show() { const failureNode = this.rootEl.querySelector('.jasmine-failures'); @@ -1136,7 +1131,7 @@ jasmineRequire.HtmlReporterV2 = function(j$) { summary.addResults(this.#stateBuilder.topResults); results.appendChild(summary.rootEl); - if (this.#failures.any()) { + if (this.#stateBuilder.anyNonTopSuiteFailures) { this.#alerts.addFailureToggle( () => this.#setMenuModeTo('jasmine-failure-list'), () => this.#setMenuModeTo('jasmine-spec-list') @@ -1356,6 +1351,7 @@ jasmineRequire.ResultsStateBuilder = function(j$) { this.totalSpecsDefined = 0; this.specsExecuted = 0; this.failureCount = 0; + this.anyNonTopSuiteFailures = false; this.pendingSpecCount = 0; this.deprecationWarnings = []; } @@ -1376,6 +1372,7 @@ jasmineRequire.ResultsStateBuilder = function(j$) { if (result.status === 'failed') { this.failureCount++; + this.anyNonTopSuiteFailures = true; } } @@ -1389,6 +1386,7 @@ jasmineRequire.ResultsStateBuilder = function(j$) { if (result.status === 'failed') { this.failureCount++; + this.anyNonTopSuiteFailures = true; } if (result.status == 'pending') { diff --git a/src/html/FailuresView.js b/src/html/FailuresView.js index e4bb9246..136d1248 100644 --- a/src/html/FailuresView.js +++ b/src/html/FailuresView.js @@ -22,11 +22,6 @@ jasmineRequire.FailuresView = function(j$) { this.#failureEls.push(this.#makeFailureEl(result, parent)); } - // TODO move this to state builder or something - any() { - return this.#failureEls.length > 0; - } - show() { const failureNode = this.rootEl.querySelector('.jasmine-failures'); diff --git a/src/html/HtmlReporter.js b/src/html/HtmlReporter.js index d95f045d..ff875425 100644 --- a/src/html/HtmlReporter.js +++ b/src/html/HtmlReporter.js @@ -140,7 +140,7 @@ jasmineRequire.HtmlReporter = function(j$) { summary.addResults(this.#stateBuilder.topResults); results.appendChild(summary.rootEl); - if (this.#failures.any()) { + if (this.#stateBuilder.anyNonTopSuiteFailures) { this.#alerts.addFailureToggle( () => this.#setMenuModeTo('jasmine-failure-list'), () => this.#setMenuModeTo('jasmine-spec-list') diff --git a/src/html/HtmlReporterV2.js b/src/html/HtmlReporterV2.js index 0a4e1a4f..e8048537 100644 --- a/src/html/HtmlReporterV2.js +++ b/src/html/HtmlReporterV2.js @@ -145,7 +145,7 @@ jasmineRequire.HtmlReporterV2 = function(j$) { summary.addResults(this.#stateBuilder.topResults); results.appendChild(summary.rootEl); - if (this.#failures.any()) { + if (this.#stateBuilder.anyNonTopSuiteFailures) { this.#alerts.addFailureToggle( () => this.#setMenuModeTo('jasmine-failure-list'), () => this.#setMenuModeTo('jasmine-spec-list') diff --git a/src/html/ResultsStateBuilder.js b/src/html/ResultsStateBuilder.js index a5cc0f76..0613152a 100644 --- a/src/html/ResultsStateBuilder.js +++ b/src/html/ResultsStateBuilder.js @@ -9,6 +9,7 @@ jasmineRequire.ResultsStateBuilder = function(j$) { this.totalSpecsDefined = 0; this.specsExecuted = 0; this.failureCount = 0; + this.anyNonTopSuiteFailures = false; this.pendingSpecCount = 0; this.deprecationWarnings = []; } @@ -29,6 +30,7 @@ jasmineRequire.ResultsStateBuilder = function(j$) { if (result.status === 'failed') { this.failureCount++; + this.anyNonTopSuiteFailures = true; } } @@ -42,6 +44,7 @@ jasmineRequire.ResultsStateBuilder = function(j$) { if (result.status === 'failed') { this.failureCount++; + this.anyNonTopSuiteFailures = true; } if (result.status == 'pending') {