v3.22.0 (fix): an expanded run log stays open across the live report polls

The report view re-renders the member blocks on every poll while a suite runs
(innerHTML replacement), so an expanded Run log collapsed within 500 ms.  The
<details> now carries the stable member index (data-member) and
testRenderReport carries the open state across the re-render; the log content
keeps updating in place.

- frontend/tests/testsuites.test.js: the wiring pin (data-member emitted, the
  open state read and restored).
- sw cache simple-v400 (index.html changed); style.css rebuilt.

Tests: 837 frontend + 795 Python.
This commit is contained in:
2026-10-06 00:50:24 +03:00
parent 22a0a58f27
commit bcd9fb9a4c
4 changed files with 90 additions and 8 deletions
+48 -4
View File
@@ -620,6 +620,10 @@ video {
visibility: visible;
}
.collapse {
visibility: collapse;
}
.static {
position: static;
}
@@ -976,12 +980,12 @@ video {
min-width: 0px;
}
.min-w-\[14rem\] {
min-width: 14rem;
.min-w-\[12rem\] {
min-width: 12rem;
}
.min-w-\[16rem\] {
min-width: 16rem;
.min-w-\[14rem\] {
min-width: 14rem;
}
.min-w-\[180px\] {
@@ -1357,6 +1361,11 @@ video {
border-top-color: transparent;
}
.bg-amber-100 {
--tw-bg-opacity: 1;
background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
.bg-amber-50 {
--tw-bg-opacity: 1;
background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
@@ -1439,6 +1448,11 @@ video {
background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));
}
.bg-purple-100 {
--tw-bg-opacity: 1;
background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));
}
.bg-red-100 {
--tw-bg-opacity: 1;
background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
@@ -1571,6 +1585,10 @@ video {
padding-bottom: 0.25rem;
}
.pb-1\.5 {
padding-bottom: 0.375rem;
}
.pb-3 {
padding-bottom: 0.75rem;
}
@@ -1591,6 +1609,10 @@ video {
padding-left: 1.5rem;
}
.pl-7 {
padding-left: 1.75rem;
}
.pr-2 {
padding-right: 0.5rem;
}
@@ -1784,6 +1806,11 @@ video {
color: rgb(147 51 234 / var(--tw-text-opacity, 1));
}
.text-purple-700 {
--tw-text-opacity: 1;
color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}
.text-red-400 {
--tw-text-opacity: 1;
color: rgb(248 113 113 / var(--tw-text-opacity, 1));
@@ -2028,6 +2055,10 @@ video {
background-color: rgb(120 53 15 / 0.2);
}
.dark\:bg-amber-900\/40:is(.dark *) {
background-color: rgb(120 53 15 / 0.4);
}
.dark\:bg-blue-500:is(.dark *) {
--tw-bg-opacity: 1;
background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
@@ -2049,6 +2080,10 @@ video {
background-color: rgb(6 78 59 / 0.4);
}
.dark\:bg-purple-900\/40:is(.dark *) {
background-color: rgb(88 28 135 / 0.4);
}
.dark\:bg-red-900\/30:is(.dark *) {
background-color: rgb(127 29 29 / 0.3);
}
@@ -2067,6 +2102,10 @@ video {
background-color: rgb(30 41 59 / 0.4);
}
.dark\:bg-slate-800\/50:is(.dark *) {
background-color: rgb(30 41 59 / 0.5);
}
.dark\:bg-slate-800\/60:is(.dark *) {
background-color: rgb(30 41 59 / 0.6);
}
@@ -2126,6 +2165,11 @@ video {
color: rgb(129 140 248 / var(--tw-text-opacity, 1));
}
.dark\:text-purple-300:is(.dark *) {
--tw-text-opacity: 1;
color: rgb(216 180 254 / var(--tw-text-opacity, 1));
}
.dark\:text-purple-400:is(.dark *) {
--tw-text-opacity: 1;
color: rgb(192 132 252 / var(--tw-text-opacity, 1));