From 97744090dd642a86d811beaeda6b559228ce667e Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Mon, 5 Jan 2026 15:58:44 -0500 Subject: [PATCH] fix(tooltip): change show/hide behavior to work with embedded contents Signed-off-by: Adam Setch --- .../components/fields/Tooltip.test.tsx | 25 ++++++-- src/renderer/components/fields/Tooltip.tsx | 8 ++- .../__snapshots__/Checkbox.test.tsx.snap | 4 +- .../__snapshots__/FilterSection.test.tsx.snap | 36 +++++------ .../__snapshots__/ReasonFilter.test.tsx.snap | 64 +++++++++---------- .../__snapshots__/StateFilter.test.tsx.snap | 16 ++--- .../SubjectTypeFilter.test.tsx.snap | 4 +- .../UserTypeFilter.test.tsx.snap | 8 +-- .../settings/NotificationSettings.test.tsx | 2 +- .../__snapshots__/Filters.test.tsx.snap | 48 +++++++------- .../__snapshots__/Settings.test.tsx.snap | 38 +++++------ 11 files changed, 135 insertions(+), 118 deletions(-) diff --git a/src/renderer/components/fields/Tooltip.test.tsx b/src/renderer/components/fields/Tooltip.test.tsx index b6b759e8e..b06e5abb0 100644 --- a/src/renderer/components/fields/Tooltip.test.tsx +++ b/src/renderer/components/fields/Tooltip.test.tsx @@ -13,18 +13,33 @@ describe('renderer/components/fields/Tooltip.tsx', () => { it('should render', () => { renderWithAppContext(); - expect(screen.getByTestId('tooltip-test')).toBeInTheDocument(); + expect(screen.getByTestId('tooltip-icon-test')).toBeInTheDocument(); + expect(screen.queryByText(props.tooltip as string)).not.toBeInTheDocument(); + }); + + it('should toggle (show/hide) tooltip on clicking tooltip icon', async () => { + renderWithAppContext(); + + const tooltipIconElement = screen.getByTestId('tooltip-icon-test'); + + await userEvent.click(tooltipIconElement); + expect(screen.queryByText(props.tooltip as string)).toBeInTheDocument(); + + await userEvent.click(tooltipIconElement); + expect(screen.queryByText(props.tooltip as string)).not.toBeInTheDocument(); }); - it('should display on mouse enter / leave', async () => { + it('should hide tooltip contents on leave', async () => { renderWithAppContext(); - const tooltipElement = screen.getByTestId('tooltip-test'); + const tooltipIconElement = screen.getByTestId('tooltip-icon-test'); - await userEvent.hover(tooltipElement); + await userEvent.click(tooltipIconElement); expect(screen.queryByText(props.tooltip as string)).toBeInTheDocument(); - await userEvent.unhover(tooltipElement); + const tooltipContentElement = screen.getByTestId('tooltip-content-test'); + + await userEvent.unhover(tooltipContentElement); expect(screen.queryByText(props.tooltip as string)).not.toBeInTheDocument(); }); }); diff --git a/src/renderer/components/fields/Tooltip.tsx b/src/renderer/components/fields/Tooltip.tsx index 3312dd468..fc6ed15f0 100644 --- a/src/renderer/components/fields/Tooltip.tsx +++ b/src/renderer/components/fields/Tooltip.tsx @@ -21,10 +21,9 @@ export const Tooltip: FC = (props: TooltipProps) => {