Clicking a link in the HTML reporter does exact filtering

This feature requires an update to boot1.js, as shown in this commit.
Users with an older boot1.js will get the older inexact filtering.
This commit is contained in:
Steve Gravrock
2025-09-16 21:03:16 -07:00
parent 4ccc7bf3ac
commit 8309416cb2
10 changed files with 231 additions and 52 deletions

View File

@@ -5,11 +5,13 @@ jasmineRequire.HtmlReporter = function(j$) {
this.specsExecuted = 0;
this.failureCount = 0;
this.pendingSpecCount = 0;
this.suitesById = [];
}
ResultsStateBuilder.prototype.suiteStarted = function(result) {
this.currentParent.addChild(result, 'suite');
this.currentParent = this.currentParent.last();
this.suitesById[result.id] = this.currentParent;
};
ResultsStateBuilder.prototype.suiteDone = function(result) {
@@ -682,21 +684,6 @@ jasmineRequire.HtmlReporter = function(j$) {
return wrapper;
}
function suiteHref(suite) {
const els = [];
while (suite && suite.parent) {
els.unshift(suite.result.description);
suite = suite.parent;
}
// include window.location.pathname to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906
return (
(window.location.pathname || '') +
addToExistingQueryString('spec', els.join(' '))
);
}
function addDeprecationWarnings(result, runnableType) {
if (result && result.deprecationWarnings) {
for (let i = 0; i < result.deprecationWarnings.length; i++) {
@@ -794,11 +781,33 @@ jasmineRequire.HtmlReporter = function(j$) {
return '' + count + ' ' + word;
}
function suitePath(suite) {
const els = [];
while (suite && suite.parent) {
els.unshift(suite.result.description);
suite = suite.parent;
}
return els;
}
function suiteHref(suite) {
return pathHref(suitePath(suite));
}
function specHref(result) {
const suite = stateBuilder.suitesById[result.parentSuiteId];
const path = suitePath(suite);
path.push(result.description);
return pathHref(path);
}
function pathHref(path) {
// include window.location.pathname to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906
return (
(window.location.pathname || '') +
addToExistingQueryString('spec', result.fullName)
addToExistingQueryString('spec', JSON.stringify(path))
);
}