From 76cb9c2a39d477a64824a985ade40507e3bbade1 Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Fri, 13 Feb 2026 21:34:48 -0800 Subject: feat(vanilla): add testing infrastructure and tests (NK-wjnczv) --- .../istanbul-reports/lib/html-spa/src/routing.js | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 vanilla/node_modules/istanbul-reports/lib/html-spa/src/routing.js (limited to 'vanilla/node_modules/istanbul-reports/lib/html-spa/src/routing.js') diff --git a/vanilla/node_modules/istanbul-reports/lib/html-spa/src/routing.js b/vanilla/node_modules/istanbul-reports/lib/html-spa/src/routing.js new file mode 100644 index 0000000..a4d0bc7 --- /dev/null +++ b/vanilla/node_modules/istanbul-reports/lib/html-spa/src/routing.js @@ -0,0 +1,52 @@ +exports.setLocation = function setLocation( + isReplace, + activeSort, + isFlat, + activeFilters, + fileFilter, + expandedLines +) { + const params = [ + activeSort.sortKey, + activeSort.order, + isFlat, + activeFilters.low, + activeFilters.medium, + activeFilters.high, + encodeURIComponent(fileFilter), + expandedLines.map(encodeURIComponent).join(',') + ]; + const newUrl = `#${params.join('/')}`; + + if (newUrl === location.hash) { + return; + } + + window.history[isReplace ? 'replaceState' : 'pushState'](null, '', newUrl); +}; + +exports.decodeLocation = function decodeLocation() { + const items = location.hash.substr(1).split('/'); + if (items.length !== 8) { + return null; + } + + try { + return { + activeSort: { + sortKey: items[0], + order: items[1] + }, + isFlat: JSON.parse(items[2]), + activeFilters: { + low: JSON.parse(items[3]), + medium: JSON.parse(items[4]), + high: JSON.parse(items[5]) + }, + fileFilter: decodeURIComponent(items[6]), + expandedLines: items[7].split(',').map(decodeURIComponent) + }; + } catch (e) { + return null; + } +}; -- cgit v1.2.3