From 731b83fd4d8f31cd8193b38edd79e5f5018b9d31 Mon Sep 17 00:00:00 2001 From: Austin Sullivan Date: Wed, 8 Nov 2023 13:58:47 -0500 Subject: [PATCH] chore(eslint): Added React Testing Library linter plugin --- .eslintignore | 1 - .eslintrc.json | 9 ++ package.json | 2 + .../__tests__/AboutModalBox.test.tsx | 6 +- .../__tests__/AccordionItem.test.tsx | 4 +- .../Alert/__tests__/AlertGroup.test.tsx | 2 +- .../BackToTop/__tests__/BackToTop.test.tsx | 3 +- .../src/components/Button/Button.tsx | 2 +- .../Button/__tests__/Button.test.tsx | 1 - .../__tests__/CalendarMonth.test.tsx | 4 +- .../Card/__tests__/CardBody.test.tsx | 2 +- .../Card/__tests__/CardFooter.test.tsx | 2 +- .../Chip/__tests__/ChipGroup.test.tsx | 6 +- .../__tests__/ClipboardCopyToggle.test.tsx | 1 - .../DatePicker/__tests__/DatePicker.test.tsx | 10 +-- .../Divider/__tests__/Divider.test.tsx | 15 +--- .../Drawer/__tests__/Drawer.test.tsx | 12 +-- .../Dropdown/__tests__/Dropdown.test.tsx | 6 +- .../Form/__tests__/FormContext.test.tsx | 89 ++++++++----------- .../Form/__tests__/FormFieldGroup.test.tsx | 2 +- .../Form/__tests__/FormGroup.test.tsx | 1 - .../Form/__tests__/FormHelperText.test.tsx | 1 - .../HelperText/__tests__/HelperText.test.tsx | 4 +- .../components/Icon/__tests__/Icon.test.tsx | 4 +- .../InputGroup/__tests__/InputGroup.test.tsx | 4 +- .../Masthead/__tests__/Masthead.test.tsx | 2 +- .../components/Menu/__tests__/Menu.test.tsx | 5 +- .../MenuToggle/__tests__/MenuToggle.test.tsx | 34 +++---- .../MultipleFileUploadStatus.test.tsx | 2 +- .../MultipleFileUploadStatusItem.test.tsx | 2 +- .../MultipleFileUploadTitle.test.tsx | 2 +- .../MultipleFileUploadTitleIcon.test.tsx | 2 +- .../MultipleFileUploadTitleText.test.tsx | 2 +- ...tipleFileUploadTitleTextSeparator.test.tsx | 2 +- .../src/components/Nav/__tests__/Nav.test.tsx | 28 +++--- .../__tests__/NotificationBadge.test.tsx | 2 +- .../NotificationDrawerGroup.test.tsx | 4 +- .../NotificationDrawerListItem.test.tsx | 4 +- .../NotificationDrawerListItemHeader.test.tsx | 2 +- .../__tests__/NumberInput.test.tsx | 12 +-- .../Pagination/__tests__/Pagination.test.tsx | 6 +- .../components/Panel/__tests__/Panel.test.tsx | 4 +- .../Popover/__tests__/Popover.test.tsx | 2 +- .../Progress/__tests__/Progress.test.tsx | 10 +-- .../__tests__/ProgressStep.test.tsx | 2 +- .../__tests__/SearchInput.test.tsx | 21 ++--- .../__snapshots__/SearchInput.test.tsx.snap | 69 -------------- .../__tests__/SkipToContent.test.tsx | 1 - .../Spinner/__tests__/Spinner.test.tsx | 2 +- .../Switch/__tests__/Switch.test.tsx | 2 +- .../Tabs/__tests__/OverflowTab.test.tsx | 2 +- .../components/Tabs/__tests__/Tabs.test.tsx | 10 +-- .../TextInput/__tests__/TextInput.test.tsx | 10 ++- .../TimePicker/__tests__/TimePicker.test.tsx | 14 +-- .../Toolbar/__tests__/Toolbar.test.tsx | 4 +- .../Toolbar/__tests__/ToolbarGroup.test.tsx | 6 +- .../Toolbar/__tests__/ToolbarItem.test.tsx | 6 +- .../TreeView/__tests__/TreeView.test.tsx | 7 +- .../Wizard/__tests__/WizardToggle.test.tsx | 4 +- .../Wizard/__tests__/utils.test.tsx | 2 +- .../__tests__/ContextSelectorToggle.test.tsx | 8 +- .../__tests__/DropdownToggle.test.tsx | 2 +- .../Select/__tests__/Select.test.tsx | 2 +- .../Wizard/__tests__/Wizard.test.tsx | 6 +- .../GenerateId/__tests__/GenerateId.test.tsx | 2 +- .../src/helpers/OUIA/__mocks__/ouia.ts | 6 ++ .../react-core/src/helpers/__mocks__/index.ts | 2 + .../src/helpers/__tests__/fileUtils.test.ts | 15 ++-- .../src/helpers/__tests__/util.test.ts | 2 +- .../Bullseye/__tests__/Bullseye.test.tsx | 2 +- .../layouts/Grid/__tests__/GridItem.test.tsx | 2 +- .../src/__tests__/createIcon.test.tsx | 8 +- .../Table/utils/transformers.test.tsx | 1 + .../components/Table/__tests__/Table.test.tsx | 13 +-- yarn.lock | 9 +- 75 files changed, 234 insertions(+), 328 deletions(-) create mode 100644 packages/react-core/src/helpers/OUIA/__mocks__/ouia.ts create mode 100644 packages/react-core/src/helpers/__mocks__/index.ts diff --git a/.eslintignore b/.eslintignore index 235d8b73c41..cdfefe2893d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,7 +1,6 @@ # Javascript builds node_modules dist -__tests__ thirdparty tsc_out .out diff --git a/.eslintrc.json b/.eslintrc.json index b78d47c5ef8..3a119092f7d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -127,6 +127,15 @@ "rules": { "patternfly-react/no-anonymous-functions": "off" } + }, + { + "files": ["**/*.test.[jt]s?(x)"], + "extends": ["plugin:testing-library/react"], + "rules": { + "testing-library/no-node-access": "off", + "react/jsx-key": "off", + "no-console": "off" + } } ] } diff --git a/package.json b/package.json index 42c169fbfd8..0267dda06c7 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react": "^7.32.2", + "eslint-plugin-testing-library": "^6.1.0", "fs-extra": "^11.1.1", "glob": "^9.3.0", "husky": "^4.3.0", @@ -85,6 +86,7 @@ "lint:md": "yarn eslint packages --ext md --no-eslintrc --config .eslintrc-md.json --cache", "lint:ts": "yarn lint packages/*/src", "lint:versions": "node scripts/verifyPatternflyVersions.js", + "lint:tests": "yarn lint packages/*/src/components/*/__tests__/*.test.*", "prepare": "ts-patch install -s", "serve:docs": "yarn workspace @patternfly/react-docs serve", "serve:integration": "lerna run serve:demo-app", diff --git a/packages/react-core/src/components/AboutModal/__tests__/AboutModalBox.test.tsx b/packages/react-core/src/components/AboutModal/__tests__/AboutModalBox.test.tsx index 6c1c8b0aaf0..9587eb1a531 100644 --- a/packages/react-core/src/components/AboutModal/__tests__/AboutModalBox.test.tsx +++ b/packages/react-core/src/components/AboutModal/__tests__/AboutModalBox.test.tsx @@ -3,10 +3,6 @@ import { render } from '@testing-library/react'; import { AboutModalBox } from '../AboutModalBox'; test('AboutModalBox Test', () => { - const { asFragment } = render( - - This is a AboutModalBox - - ); + const { asFragment } = render(This is a AboutModalBox); expect(asFragment()).toMatchSnapshot(); }); diff --git a/packages/react-core/src/components/Accordion/__tests__/AccordionItem.test.tsx b/packages/react-core/src/components/Accordion/__tests__/AccordionItem.test.tsx index d2a6c8ff540..ca18a80cf88 100644 --- a/packages/react-core/src/components/Accordion/__tests__/AccordionItem.test.tsx +++ b/packages/react-core/src/components/Accordion/__tests__/AccordionItem.test.tsx @@ -11,8 +11,6 @@ test('Renders children', () => { }); test('Matches the snapshot', () => { - const { asFragment } = render( - Test - ); + const { asFragment } = render(Test); expect(asFragment()).toMatchSnapshot(); }); diff --git a/packages/react-core/src/components/Alert/__tests__/AlertGroup.test.tsx b/packages/react-core/src/components/Alert/__tests__/AlertGroup.test.tsx index a2d6186f28d..09f37026d10 100644 --- a/packages/react-core/src/components/Alert/__tests__/AlertGroup.test.tsx +++ b/packages/react-core/src/components/Alert/__tests__/AlertGroup.test.tsx @@ -19,7 +19,7 @@ test('Alert Group renders without children', () => { }); test('Alert Group works with n children', () => { - const { asFragment } = render( + render( diff --git a/packages/react-core/src/components/BackToTop/__tests__/BackToTop.test.tsx b/packages/react-core/src/components/BackToTop/__tests__/BackToTop.test.tsx index 438bae01e72..61ba74b68c6 100644 --- a/packages/react-core/src/components/BackToTop/__tests__/BackToTop.test.tsx +++ b/packages/react-core/src/components/BackToTop/__tests__/BackToTop.test.tsx @@ -115,10 +115,11 @@ test('Clicking backToTop scrolls back to top of the element passed via scrollabl const user = userEvent.setup(); const wrapper = document.getElementById('backToTopWrapper'); fireEvent.scroll(wrapper as HTMLElement, { target: { scrollY: 401 } }); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion wrapper!.scrollTo = jest.fn(); await user.click(screen.getByRole(`button`).parentElement as Element); - expect(wrapper?.scrollTo).toBeCalledTimes(1); + expect(wrapper?.scrollTo).toHaveBeenCalledTimes(1); }); test('Passes correct text content to button child component', () => { diff --git a/packages/react-core/src/components/Button/Button.tsx b/packages/react-core/src/components/Button/Button.tsx index 53863058344..4f0a834ceb6 100644 --- a/packages/react-core/src/components/Button/Button.tsx +++ b/packages/react-core/src/components/Button/Button.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/Button/button'; import { css } from '@patternfly/react-styles'; import { Spinner, spinnerSize } from '../Spinner'; -import { useOUIAProps, OUIAProps } from '../../helpers'; +import { useOUIAProps, OUIAProps } from '../../helpers/OUIA/ouia'; import { Badge } from '../Badge'; export enum ButtonVariant { diff --git a/packages/react-core/src/components/Button/__tests__/Button.test.tsx b/packages/react-core/src/components/Button/__tests__/Button.test.tsx index cbd758c1c83..a9d57d538f3 100644 --- a/packages/react-core/src/components/Button/__tests__/Button.test.tsx +++ b/packages/react-core/src/components/Button/__tests__/Button.test.tsx @@ -2,7 +2,6 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; -import CartArrowDownIcon from '@patternfly/react-icons/dist/esm/icons/cart-arrow-down-icon'; import { Button, ButtonVariant } from '../Button'; Object.values(ButtonVariant).forEach((variant) => { diff --git a/packages/react-core/src/components/CalendarMonth/__tests__/CalendarMonth.test.tsx b/packages/react-core/src/components/CalendarMonth/__tests__/CalendarMonth.test.tsx index 4b70968618e..f94e4af16a0 100644 --- a/packages/react-core/src/components/CalendarMonth/__tests__/CalendarMonth.test.tsx +++ b/packages/react-core/src/components/CalendarMonth/__tests__/CalendarMonth.test.tsx @@ -57,7 +57,9 @@ test('Next year dates have correct year in aria label', () => { }); test('InlineProps render correct wrapper component and attributes', () => { - render(Title, ariaLabelledby: "hi"}} />); + render( + Title, ariaLabelledby: 'hi' }} /> + ); const article = screen.getByRole('article'); expect(article).toHaveAttribute('aria-labelledby', 'hi'); diff --git a/packages/react-core/src/components/Card/__tests__/CardBody.test.tsx b/packages/react-core/src/components/Card/__tests__/CardBody.test.tsx index b4f77d82415..140f3b25a9e 100644 --- a/packages/react-core/src/components/Card/__tests__/CardBody.test.tsx +++ b/packages/react-core/src/components/Card/__tests__/CardBody.test.tsx @@ -30,7 +30,7 @@ describe('CardBody', () => { test('allows passing in a React Component as the component', () => { const Component = () =>
im a div
; - render(); + render(); expect(screen.getByText('im a div')).toBeInTheDocument(); }); diff --git a/packages/react-core/src/components/Card/__tests__/CardFooter.test.tsx b/packages/react-core/src/components/Card/__tests__/CardFooter.test.tsx index c48d145920c..19c7db7eab2 100644 --- a/packages/react-core/src/components/Card/__tests__/CardFooter.test.tsx +++ b/packages/react-core/src/components/Card/__tests__/CardFooter.test.tsx @@ -27,7 +27,7 @@ describe('CardFooter', () => { test('allows passing in a React Component as the component', () => { const Component = () =>
im a div
; - render(); + render(); expect(screen.getByText('im a div')).toBeInTheDocument(); }); }); diff --git a/packages/react-core/src/components/Chip/__tests__/ChipGroup.test.tsx b/packages/react-core/src/components/Chip/__tests__/ChipGroup.test.tsx index 807944710f1..148f985133e 100644 --- a/packages/react-core/src/components/Chip/__tests__/ChipGroup.test.tsx +++ b/packages/react-core/src/components/Chip/__tests__/ChipGroup.test.tsx @@ -115,7 +115,7 @@ test('chip group with closeBtnAriaLabel', () => { ); expect(screen.getByLabelText('close button aria label')).toBeInTheDocument(); - expect(screen.getByLabelText('close button aria label')).toHaveAccessibleName("close button aria label category"); + expect(screen.getByLabelText('close button aria label')).toHaveAccessibleName('close button aria label category'); }); test('chip group onClick', async () => { @@ -169,8 +169,6 @@ test('chip group expanded', async () => { }); test('overflow chip does not render by default when < 4 children are passed', async () => { - const user = userEvent.setup(); - render( 1 @@ -183,8 +181,6 @@ test('overflow chip does not render by default when < 4 children are passed', as }); test('overflow chip collapsed by default', async () => { - const user = userEvent.setup(); - render( 1 diff --git a/packages/react-core/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx b/packages/react-core/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx index bb6a297c470..49bc2b64c1b 100644 --- a/packages/react-core/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +++ b/packages/react-core/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx @@ -1,7 +1,6 @@ import React from 'react'; import { screen, render } from '@testing-library/react'; import { ClipboardCopyToggle } from '../ClipboardCopyToggle'; -import styles from '@patternfly/react-styles/css/components/ClipboardCopy/clipboard-copy'; import userEvent from '@testing-library/user-event'; const onClickMock = jest.fn(); diff --git a/packages/react-core/src/components/DatePicker/__tests__/DatePicker.test.tsx b/packages/react-core/src/components/DatePicker/__tests__/DatePicker.test.tsx index 7262accc12d..bbb252c064e 100644 --- a/packages/react-core/src/components/DatePicker/__tests__/DatePicker.test.tsx +++ b/packages/react-core/src/components/DatePicker/__tests__/DatePicker.test.tsx @@ -16,13 +16,9 @@ test('disabled date picker', () => { test('Date picker with multiple validators does not show invalid icon on valid input', async () => { const user = userEvent.setup(); - const rangeValidator = (date: Date) => { - return ''; - }; + const rangeValidator = (_date: Date) => ''; - const rangeValidatorB = (date: Date) => { - return ''; - }; + const rangeValidatorB = (_date: Date) => ''; render(); @@ -119,7 +115,7 @@ test('Does not render emptyDateText when requiredDateOptions.isRequired is false await user.click(screen.getByRole('textbox')); await user.click(document.body); - expect(screen.queryByText('Date cannot be blank')).not.toBeInTheDocument; + expect(screen.queryByText('Date cannot be blank')).not.toBeInTheDocument(); }); test('Renders text input as invalid on blur when requiredDateOptions.isRequired is true', async () => { diff --git a/packages/react-core/src/components/Divider/__tests__/Divider.test.tsx b/packages/react-core/src/components/Divider/__tests__/Divider.test.tsx index aa2b7b3e5a9..680e164373b 100644 --- a/packages/react-core/src/components/Divider/__tests__/Divider.test.tsx +++ b/packages/react-core/src/components/Divider/__tests__/Divider.test.tsx @@ -64,19 +64,8 @@ test(`Test all insets`, () => { 'inset2xl', 'inset3xl' ] as ['insetNone', 'insetXs', 'insetSm', 'insetMd', 'insetLg', 'insetXl', 'inset2xl', 'inset3xl']); - - insetValues.forEach((insetValue) => { - - const modifiers = ['none', 'xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl']; - - const classValue = modifiers.forEach((modifier, index) => { - const smClass = `pf-m-inset-${modifier}-on-sm`; - const mdClass = `pf-m-inset-${modifier}-on-md`; - const lgClass = `pf-m-inset-${modifier}-on-lg`; - const xlClass = `pf-m-inset-${modifier}-on-xl`; - const xl2Class = `pf-m-inset-${modifier}-on-2xl`; - }); + insetValues.forEach((insetValue) => { render( { }); const modifiers = ['none', 'xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl']; - const classValue = modifiers.forEach((modifier, index) => { + modifiers.forEach((modifier, index) => { const smClass = `pf-m-inset-${modifier}-on-sm`; const mdClass = `pf-m-inset-${modifier}-on-md`; const lgClass = `pf-m-inset-${modifier}-on-lg`; diff --git a/packages/react-core/src/components/Drawer/__tests__/Drawer.test.tsx b/packages/react-core/src/components/Drawer/__tests__/Drawer.test.tsx index 224572e4088..b174efc01c1 100644 --- a/packages/react-core/src/components/Drawer/__tests__/Drawer.test.tsx +++ b/packages/react-core/src/components/Drawer/__tests__/Drawer.test.tsx @@ -10,7 +10,7 @@ import { DrawerPanelContent } from '../'; import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { KeyTypes } from '../../../helpers'; @@ -134,13 +134,9 @@ test('Resizeable DrawerPanelContent can be wrapped in a context without causing const panelContent = ( - + - - drawer-panel - + drawer-panel @@ -163,4 +159,4 @@ test('Resizeable DrawerPanelContent can be wrapped in a context without causing await user.keyboard(`{${KeyTypes.ArrowLeft}}`); expect(consoleError).not.toHaveBeenCalled(); -}) +}); 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 c01022d93cb..09951f3ee11 100644 --- a/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx +++ b/packages/react-core/src/components/Dropdown/__tests__/Dropdown.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { Dropdown } from '../../Dropdown'; -import { render, screen, waitFor } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; jest.mock('../../Menu'); @@ -176,7 +176,7 @@ test('onOpenChange is called when passed and user presses tab key', async () => ); - //focus dropdown + // focus dropdown const dropdown = screen.getByRole('button', { name: 'Dropdown' }); await user.click(dropdown); await user.keyboard('{Tab}'); @@ -194,7 +194,7 @@ test('onOpenChange is called when passed and user presses esc key', async () => ); - //focus dropdown + // focus dropdown const dropdown = screen.getByRole('button', { name: 'Dropdown' }); await user.click(dropdown); await user.keyboard('{Escape}'); diff --git a/packages/react-core/src/components/Form/__tests__/FormContext.test.tsx b/packages/react-core/src/components/Form/__tests__/FormContext.test.tsx index 61f59fdeb37..647c9320466 100644 --- a/packages/react-core/src/components/Form/__tests__/FormContext.test.tsx +++ b/packages/react-core/src/components/Form/__tests__/FormContext.test.tsx @@ -3,9 +3,8 @@ import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { FormContextConsumer, FormContextProvider } from '../FormContext'; -const customRender = (ui, initialValues?: Record) => { - return render({ui}); -}; +const customRender = (ui, initialValues?: Record) => + render({ui}); test('consumers can show all values from "values" provided by "initialValues"', () => { const initialValues = { fieldOneId: 'some value', fieldTwoId: 'some other value' }; @@ -63,9 +62,9 @@ test('sets a new value for a single field using setValue', async () => { customRender( - {({ getValue, setValue }) => { - return setValue('someId', event.target.value)} value={getValue('someId')} />; - }} + {({ getValue, setValue }) => ( + setValue('someId', event.target.value)} value={getValue('someId')} /> + )} , { someId: 'some value' @@ -86,16 +85,14 @@ test('using setValues, consumers can set multiple values at once', async () => { customRender( - {({ values, setValues }) => { - return ( - <> - setValues(newValues)} /> - {Object.entries(values).map(([fieldId, value]) => ( - {`${fieldId}: ${value}`} - ))} - - ); - }} + {({ values, setValues }) => ( + <> + setValues(newValues)} /> + {Object.entries(values).map(([fieldId, value]) => ( + {`${fieldId}: ${value}`} + ))} + + )} , { someId: 'some value' @@ -129,14 +126,12 @@ test('sets a new error for a single field using setError', async () => { customRender( - {({ errors, setError }) => { - return ( - <> - setError('someId', 'some error!')} /> - {`Error: ${errors.someId}`} - - ); - }} + {({ errors, setError }) => ( + <> + setError('someId', 'some error!')} /> + {`Error: ${errors.someId}`} + + )} ); @@ -150,16 +145,14 @@ test('using setErrors, consumers can set multiple errors at once', async () => { customRender( - {({ errors, setErrors }) => { - return ( - <> - setErrors(newErrors)} /> - {Object.entries(errors).map(([fieldId, error]) => ( - {`${fieldId}: ${error}`} - ))} - - ); - }} + {({ errors, setErrors }) => ( + <> + setErrors(newErrors)} /> + {Object.entries(errors).map(([fieldId, error]) => ( + {`${fieldId}: ${error}`} + ))} + + )} , { someId: 'some value' @@ -175,14 +168,12 @@ test('sets a new touched state for a single field using setTouched', async () => customRender( - {({ touched, setTouched }) => { - return ( - <> - setTouched('someId', true)} /> - {`isTouched: ${touched.someId}`} - - ); - }} + {({ touched, setTouched }) => ( + <> + setTouched('someId', true)} /> + {`isTouched: ${touched.someId}`} + + )} ); @@ -195,14 +186,12 @@ test("can get a single field's touched state by using isTouched", async () => { customRender( - {({ touched, setTouched, isTouched }) => { - return ( - <> - setTouched('someId', !touched.someId)} /> - {`isTouched: ${isTouched('someId')}`} - - ); - }} + {({ touched, setTouched, isTouched }) => ( + <> + setTouched('someId', !touched.someId)} /> + {`isTouched: ${isTouched('someId')}`} + + )} ); diff --git a/packages/react-core/src/components/Form/__tests__/FormFieldGroup.test.tsx b/packages/react-core/src/components/Form/__tests__/FormFieldGroup.test.tsx index f6a9f119fe6..04e42efa54c 100644 --- a/packages/react-core/src/components/Form/__tests__/FormFieldGroup.test.tsx +++ b/packages/react-core/src/components/Form/__tests__/FormFieldGroup.test.tsx @@ -50,7 +50,7 @@ test('Verify console error logged when there is no aria-label or title', () => { header={} />} /> ); - const { asFragment } = render(FieldGroup); + render(FieldGroup); expect(consoleErrorMock).toHaveBeenCalled(); }); diff --git a/packages/react-core/src/components/Form/__tests__/FormGroup.test.tsx b/packages/react-core/src/components/Form/__tests__/FormGroup.test.tsx index 0e72a884954..5c3a4153340 100644 --- a/packages/react-core/src/components/Form/__tests__/FormGroup.test.tsx +++ b/packages/react-core/src/components/Form/__tests__/FormGroup.test.tsx @@ -3,7 +3,6 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { ValidatedOptions } from '../../../helpers/constants'; import { FormGroup } from '../FormGroup'; import { Form } from '../Form'; diff --git a/packages/react-core/src/components/Form/__tests__/FormHelperText.test.tsx b/packages/react-core/src/components/Form/__tests__/FormHelperText.test.tsx index 4bf14b4d3e4..1f8c1c547de 100644 --- a/packages/react-core/src/components/Form/__tests__/FormHelperText.test.tsx +++ b/packages/react-core/src/components/Form/__tests__/FormHelperText.test.tsx @@ -2,7 +2,6 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; -import { ExclamationCircleIcon } from '@patternfly/react-icons'; import { FormHelperText } from '../FormHelperText'; describe('FormHelperText', () => { diff --git a/packages/react-core/src/components/HelperText/__tests__/HelperText.test.tsx b/packages/react-core/src/components/HelperText/__tests__/HelperText.test.tsx index e552b46f90c..a8bc23ceda2 100644 --- a/packages/react-core/src/components/HelperText/__tests__/HelperText.test.tsx +++ b/packages/react-core/src/components/HelperText/__tests__/HelperText.test.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { HelperText } from '../HelperText'; import { HelperTextItem } from '../HelperTextItem'; -import { CheckIcon } from '@patternfly/react-icons'; +import CheckIcon from '@patternfly/react-icons/dist/esm/icons/check-icon'; describe('HelperText', () => { test('simple helper text renders successfully', () => { @@ -14,7 +14,7 @@ describe('HelperText', () => { expect(asFragment()).toMatchSnapshot(); }); - Object.values(['default', 'indeterminate', 'warning', 'success', 'invalid']).forEach(variant => { + Object.values(['default', 'indeterminate', 'warning', 'success', 'invalid']).forEach((variant) => { test(`${variant} helper text variant applies successfully`, () => { const { asFragment } = render( diff --git a/packages/react-core/src/components/Icon/__tests__/Icon.test.tsx b/packages/react-core/src/components/Icon/__tests__/Icon.test.tsx index b2f2e67de4f..54b56a0ea81 100644 --- a/packages/react-core/src/components/Icon/__tests__/Icon.test.tsx +++ b/packages/react-core/src/components/Icon/__tests__/Icon.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render, screen } from '@testing-library/react'; import { Icon } from '../Icon'; -import { CheckIcon } from '@patternfly/react-icons'; +import CheckIcon from '@patternfly/react-icons/dist/esm/icons/check-icon'; import styles from '@patternfly/react-styles/css/components/Icon/icon'; test('renders basic icon successfully', () => { @@ -14,7 +14,7 @@ test('renders basic icon successfully', () => { }); test('checks basic icon structure', () => { - const { asFragment } = render( + render( diff --git a/packages/react-core/src/components/InputGroup/__tests__/InputGroup.test.tsx b/packages/react-core/src/components/InputGroup/__tests__/InputGroup.test.tsx index dd35dd426f7..0c9b1534937 100644 --- a/packages/react-core/src/components/InputGroup/__tests__/InputGroup.test.tsx +++ b/packages/react-core/src/components/InputGroup/__tests__/InputGroup.test.tsx @@ -23,7 +23,7 @@ describe('InputGroup', () => { ); - const formControl = screen.getByLabelText("User password"); - expect(formControl).not.toHaveAttribute("aria-describedby"); + const formControl = screen.getByLabelText('User password'); + expect(formControl).not.toHaveAttribute('aria-describedby'); }); }); diff --git a/packages/react-core/src/components/Masthead/__tests__/Masthead.test.tsx b/packages/react-core/src/components/Masthead/__tests__/Masthead.test.tsx index ef95c453749..df7b7cc1a35 100644 --- a/packages/react-core/src/components/Masthead/__tests__/Masthead.test.tsx +++ b/packages/react-core/src/components/Masthead/__tests__/Masthead.test.tsx @@ -62,7 +62,7 @@ describe('Masthead', () => { 'insetXl', 'inset2xl', 'inset3xl' - ]).forEach(inset => { + ]).forEach((inset) => { test(`verify ${inset} inset breakpoints`, () => { const { asFragment } = render( test diff --git a/packages/react-core/src/components/Menu/__tests__/Menu.test.tsx b/packages/react-core/src/components/Menu/__tests__/Menu.test.tsx index 83627d08d58..b230896c249 100644 --- a/packages/react-core/src/components/Menu/__tests__/Menu.test.tsx +++ b/packages/react-core/src/components/Menu/__tests__/Menu.test.tsx @@ -2,7 +2,6 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; import '@testing-library/jest-dom'; -import userEvent from '@testing-library/user-event'; import { Menu } from '../Menu'; import { MenuItem } from '../MenuItem'; @@ -54,7 +53,7 @@ describe('Menu', () => { describe('with hasCheckbox', () => { test('should render Menu with checkbox items', () => { - const { asFragment } = render( + render( @@ -67,7 +66,7 @@ describe('Menu', () => { ); const checkbox1 = screen.getAllByRole('checkbox')[0]; expect(checkbox1).not.toBeChecked(); - expect(screen.getByText("Checkbox 1")).toBeInTheDocument(); + expect(screen.getByText('Checkbox 1')).toBeInTheDocument(); }); }); }); diff --git a/packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx b/packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx index 55b75090b57..b56971f6ffd 100644 --- a/packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +++ b/packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx @@ -5,7 +5,7 @@ import { Badge } from '../../Badge'; import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; import userEvent from '@testing-library/user-event'; -import { fireEvent, render, screen } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; describe('menu toggle', () => { test('renders successfully', () => { @@ -61,21 +61,23 @@ describe('menu toggle', () => { const mockClick = jest.fn(); const user = userEvent.setup(); - render( - 10 selected - - ] - }} - aria-label="Menu toggle with checkbox split button and text" - />); + render( + + 10 selected + + ] + }} + aria-label="Menu toggle with checkbox split button and text" + /> + ); await user.click(screen.getByRole(`button`) as Element); expect(mockClick).toHaveBeenCalled(); diff --git a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatus.test.tsx b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatus.test.tsx index f3c18f5e1ad..1c7db785c4b 100644 --- a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatus.test.tsx +++ b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatus.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render } from '@testing-library/react'; import { MultipleFileUploadStatus } from '../MultipleFileUploadStatus'; import InProgressIcon from '@patternfly/react-icons/dist/esm/icons/in-progress-icon'; diff --git a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatusItem.test.tsx b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatusItem.test.tsx index 7f59631f14c..e0e03319fb4 100644 --- a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatusItem.test.tsx +++ b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatusItem.test.tsx @@ -48,7 +48,7 @@ describe('MultipleFileUploadStatusItem', () => { fileName="testCustomFileName.txt" fileSize={42} progressId="test-progress-id" - progressAriaLiveMessage={loadPercentage => `test message ${loadPercentage}`} + progressAriaLiveMessage={(loadPercentage) => `test message ${loadPercentage}`} /> ); diff --git a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitle.test.tsx b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitle.test.tsx index dce9b52bb21..c75908c453f 100644 --- a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitle.test.tsx +++ b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitle.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render } from '@testing-library/react'; import { MultipleFileUploadTitle } from '../MultipleFileUploadTitle'; describe('MultipleFileUploadTitle', () => { diff --git a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleIcon.test.tsx b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleIcon.test.tsx index 192dfd8e49b..6a8c81d7a52 100644 --- a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleIcon.test.tsx +++ b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleIcon.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render } from '@testing-library/react'; import { MultipleFileUploadTitleIcon } from '../MultipleFileUploadTitleIcon'; describe('MultipleFileUploadTitleIcon', () => { diff --git a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleText.test.tsx b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleText.test.tsx index ec683fc5199..5fb79577157 100644 --- a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleText.test.tsx +++ b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleText.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render } from '@testing-library/react'; import { MultipleFileUploadTitleText } from '../MultipleFileUploadTitleText'; describe('MultipleFileUploadTitleText', () => { diff --git a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleTextSeparator.test.tsx b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleTextSeparator.test.tsx index b9db99b59be..c2f8fd39cf2 100644 --- a/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleTextSeparator.test.tsx +++ b/packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleTextSeparator.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render } from '@testing-library/react'; import { MultipleFileUploadTitleTextSeparator } from '../MultipleFileUploadTitleTextSeparator'; describe('MultipleFileUploadTitleTextSeparator', () => { diff --git a/packages/react-core/src/components/Nav/__tests__/Nav.test.tsx b/packages/react-core/src/components/Nav/__tests__/Nav.test.tsx index 7af2ea1ab5e..cfe972719eb 100644 --- a/packages/react-core/src/components/Nav/__tests__/Nav.test.tsx +++ b/packages/react-core/src/components/Nav/__tests__/Nav.test.tsx @@ -30,7 +30,7 @@ describe('Nav', () => { const { asFragment } = renderNav(