From e258aaa84cfcd6f04fe25c21e1cc360f56093005 Mon Sep 17 00:00:00 2001 From: Jeff Puzzo Date: Thu, 25 May 2023 16:44:54 -0400 Subject: [PATCH] fix(DatePicker): display errorText instead of helperText when both exist --- .../src/components/DatePicker/DatePicker.tsx | 13 ++++-- .../DatePicker/__tests__/DatePicker.test.tsx | 46 +++++++++++++++++-- 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/packages/react-core/src/components/DatePicker/DatePicker.tsx b/packages/react-core/src/components/DatePicker/DatePicker.tsx index 59f810c0ab6..74bb7beb960 100644 --- a/packages/react-core/src/components/DatePicker/DatePicker.tsx +++ b/packages/react-core/src/components/DatePicker/DatePicker.tsx @@ -277,12 +277,15 @@ const DatePickerBase = ( - {helperText &&
{helperText}
} - {errorText.trim() && ( + {(errorText || helperText) && (
- - {errorText} - + {errorText ? ( + + {errorText} + + ) : ( + helperText + )}
)} 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 aef23dec0e3..53caa3a663c 100644 --- a/packages/react-core/src/components/DatePicker/__tests__/DatePicker.test.tsx +++ b/packages/react-core/src/components/DatePicker/__tests__/DatePicker.test.tsx @@ -1,9 +1,12 @@ -import { screen, render } from '@testing-library/react'; -import { DatePicker } from '../DatePicker'; import React from 'react'; + +import { screen, render } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -jest.mock('../../../helpers/util.ts') +import { HelperText, HelperTextItem } from '../../HelperText'; +import { DatePicker } from '../DatePicker'; + +jest.mock('../../../helpers/util.ts'); test('disabled date picker', () => { const { asFragment } = render(); @@ -60,4 +63,39 @@ test('With popover opened', async () => { await screen.findByRole('button', { name: 'Previous month' }); expect(asFragment()).toMatchSnapshot(); -}) \ No newline at end of file +}); + +test('Shows helperText instead of "Invalid date" when no error exists', () => { + render( + + Help me + + } + /> + ); + + expect(screen.queryByText('Invalid date')).not.toBeInTheDocument(); + expect(screen.getByText('Help me')).toBeVisible(); +}); + +test('Shows "Invalid date" instead of helperText when an error exists', async () => { + const user = userEvent.setup(); + + render( + + Help me + + } + /> + ); + + await user.type(screen.getByRole('textbox'), 'not a date'); + await user.click(document.body); + + expect(screen.queryByText('Help me')).not.toBeInTheDocument(); + expect(screen.getByText('Invalid date')).toBeVisible(); +});