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();
+});