Skip to content

Fixes 36392: Keep test result lines drawn in Safari and stop histogram bars overlapping - #36394

Merged
ShaileshParmar11 merged 4 commits into
mainfrom
ShaileshParmar11/collate-conversation-check
Oct 28, 2026
Merged

ShaileshParmar11 merged 4 commits into
mainfrom
ShaileshParmar11/collate-conversation-check

Conversation

@ShaileshParmar11

@ShaileshParmar11 ShaileshParmar11 commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Describe your changes:

Fixes #36392

Summary

Two chart fixes from the Slack thread on the new Test Case Details page:

  1. Safari loses the result-history line. Hovering a run, clicking one, or moving through runs with the keyboard made the line (and the wash under a single-series line) disappear in Safari. ECharts' own hover state 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 <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.
  2. Histogram bars overlap. The Recharts → ECharts move turned barSize={22} into a fixed barWidth: 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:

Before (no fix) After
before after

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:

hover state on  (main)          18 / 36 checks lost a line   (keyboard: 9/9)
hover state off (this PR)        0 / 48 checks, then 0 / 24 on the final build

Histogram, 32 bins (left: barWidth, right: barMaxWidth):

histogram

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:

  • Bug fix

High-level design:

N/A — small bug fix (2 components + tests + one impact-map line).

Tests:

Use cases covered

  • Safari: the result-history line stays drawn after hover, clicking runs, keyboard navigation, and on load, for single-series, min/max and mixed-status (aborted/queued) test cases.
  • The tooltip still opens on hover and keyboard navigation with the chart's hover state off.
  • The column profiler histogram's bars fit their slots when a column has many bins.

Unit tests

  • I added unit tests for the new/changed logic.
  • 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 uses barMaxWidth: 22. 5/5 passed.
  • Coverage (jest --coverage): TestSummaryGraph.tsx 98.75% lines, DataDistributionHistogram.component.tsx 97.14% lines.

Backend integration tests

  • Not applicable (no backend API changes).

Ingestion integration tests

  • Not applicable (no ingestion changes).

Playwright (UI) tests

  • Not applicable for new specs: the change is a series option; the visual Safari behaviour can't be asserted in the Chromium CI project. Added the histogram to the Data Quality/Profiler mapping in .github/playwright/impact-map.json (it had no mapping, so CI would have run the full suite).
  • Ran locally against this branch's UI (PLAYWRIGHT_TEST_BASE_URL=http://localhost:3000, --project=chromium): Features/DataQuality/TestCaseDetailsPage.spec.ts + Features/DataQuality/Profiler.spec.ts with 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

  1. Local stack (docker/development, MySQL + Elasticsearch, sample data) with this branch's UI on yarn start (:3000); Safari 26 driven by safaridriver and checked by eye.
  2. Seeded a dynamic tableRowCountToBeBetween test case with Teddy's 7 results, a dynamic columnValuesToBeBetween (min/max) case, and a mixed Success/Failed/Aborted/Queued case.
  3. On each Results tab: hovered every run, clicked runs, focused the chart and used ←/→/Enter, reloaded — the lines stayed drawn; on main they vanished.
  4. Seeded 7 days of table/column/system profiles (32-bin histogram, cardinality, custom metrics) and audited all 72 test case, profiler, data quality and incident charts in classic and AI mode in Safari vs Chromium: same rendering, and every chart returns to its resting state after hover.
  5. Column profile → Data distribution: bars no longer overlap.

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 (the pr-checklist skill runs it) and fixed every 🔴 finding, or answered it on the line below.
    Reviewed 347e117 with a fresh-context reviewer: no 🔴. The first pass (6494e0d) raised two 🟡, both fixed in 347e117 (test for the aborted/queued dots' hover state; tooltip comment moved back above TOOLTIP_OFF). The Playwright run above was on 6494e0d; 347e117 adds 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.)

RetriggerView in GreptileConfidence 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.

  • Test result lines stay visible while people explore runs.
  • Histogram bars fit their bins when there are many of them.

Reviews (2) · Last reviewed commit: "Merge branch 'main' into ShaileshParmar1..." · Reviewed by Greptile

…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.
Copilot AI balanced review requested due to automatic review settings October 28, 2026 06:08
@ShaileshParmar11
ShaileshParmar11 requested a review from a team as a code owner October 28, 2026 06:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

✅ PR checks passed

The linked issue has a description and all required Shipping project fields set. Thanks!

@ShaileshParmar11 ShaileshParmar11 added UI UI specific issues safe to test Add this label to run secure Github workflows on PRs labels Oct 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔄 Playwright impact map auto-refreshed

This PR touched specs or UI source that changed the source→spec routing map. I regenerated .github/playwright/impact-map.generated.json and pushed the diff to this branch.

- source entries: 994 → 996
- 2 added, 0 removed, 0 changed spec-list

New source→spec entries:
  openmetadata-ui/src/main/resources/ui/src/components/discovery/personal-space/Profile/tabs/applications/AppScheduleEdit.tsx
  openmetadata-ui/src/main/resources/ui/src/components/discovery/personal-space/Profile/tabs/platform-settings/search/FieldValueBoostFields.tsx

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 getByTestId strings. Hand-authored routing in impact-map.json always wins on conflict.

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

Copilot AI balanced review requested due to automatic review settings October 28, 2026 06:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 79%
79.77% (131391/164697) 66.28% (46329/69898) 69.24% (26305/37989)

Copilot AI balanced review requested due to automatic review settings October 28, 2026 07:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@gitar-bot

gitar-bot Bot commented Oct 28, 2026

Copy link
Copy Markdown
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 barWidth to barMaxWidth so bars shrink to fit their slots. No issues found.

Verification

Rules No rules evaluated

Functional validation Not enabled

Set up

Auto-approval Not enabled

Set up

For more verification details, comment gitar display:verbose.

Options

Display: compact → Showing compact verification results.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

@sonarqubecloud

Copy link
Copy Markdown

@ShaileshParmar11
ShaileshParmar11 added this pull request to the merge queue Oct 28, 2026
Merged via the queue into main with commit 83026f9 Oct 28, 2026
84 checks passed
@ShaileshParmar11
ShaileshParmar11 deleted the ShaileshParmar11/collate-conversation-check branch October 28, 2026 11:31
ShaileshParmar11 added a commit that referenced this pull request Oct 28, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test Add this label to run secure Github workflows on PRs UI UI specific issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Test case result chart loses its line in Safari, and profiler histogram bars overlap

3 participants