Repository navigation
Fixes 36392: Keep test result lines drawn in Safari and stop histogram bars overlapping - #36394
Conversation
…rs overlapping The test case result chart lost its line (and the area wash) in Safari after hovering a run, clicking one, or moving through runs with the keyboard. On hover ECharts animated every dot and line and moved the hovered series to the front; when the chart re-rendered in that state, zrender re-pointed its clipped groups at other clip paths and Safari kept drawing them with an empty clip. The chart's own hover state is now off: the tooltip and the selection ring already give the hover feedback, so a pass of the pointer no longer touches the SVG at all. The column data distribution histogram set a fixed 22px bar width, carried over from Recharts' barSize. Recharts shrank bars to fit their slot; ECharts does not, so a histogram with many bins drew bars wider than their slots and they overlapped. It is now a 22px cap.
…ogram to profiler specs The no-hover setting on the dots of aborted and queued runs had no test. The histogram had no Playwright impact mapping, so CI would have run the full suite for it; it now maps to the Data Quality and profiler specs that render it.
✅ PR checks passedThe linked issue has a description and all required Shipping project fields set. Thanks! |
🔄 Playwright impact map auto-refreshedThis PR touched specs or UI source that changed the source→spec routing map. I regenerated What is this file? It is the auto-generated half of Playwright's PR planner. It routes "if source X changes, run specs Y" by walking spec imports and cross-referencing What if I want to regenerate locally instead? Run this before pushing your next change to skip the bot commit: python3 .github/scripts/generate_playwright_impact_map.py
git add .github/playwright/impact-map.generated.json
git commit --amend --no-edit # or a separate commit |
Code Review ✅ Approved🟡 Medium risk · Disabling chart hover emphasis removes dot and line highlighting, which could make result series harder to distinguish; histogram bars now shrink to fit bins. Keeps test result lines drawn in Safari by disabling ECharts hover emphasis on line and dot series, and switches the histogram from VerificationRules No rules evaluated Functional validation Not enabledAuto-approval Not enabledFor more verification details, comment OptionsDisplay: compact → Showing compact verification results. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|
…m bars overlapping (#36394) (#36449) * fix(ui): keep test result lines drawn in Safari and stop histogram bars overlapping The test case result chart lost its line (and the area wash) in Safari after hovering a run, clicking one, or moving through runs with the keyboard. On hover ECharts animated every dot and line and moved the hovered series to the front; when the chart re-rendered in that state, zrender re-pointed its clipped groups at other clip paths and Safari kept drawing them with an empty clip. The chart's own hover state is now off: the tooltip and the selection ring already give the hover feedback, so a pass of the pointer no longer touches the SVG at all. The column data distribution histogram set a fixed 22px bar width, carried over from Recharts' barSize. Recharts shrank bars to fit their slot; ECharts does not, so a histogram with many bins drew bars wider than their slots and they overlapped. It is now a 22px cap. * test(ui): cover the aborted/queued dots' hover state and map the histogram to profiler specs The no-hover setting on the dots of aborted and queued runs had no test. The histogram had no Playwright impact mapping, so CI would have run the full suite for it; it now maps to the Data Quality and profiler specs that render it. * chore(playwright): auto-refresh impact-map.generated.json --------- (cherry picked from commit 83026f9) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>



Describe your changes:
Fixes #36392
Summary
Two chart fixes from the Slack thread on the new Test Case Details page:
<g clip-path>groups at other<clipPath>s while rewriting them, and Safari kept drawing the line with an empty clip. The DOM stays correct, which is why it only shows in Safari.barSize={22}into a fixedbarWidth: 22. Recharts shrank bars to fit their slot; ECharts does not, so a column with ~30 bins drew 22px bars in narrower slots.// TestSummaryGraph.tsx: every line and the aborted/queued dot series seriesOption: { connectNulls: true, - ...(isSingleSeries ? { areaStyle, lineStyle } : { emphasis: { focus: 'series' } }), + emphasis: { disabled: true }, // tooltip + selection ring are the hover feedback + ...(isSingleSeries && { areaStyle, lineStyle }), } // DataDistributionHistogram.component.tsx -seriesOption: { barWidth: 22 }, +seriesOption: { barMaxWidth: 22 },Hovering the chart no longer touches the SVG at all: 7 dots hovered went from ~1,000 SVG mutations (dot scale, line width, colour lift, series re-ordering) to 0. The app's tooltip still opens on hover and on keyboard navigation (verified in Chromium and Safari).
Evidence
Safari, single-series chart (Teddy's data), after hovering the runs and moving the pointer away:
Repeated real-Safari runs (WebDriver), each check samples 19 points along every drawn line and looks for the stroke colour in an element screenshot, across 3 charts (single series, min/max, mixed statuses incl. aborted/queued) × initial / hover / click / keyboard:
Histogram, 32 bins (left:
barWidth, right:barMaxWidth):Merge Danger
Door: two-way. Two series options; revert the commit to restore the old hover look.
Blast Radius: cosmetic. On the test case result chart, dots no longer grow and the other line no longer fades while hovering a min/max chart; tooltip, selection, click and keyboard behaviour are unchanged. Other charts keep their hover state (audited below).
Type of change:
High-level design:
N/A — small bug fix (2 components + tests + one impact-map line).
Tests:
Use cases covered
Unit tests
TestSummaryGraph.test.tsx: every line series and the aborted/queued dot series have no hover state (the dot test fails with the setting removed). Suite: 122/122 passed.DataDistributionHistogram.test.tsx: series usesbarMaxWidth: 22. 5/5 passed.jest --coverage):TestSummaryGraph.tsx98.75% lines,DataDistributionHistogram.component.tsx97.14% lines.Backend integration tests
Ingestion integration tests
Playwright (UI) tests
.github/playwright/impact-map.json(it had no mapping, so CI would have run the full suite).PLAYWRIGHT_TEST_BASE_URL=http://localhost:3000,--project=chromium):Features/DataQuality/TestCaseDetailsPage.spec.ts+Features/DataQuality/Profiler.spec.tswith their setup dependencies — 24 tests, all passed. The other ~65 impact-mapped specs were not run locally; the merge queue runs them.Manual testing performed
docker/development, MySQL + Elasticsearch, sample data) with this branch's UI onyarn start(:3000); Safari 26 driven bysafaridriverand checked by eye.tableRowCountToBeBetweentest case with Teddy's 7 results, a dynamiccolumnValuesToBeBetween(min/max) case, and a mixed Success/Failed/Aborted/Queued case.mainthey vanished.UI screen recording:
Not applicable — bug fix, not a feature. Before/after Safari screenshots are under Evidence.
Checklist:
I have read the CONTRIBUTING document.
My PR title is
Fixes <issue-number>: <short explanation>My PR is linked to a GitHub issue via
Fixes #<issue-number>above.I have commented on my code, particularly in hard-to-understand areas.
For JSON Schema changes: I updated the migration scripts or explained why it is not needed. (N/A — no schema change)
For a UI feature or feature task: as part of PR creation, I ran the PR build in Docker with sample data and embedded a verified GitHub-hosted recording plus build/health evidence above (or explained why this requirement is not applicable).
I have added tests (unit / integration / Playwright as applicable) and listed them above.
Self-review: I reviewed the final diff against
REVIEW.md(thepr-checklistskill runs it) and fixed every 🔴 finding, or answered it on the line below.Reviewed
347e117with a fresh-context reviewer: no 🔴. The first pass (6494e0d) raised two 🟡, both fixed in347e117(test for the aborted/queued dots' hover state; tooltip comment moved back aboveTOOLTIP_OFF). The Playwright run above was on6494e0d;347e117adds only a unit test, a comment move and the impact-map line.Decision check: no durable decision — a bug fix with its reason in code comments.
I have added a test that covers the exact scenario we are fixing. (Unit tests pin the series options; the Safari paint itself was verified with the real-Safari runs above.)


Confidence Score: 5/5
The PR appears safe to merge; no actionable issues were found.Summary
This PR disables ECharts hover styling on test-result lines and status dots, and lets histogram bars shrink below 22 pixels.
Reviews (2) · Last reviewed commit: "Merge branch 'main' into ShaileshParmar1..." · Reviewed by Greptile