Skip to content

Commit 85261b4

Browse files
author
Michael Jordan
committed
fix(accessibility): fix tests after adding alt text to valid icon
1 parent 64a07c0 commit 85261b4

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

packages/@react-spectrum/datepicker/src/Input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export const Input = React.forwardRef(function Input(props: any, ref: any) {
118118
);
119119

120120
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/datepicker');
121-
let validId = fieldProps.id ? `${fieldProps.id}-valid-icon` : undefined;
121+
let validId = fieldProps?.id ? `${fieldProps.id}-valid-icon` : undefined;
122122
let validationIcon: ReactElement | null = null;
123123
if (validationState === 'invalid' && !isDisabled) {
124124
validationIcon = <Alert data-testid="invalid-icon" UNSAFE_className={iconClass} />;

packages/@react-spectrum/textfield/test/TextField.test.js

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,9 @@ describe('Shared TextField behavior', () => {
312312
${'v3 TextField'} | ${TextField}
313313
${'v3 TextArea'} | ${TextArea}
314314
${'v3 SearchField'} | ${SearchField}
315-
`('$Name supports description or error message', ({Component}) => {
315+
`('$Name supports description or error message', async ({Component}) => {
316316
function Example(props) {
317-
let [value, setValue] = React.useState('0');
317+
let [value, setValue] = React.useState(0);
318318
let isValid = React.useMemo(() => /^\d$/.test(value), [value]);
319319

320320
return (
@@ -337,7 +337,9 @@ describe('Shared TextField behavior', () => {
337337
let input = tree.getByTestId(testId);
338338
let helpText = tree.getByText('Enter a single digit number.');
339339
expect(helpText).toHaveAttribute('id');
340-
expect(input).toHaveAttribute('aria-describedby', `${helpText.id}`);
340+
let validIcon = tree.getByRole('img', {'aria-label': '(valid)'});
341+
expect(validIcon).toHaveAttribute('id');
342+
expect(input).toHaveAttribute('aria-describedby', `${helpText.id} ${validIcon.id}`);
341343
expect(input.value).toBe('0');
342344
let newValue = 's';
343345
fireEvent.change(input, {target: {value: newValue}});
@@ -353,10 +355,12 @@ describe('Shared TextField behavior', () => {
353355
expect(input).toHaveAttribute('aria-describedby', `${helpText.id}`);
354356
newValue = '4';
355357
fireEvent.change(input, {target: {value: newValue}});
356-
expect(input.value).toBe(newValue);
358+
expect(input.value).toEqual('4');
357359
helpText = tree.getByText('Enter a single digit number.');
358360
expect(helpText).toHaveAttribute('id');
359-
expect(input).toHaveAttribute('aria-describedby', `${helpText.id}`);
361+
validIcon = tree.getByRole('img', {'aria-label': '(valid)'});
362+
expect(validIcon).toHaveAttribute('id');
363+
expect(input).toHaveAttribute('aria-describedby', `${helpText.id} ${validIcon.id}`);
360364
});
361365

362366
it.each`
@@ -387,7 +391,10 @@ describe('Shared TextField behavior', () => {
387391
let tree = renderComponent(Example);
388392
let input = tree.getByTestId(testId);
389393
let helpText;
390-
expect(tree.getByTestId(testId)).not.toHaveAttribute('aria-describedby');
394+
let validIcon = tree.queryByRole('img', {'aria-label': '(valid)'});
395+
expect(validIcon).toBeTruthy();
396+
expect(validIcon).toHaveAttribute('id');
397+
expect(tree.getByTestId(testId)).toHaveAttribute('aria-describedby', `${validIcon.id}`);
391398

392399
fireEvent.change(input, {target: {value: 's'}});
393400

@@ -418,7 +425,11 @@ describe('Shared TextField behavior', () => {
418425
expect(input.value).toEqual('4');
419426
});
420427

421-
expect(input).not.toHaveAttribute('aria-describedby');
428+
validIcon = tree.getByRole('img', {'aria-label': '(valid)'});
429+
expect(validIcon).toBeTruthy();
430+
expect(validIcon).toHaveAttribute('id');
431+
432+
expect(input).toHaveAttribute('aria-describedby', `${validIcon.id}`);
422433
});
423434

424435
it.each`

0 commit comments

Comments
 (0)