From 8003b1da7adbb79ab9ba5a6752a66e6e6b1d3cc4 Mon Sep 17 00:00:00 2001 From: Eric Olkowski Date: Wed, 21 Jun 2023 15:20:19 -0400 Subject: [PATCH 1/9] chore(Tooltip): updated unit tests --- .../__tests__/Generated/TooltipArrow.test.tsx | 13 --- .../Generated/TooltipContent.test.tsx | 15 --- .../__snapshots__/TooltipArrow.test.tsx.snap | 9 -- .../TooltipContent.test.tsx.snap | 13 --- .../Tooltip/__tests__/Tooltip.test.tsx | 105 +++++++++++------- .../Tooltip/__tests__/TooltipArrow.test.tsx | 28 +++++ .../Tooltip/__tests__/TooltipContent.test.tsx | 40 +++++++ .../__snapshots__/Tooltip.test.tsx.snap | 17 --- .../__snapshots__/TooltipArrow.test.tsx.snap | 10 ++ .../TooltipContent.test.tsx.snap | 11 ++ 10 files changed, 154 insertions(+), 107 deletions(-) delete mode 100644 packages/react-core/src/components/Tooltip/__tests__/Generated/TooltipArrow.test.tsx delete mode 100644 packages/react-core/src/components/Tooltip/__tests__/Generated/TooltipContent.test.tsx delete mode 100644 packages/react-core/src/components/Tooltip/__tests__/Generated/__snapshots__/TooltipArrow.test.tsx.snap delete mode 100644 packages/react-core/src/components/Tooltip/__tests__/Generated/__snapshots__/TooltipContent.test.tsx.snap create mode 100644 packages/react-core/src/components/Tooltip/__tests__/TooltipArrow.test.tsx create mode 100644 packages/react-core/src/components/Tooltip/__tests__/TooltipContent.test.tsx delete mode 100644 packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap create mode 100644 packages/react-core/src/components/Tooltip/__tests__/__snapshots__/TooltipArrow.test.tsx.snap create mode 100644 packages/react-core/src/components/Tooltip/__tests__/__snapshots__/TooltipContent.test.tsx.snap diff --git a/packages/react-core/src/components/Tooltip/__tests__/Generated/TooltipArrow.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/Generated/TooltipArrow.test.tsx deleted file mode 100644 index f287f2e83a6..00000000000 --- a/packages/react-core/src/components/Tooltip/__tests__/Generated/TooltipArrow.test.tsx +++ /dev/null @@ -1,13 +0,0 @@ -/** - * This test was generated - */ -import * as React from 'react'; -import { render } from '@testing-library/react'; -import { TooltipArrow } from '../../TooltipArrow'; -// any missing imports can usually be resolved by adding them here -import {} from '../..'; - -it('TooltipArrow should match snapshot (auto-generated)', () => { - const { asFragment } = render(); - expect(asFragment()).toMatchSnapshot(); -}); diff --git a/packages/react-core/src/components/Tooltip/__tests__/Generated/TooltipContent.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/Generated/TooltipContent.test.tsx deleted file mode 100644 index 7eb9dee9bc8..00000000000 --- a/packages/react-core/src/components/Tooltip/__tests__/Generated/TooltipContent.test.tsx +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This test was generated - */ -import * as React from 'react'; -import { render } from '@testing-library/react'; -import { TooltipContent } from '../../TooltipContent'; -// any missing imports can usually be resolved by adding them here -import {} from '../..'; - -it('TooltipContent should match snapshot (auto-generated)', () => { - const { asFragment } = render( - ReactNode} isLeftAligned={true} /> - ); - expect(asFragment()).toMatchSnapshot(); -}); diff --git a/packages/react-core/src/components/Tooltip/__tests__/Generated/__snapshots__/TooltipArrow.test.tsx.snap b/packages/react-core/src/components/Tooltip/__tests__/Generated/__snapshots__/TooltipArrow.test.tsx.snap deleted file mode 100644 index be054814faa..00000000000 --- a/packages/react-core/src/components/Tooltip/__tests__/Generated/__snapshots__/TooltipArrow.test.tsx.snap +++ /dev/null @@ -1,9 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`TooltipArrow should match snapshot (auto-generated) 1`] = ` - -
- -`; diff --git a/packages/react-core/src/components/Tooltip/__tests__/Generated/__snapshots__/TooltipContent.test.tsx.snap b/packages/react-core/src/components/Tooltip/__tests__/Generated/__snapshots__/TooltipContent.test.tsx.snap deleted file mode 100644 index f4aa189e4f9..00000000000 --- a/packages/react-core/src/components/Tooltip/__tests__/Generated/__snapshots__/TooltipContent.test.tsx.snap +++ /dev/null @@ -1,13 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`TooltipContent should match snapshot (auto-generated) 1`] = ` - -
-
- ReactNode -
-
-
-`; diff --git a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx index 5b8ff267fe1..b325cb6b1b0 100644 --- a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx +++ b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx @@ -1,43 +1,68 @@ -import * as React from 'react'; -import { render } from '@testing-library/react'; +import React from 'react'; +import { render, screen } from '@testing-library/react'; import { Tooltip } from '../Tooltip'; -test('tooltip renders', () => { - const ref = React.createRef(); - const { asFragment } = render( - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id feugiat augue, nec fringilla turpis. -
- } - > -
Toggle tooltip
- - ); - expect(asFragment()).toMatchSnapshot(); -}); - -test('tooltip renders in strict mode', () => { - const consoleError = jest.spyOn(console, 'error'); - const ref = React.createRef(); - const { asFragment } = render( - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id feugiat augue, nec fringilla turpis. - - } - > -
Toggle tooltip
-
-
- ); - expect(consoleError).not.toHaveBeenCalled(); - expect(asFragment()).toMatchSnapshot(); +test('Does not render by default', () => { + render(); + + expect(screen.queryByText('Test content')).not.toBeInTheDocument(); +}); + +// Need to pass isVisible and make test callbacks async in order to render tooltip + +test('Renders with content', async () => { + render(); + + const tooltip = await screen.findByText('Test content'); + expect(tooltip.parentElement).toBeVisible(); +}); + +test('Renders with class name pf-v5-c-tooltip by default', async () => { + render(); + + const tooltip = await screen.findByText('Test content'); + expect(tooltip.parentElement).toHaveClass('pf-v5-c-tooltip'); +}); + +test('Renders with custom class names provided via prop', async () => { + render(); + + const tooltip = await screen.findByText('Test content'); + expect(tooltip.parentElement).toHaveClass('test-class'); +}); + +test('Renders with role of tooltip', async () => { + render(); + + const tooltip = await screen.findByText('Test content'); + expect(tooltip.parentElement).toHaveAttribute('role', 'tooltip'); +}); + +test('Renders with aria-live of off by default when triggerRef is not passed', async () => { + render(); + + const tooltip = await screen.findByText('Test content'); + expect(tooltip.parentElement).toHaveAttribute('aria-live', 'off'); +}); + +test('Renders with aria-live of polite by default when triggerRef is passed', async () => { + const triggerRef = React.createRef(); + render(); + + const tooltip = await screen.findByText('Test content'); + expect(tooltip.parentElement).toHaveAttribute('aria-live', 'polite'); +}); + +test('Renders with value passed to aria-live prop', async () => { + render(); + + const tooltip = await screen.findByText('Test content'); + expect(tooltip.parentElement).toHaveAttribute('aria-live', 'polite'); +}); + +test('Renders with value passed to id prop', async () => { + render(); + + const tooltip = await screen.findByText('Test content'); + expect(tooltip.parentElement).toHaveAttribute('id', 'custom-id'); }); diff --git a/packages/react-core/src/components/Tooltip/__tests__/TooltipArrow.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/TooltipArrow.test.tsx new file mode 100644 index 00000000000..9a47409bcbe --- /dev/null +++ b/packages/react-core/src/components/Tooltip/__tests__/TooltipArrow.test.tsx @@ -0,0 +1,28 @@ +import React from 'react'; + +import { render, screen } from '@testing-library/react'; + +import { TooltipArrow } from '../TooltipArrow'; + +test('Renders without children', () => { + render(); + + expect(screen.getByTestId('tooltipArrow')).toBeVisible(); +}); + +test('Renders with class name pf-v5-c-tooltip__arrow by default', () => { + render(); + + expect(screen.getByTestId('tooltipArrow')).toHaveClass('pf-v5-c-tooltip__arrow'); +}); + +test('Renders with custom class names provided via prop', () => { + render(); + + expect(screen.getByTestId('tooltipArrow')).toHaveClass('test-class'); +}); + +test('Matches the snapshot', () => { + const { asFragment } = render(); + expect(asFragment()).toMatchSnapshot(); +}); diff --git a/packages/react-core/src/components/Tooltip/__tests__/TooltipContent.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/TooltipContent.test.tsx new file mode 100644 index 00000000000..3bf0596109e --- /dev/null +++ b/packages/react-core/src/components/Tooltip/__tests__/TooltipContent.test.tsx @@ -0,0 +1,40 @@ +import React from 'react'; + +import { render, screen } from '@testing-library/react'; + +import { TooltipContent } from '../TooltipContent'; + +test('Renders with children', () => { + render(Test content); + + expect(screen.getByText('Test content')).toBeVisible(); +}); + +test('Renders with class name pf-v5-c-tooltip__content by default', () => { + render(Test content); + + expect(screen.getByText('Test content')).toHaveClass('pf-v5-c-tooltip__content'); +}); + +test('Renders with custom class names provided via prop', () => { + render(Test content); + + expect(screen.getByText('Test content')).toHaveClass('test-class'); +}); + +test('Does not render with class pf-m-text-align-left when isLeftAligned is not passed', () => { + render(Test content); + + expect(screen.getByText('Test content')).not.toHaveClass('pf-m-text-align-left'); +}); + +test('Renders with class pf-m-text-align-left when isLeftAligned is passed', () => { + render(Test content); + + expect(screen.getByText('Test content')).toHaveClass('pf-m-text-align-left'); +}); + +test('Matches the snapshot', () => { + const { asFragment } = render(Test content); + expect(asFragment()).toMatchSnapshot(); +}); diff --git a/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap deleted file mode 100644 index 14c149bf298..00000000000 --- a/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +++ /dev/null @@ -1,17 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`tooltip renders 1`] = ` - -
- Toggle tooltip -
-
-`; - -exports[`tooltip renders in strict mode 1`] = ` - -
- Toggle tooltip -
-
-`; diff --git a/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/TooltipArrow.test.tsx.snap b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/TooltipArrow.test.tsx.snap new file mode 100644 index 00000000000..91ea39d2799 --- /dev/null +++ b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/TooltipArrow.test.tsx.snap @@ -0,0 +1,10 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Matches the snapshot 1`] = ` + +
+ +`; diff --git a/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/TooltipContent.test.tsx.snap b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/TooltipContent.test.tsx.snap new file mode 100644 index 00000000000..a2be96e7d46 --- /dev/null +++ b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/TooltipContent.test.tsx.snap @@ -0,0 +1,11 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Matches the snapshot 1`] = ` + +
+ Test content +
+
+`; From 3b6befdf54425dd1184b86c7724208cfbc8e9075 Mon Sep 17 00:00:00 2001 From: Eric Olkowski Date: Thu, 22 Jun 2023 11:39:37 -0400 Subject: [PATCH 2/9] Updated mock and tests --- .../Dropdown/__tests__/Dropdown.test.tsx | 8 +- .../__snapshots__/Dropdown.test.tsx.snap | 26 ++++- .../Tooltip/__tests__/Tooltip.test.tsx | 100 +++++++++++++----- .../__snapshots__/Tooltip.test.tsx.snap | 20 ++++ .../src/helpers/Popper/__mocks__/Popper.tsx | 25 ++++- 5 files changed, 147 insertions(+), 32 deletions(-) create mode 100644 packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap diff --git a/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx b/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx index 3c21de56481..47603b9765b 100644 --- a/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx +++ b/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx @@ -22,7 +22,11 @@ test('renders dropdown', () => { }); test('passes children', () => { - render( toggle(toggleRef)}>{dropdownChildren}); + render( + toggle(toggleRef)}> + {dropdownChildren} + + ); expect(screen.getByText('Dropdown children')).toBeVisible(); }); @@ -134,7 +138,7 @@ test('passes onSelect callback', async () => { const onSelect = jest.fn(); render( - toggle(toggleRef)}> + toggle(toggleRef)}> {dropdownChildren} ); diff --git a/packages/react-core/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap b/packages/react-core/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap index 902d054c70b..259673f09bf 100644 --- a/packages/react-core/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +++ b/packages/react-core/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap @@ -2,7 +2,9 @@ exports[`match snapshot 1`] = ` -
+
isOpen: true

-
+

+ enableFlip: undefined +

+

+ placement: undefined +

+

+ appendTo: undefined +

+

+ distance: undefined +

+

+ flipBehavior: undefined +

+

+ minWidth: undefined +

+
diff --git a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx index b325cb6b1b0..9cb794f7d70 100644 --- a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx +++ b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx @@ -1,68 +1,118 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import { Tooltip } from '../Tooltip'; +jest.mock('../../../helpers/Popper/Popper'); + test('Does not render by default', () => { render(); - expect(screen.queryByText('Test content')).not.toBeInTheDocument(); + expect(screen.queryByRole('tooltip')).not.toBeInTheDocument(); }); -// Need to pass isVisible and make test callbacks async in order to render tooltip - -test('Renders with content', async () => { +test('Renders when isVisible is true', async () => { render(); - const tooltip = await screen.findByText('Test content'); - expect(tooltip.parentElement).toBeVisible(); + const tooltip = await screen.findByRole('tooltip'); + expect(tooltip).toBeVisible(); }); test('Renders with class name pf-v5-c-tooltip by default', async () => { render(); - const tooltip = await screen.findByText('Test content'); - expect(tooltip.parentElement).toHaveClass('pf-v5-c-tooltip'); + const tooltip = await screen.findByRole('tooltip'); + expect(tooltip).toHaveClass('pf-v5-c-tooltip'); }); test('Renders with custom class names provided via prop', async () => { render(); - const tooltip = await screen.findByText('Test content'); - expect(tooltip.parentElement).toHaveClass('test-class'); -}); - -test('Renders with role of tooltip', async () => { - render(); - - const tooltip = await screen.findByText('Test content'); - expect(tooltip.parentElement).toHaveAttribute('role', 'tooltip'); + const tooltip = await screen.findByRole('tooltip'); + expect(tooltip).toHaveClass('test-class'); }); test('Renders with aria-live of off by default when triggerRef is not passed', async () => { render(); - const tooltip = await screen.findByText('Test content'); - expect(tooltip.parentElement).toHaveAttribute('aria-live', 'off'); + const tooltip = await screen.findByRole('tooltip'); + expect(tooltip).toHaveAttribute('aria-live', 'off'); }); test('Renders with aria-live of polite by default when triggerRef is passed', async () => { const triggerRef = React.createRef(); render(); - const tooltip = await screen.findByText('Test content'); - expect(tooltip.parentElement).toHaveAttribute('aria-live', 'polite'); + const tooltip = await screen.findByRole('tooltip'); + expect(tooltip).toHaveAttribute('aria-live', 'polite'); }); test('Renders with value passed to aria-live prop', async () => { render(); - const tooltip = await screen.findByText('Test content'); - expect(tooltip.parentElement).toHaveAttribute('aria-live', 'polite'); + const tooltip = await screen.findByRole('tooltip'); + expect(tooltip).toHaveAttribute('aria-live', 'polite'); }); test('Renders with value passed to id prop', async () => { render(); - const tooltip = await screen.findByText('Test content'); - expect(tooltip.parentElement).toHaveAttribute('id', 'custom-id'); + const tooltip = await screen.findByRole('tooltip'); + expect(tooltip).toHaveAttribute('id', 'custom-id'); +}); + +test('Passes zIndex to Popper', async () => { + render(); + + const contentPassedToPopper = await screen.findByText('zIndex: 10'); + expect(contentPassedToPopper).toBeVisible(); +}); + +test('Passes enableFlip to Popper', async () => { + render(); + + const contentPassedToPopper = await screen.findByText('enableFlip: true'); + expect(contentPassedToPopper).toBeVisible(); +}); + +test('Passes position as placement to Popper', async () => { + render(); + + const contentPassedToPopper = await screen.findByText('placement: left-start'); + expect(contentPassedToPopper).toBeVisible(); +}); + +test('Passes appendTo to Popper', async () => { + render( document.body} content="Test content" />); + + const contentPassedToPopper = await screen.findByText('appendTo: () => document.body'); + expect(contentPassedToPopper).toBeVisible(); +}); + +test('Passes distance to Popper', async () => { + render(); + + const contentPassedToPopper = await screen.findByText('distance: 5'); + expect(contentPassedToPopper).toBeVisible(); +}); + +test('Passes flipBehavior to Popper', async () => { + render(); + + const contentPassedToPopper = await screen.findByText('flipBehavior: flip'); + expect(contentPassedToPopper).toBeVisible(); +}); + +test('Passes minWidth to Popper', async () => { + render(); + + const contentPassedToPopper = await screen.findByText('minWidth: 100px'); + expect(contentPassedToPopper).toBeVisible(); +}); + +test('Matches snapshot', async () => { + render(); + + const tooltip = await screen.findByRole('tooltip'); + expect(tooltip).toMatchSnapshot(); }); diff --git a/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap new file mode 100644 index 00000000000..df5260b54e3 --- /dev/null +++ b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap @@ -0,0 +1,20 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Matches snapshot 1`] = ` + +
+ Tooltip content with click trigger
}> + +
+
+
+ Tooltip content with custom delay
} + > + + +
+
+ Tooltip content with animationDuration
} + > + + +
); } From a5fb86dd0ce328577192c46fb350a89d1bc4f1a2 Mon Sep 17 00:00:00 2001 From: Eric Olkowski Date: Thu, 6 Jul 2023 14:17:27 -0400 Subject: [PATCH 5/9] Removed unused imports --- .../src/components/Tooltip/__tests__/Tooltip.test.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx index e89ab829bd3..995488fff0c 100644 --- a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx +++ b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx @@ -1,8 +1,7 @@ import React from 'react'; -import { render, screen, waitForElementToBeRemoved } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import { Tooltip } from '../Tooltip'; import userEvent from '@testing-library/user-event'; -import { act } from 'react-dom/test-utils'; import styles from '@patternfly/react-styles/css/components/Tooltip/tooltip'; jest.mock('../../../helpers/Popper/Popper'); From 1abb497f2359e096d042c2a86a0ab58b8353ad45 Mon Sep 17 00:00:00 2001 From: Eric Olkowski Date: Thu, 6 Jul 2023 14:44:47 -0400 Subject: [PATCH 6/9] Updated remaining tests using Popper mock --- .../Dropdown/__tests__/Dropdown.test.tsx | 4 +- .../__snapshots__/Dropdown.test.tsx.snap | 82 +++++++++---------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx b/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx index 47603b9765b..c01022d93cb 100644 --- a/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx +++ b/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx @@ -116,7 +116,7 @@ test('passes zIndex to popper', () => { test('does not pass isOpen to popper by default', () => { render( toggle(toggleRef)}>{dropdownChildren}); - expect(screen.getByText('isOpen: undefined')).toBeVisible(); + expect(screen.getByText('isVisible: undefined')).toBeVisible(); }); test('passes isOpen to popper', () => { @@ -126,7 +126,7 @@ test('passes isOpen to popper', () => { ); - expect(screen.getByText('isOpen: true')).toBeVisible(); + expect(screen.getByText('isVisible: true')).toBeVisible(); }); /* no default tests for callback props diff --git a/packages/react-core/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap b/packages/react-core/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap index 259673f09bf..c2da5ee3693 100644 --- a/packages/react-core/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +++ b/packages/react-core/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap @@ -3,61 +3,61 @@ exports[`match snapshot 1`] = `
-
+
- Dropdown children +
+ Dropdown children +
-
-
- Mock item +
+ Mock item +
+

+ isPlain: true +

+

+ isScrollable: true +

+

+ minWidth: undefined +

- isPlain: true + zIndex: 9999

- isScrollable: true + isVisible: true +

+

+ enableFlip: undefined +

+

+ placement: undefined +

+

+ appendTo: undefined +

+

+ distance: undefined +

+

+ flipBehavior: undefined

minWidth: undefined

-
-

- zIndex: 9999 -

-

- isOpen: true -

-

- enableFlip: undefined -

-

- placement: undefined -

-

- appendTo: undefined -

-

- distance: undefined -

-

- flipBehavior: undefined -

-

- minWidth: undefined -

-
From cd34c1d8b21726906f5b9565e05c266fe6ce6c6f Mon Sep 17 00:00:00 2001 From: Eric Olkowski Date: Thu, 6 Jul 2023 15:04:22 -0400 Subject: [PATCH 7/9] Removed extraenous snapshot test --- .../Tooltip/__tests__/Tooltip.test.tsx | 13 +--- .../__snapshots__/Tooltip.test.tsx.snap | 63 +------------------ 2 files changed, 2 insertions(+), 74 deletions(-) diff --git a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx index 995488fff0c..27be2d30201 100644 --- a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx +++ b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx @@ -201,18 +201,7 @@ test('Passes minWidth to Popper', async () => { expect(contentPassedToPopper).toBeVisible(); }); -test('Matches snapshot with Popper mock', async () => { - render( - - - - ); - - await screen.findByRole('tooltip'); - expect(screen.getByTestId('mock-wrapper')).toMatchSnapshot(); -}); - -test('Matches snapshot with Tooltip only', async () => { +test('Matches snapshot', async () => { render( diff --git a/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap index e6f31ae4a40..ff3491e7aef 100644 --- a/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +++ b/packages/react-core/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap @@ -1,67 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Matches snapshot with Popper mock 1`] = ` -
-
- -

- zIndex: 9999 -

-

- isVisible: true -

-

- enableFlip: true -

-

- placement: top -

-

- appendTo: () => { - /* istanbul ignore next */ - cov_1bpyalqf4w().f[1]++; - cov_1bpyalqf4w().s[2]++; - return document.body; - } -

-

- distance: 15 -

-

- flipBehavior: top,right,bottom,left,top,right,bottom -

-

- minWidth: revert -

- -
-`; - -exports[`Matches snapshot with Tooltip only 1`] = ` +exports[`Matches snapshot 1`] = `
Date: Fri, 7 Jul 2023 08:07:33 -0400 Subject: [PATCH 8/9] Removed test --- .../Tooltip/__tests__/Tooltip.test.tsx | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx index 27be2d30201..7cb569e8cbc 100644 --- a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx +++ b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx @@ -90,30 +90,6 @@ test('Renders without aria-labelledby or aria-describedby on trigger when aria=" expect(screen.getByRole('button')).not.toHaveAccessibleDescription('Test content'); }); -test('Does not call onTooltipHidden when not passed', async () => { - const onTooltipHiddenMock = jest.fn(); - const user = userEvent.setup(); - - const TooltipCallback = () => { - const [isVisible, setIsVisible] = React.useState(false); - - return ( - - - - ); - }; - render(); - - await user.click(screen.getByRole('button')); - await screen.findByRole('tooltip'); - expect(onTooltipHiddenMock).not.toHaveBeenCalled(); - - await user.click(screen.getByRole('button')); - await screen.findByText('isVisible: false'); - expect(onTooltipHiddenMock).not.toHaveBeenCalled(); -}); - test('Calls onTooltipHidden when passed', async () => { const onTooltipHiddenMock = jest.fn(); const user = userEvent.setup(); From 2513d1459d6ff4db21297ac4d45843ef0683f611 Mon Sep 17 00:00:00 2001 From: Eric Olkowski Date: Fri, 7 Jul 2023 10:55:44 -0400 Subject: [PATCH 9/9] Split out onTooltipHidden test --- .../Tooltip/__tests__/Tooltip.test.tsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx index 7cb569e8cbc..d090f6ca5b9 100644 --- a/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx +++ b/packages/react-core/src/components/Tooltip/__tests__/Tooltip.test.tsx @@ -90,7 +90,7 @@ test('Renders without aria-labelledby or aria-describedby on trigger when aria=" expect(screen.getByRole('button')).not.toHaveAccessibleDescription('Test content'); }); -test('Calls onTooltipHidden when passed', async () => { +test('Does not call onTooltipHidden before tooltip is hidden', async () => { const onTooltipHiddenMock = jest.fn(); const user = userEvent.setup(); @@ -108,7 +108,24 @@ test('Calls onTooltipHidden when passed', async () => { await user.click(screen.getByRole('button')); await screen.findByRole('tooltip'); expect(onTooltipHiddenMock).not.toHaveBeenCalled(); +}); + +test('Calls onTooltipHidden when tooltip is hidden', async () => { + const onTooltipHiddenMock = jest.fn(); + const user = userEvent.setup(); + const TooltipCallback = () => { + const [isVisible, setIsVisible] = React.useState(true); + + return ( + + + + ); + }; + render(); + + await screen.findByRole('tooltip'); await user.click(screen.getByRole('button')); await screen.findByText('isVisible: false'); expect(onTooltipHiddenMock).toHaveBeenCalled();