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') {