Skip to content

Commit f37831c

Browse files
committed
refactor: more tweaks
1 parent 9772da3 commit f37831c

File tree

4 files changed

+37
-50
lines changed

4 files changed

+37
-50
lines changed

src/helpers/accessibility.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,7 @@ import {
77
} from 'react-native';
88
import { ReactTestInstance } from 'react-test-renderer';
99
import { getHostSiblings, getUnsafeRootElement } from './component-tree';
10-
import {
11-
getHostComponentNames,
12-
isHostSwitch,
13-
isHostText,
14-
isHostTextInput,
15-
} from './host-component-names';
10+
import { getHostComponentNames, isHostText, isHostTextInput } from './host-component-names';
1611
import { getTextContent } from './text-content';
1712
import { isTextInputEditable } from './text-input';
1813

@@ -159,10 +154,6 @@ export function computeAriaBusy({ props }: ReactTestInstance): boolean {
159154

160155
// See: https://github.com/callstack/react-native-testing-library/wiki/Accessibility:-State#checked-state
161156
export function computeAriaChecked(element: ReactTestInstance): AccessibilityState['checked'] {
162-
if (isHostSwitch(element)) {
163-
return element.props.value;
164-
}
165-
166157
const role = getRole(element);
167158
if (role !== 'checkbox' && role !== 'radio') {
168159
return undefined;

src/matchers/to-be-checked.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import type { ReactTestInstance } from 'react-test-renderer';
22
import { matcherHint } from 'jest-matcher-utils';
3-
import {
4-
getAccessibilityCheckedState,
5-
getAccessibilityRole,
6-
isAccessibilityElement,
7-
} from '../helpers/accessibility';
3+
import { computeAriaChecked, getRole, isAccessibilityElement } from '../helpers/accessibility';
84
import { ErrorWithStack } from '../helpers/errors';
95
import { checkHostElement, formatElement } from './utils';
106

src/queries/__tests__/accessibility-state.test.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -88,31 +88,31 @@ test('getAllByA11yState, queryAllByA11yState, findAllByA11yState', async () => {
8888

8989
describe('checked state matching', () => {
9090
it('handles true', () => {
91-
render(<View accessibilityState={{ checked: true }} />);
91+
render(<View role="checkbox" accessibilityState={{ checked: true }} />);
9292

9393
expect(screen.getByA11yState({ checked: true })).toBeTruthy();
9494
expect(screen.queryByA11yState({ checked: 'mixed' })).toBeFalsy();
9595
expect(screen.queryByA11yState({ checked: false })).toBeFalsy();
9696
});
9797

9898
it('handles mixed', () => {
99-
render(<View accessibilityState={{ checked: 'mixed' }} />);
99+
render(<View role="checkbox" accessibilityState={{ checked: 'mixed' }} />);
100100

101101
expect(screen.getByA11yState({ checked: 'mixed' })).toBeTruthy();
102102
expect(screen.queryByA11yState({ checked: true })).toBeFalsy();
103103
expect(screen.queryByA11yState({ checked: false })).toBeFalsy();
104104
});
105105

106106
it('handles false', () => {
107-
render(<View accessibilityState={{ checked: false }} />);
107+
render(<View role="checkbox" accessibilityState={{ checked: false }} />);
108108

109109
expect(screen.getByA11yState({ checked: false })).toBeTruthy();
110110
expect(screen.queryByA11yState({ checked: true })).toBeFalsy();
111111
expect(screen.queryByA11yState({ checked: 'mixed' })).toBeFalsy();
112112
});
113113

114-
it('handles default', () => {
115-
render(<View accessibilityState={{}} />);
114+
it('handles default', () => {
115+
render(<View role="checkbox" accessibilityState={{}} />);
116116

117117
expect(screen.queryByA11yState({ checked: false })).toBeFalsy();
118118
expect(screen.queryByA11yState({ checked: true })).toBeFalsy();
@@ -135,7 +135,7 @@ describe('expanded state matching', () => {
135135
expect(screen.queryByA11yState({ expanded: true })).toBeFalsy();
136136
});
137137

138-
it('handles default', () => {
138+
it('handles default', () => {
139139
render(<View accessibilityState={{}} />);
140140

141141
expect(screen.queryByA11yState({ expanded: false })).toBeFalsy();
@@ -158,7 +158,7 @@ describe('disabled state matching', () => {
158158
expect(screen.queryByA11yState({ disabled: true })).toBeFalsy();
159159
});
160160

161-
it('handles default', () => {
161+
it('handles default', () => {
162162
render(<View accessibilityState={{}} />);
163163

164164
expect(screen.getByA11yState({ disabled: false })).toBeTruthy();
@@ -181,7 +181,7 @@ describe('busy state matching', () => {
181181
expect(screen.queryByA11yState({ busy: true })).toBeFalsy();
182182
});
183183

184-
it('handles default', () => {
184+
it('handles default', () => {
185185
render(<View accessibilityState={{}} />);
186186

187187
expect(screen.getByA11yState({ busy: false })).toBeTruthy();
@@ -204,7 +204,7 @@ describe('selected state matching', () => {
204204
expect(screen.queryByA11yState({ selected: true })).toBeFalsy();
205205
});
206206

207-
it('handles default', () => {
207+
it('handles default', () => {
208208
render(<View accessibilityState={{}} />);
209209

210210
expect(screen.getByA11yState({ selected: false })).toBeTruthy();
@@ -463,28 +463,28 @@ describe('aria-selected prop', () => {
463463

464464
describe('aria-checked prop', () => {
465465
test('supports aria-checked={true} prop', () => {
466-
render(<View accessible accessibilityRole="button" aria-checked={true} />);
466+
render(<View accessible role="checkbox" aria-checked={true} />);
467467
expect(screen.getByAccessibilityState({ checked: true })).toBeTruthy();
468468
expect(screen.queryByAccessibilityState({ checked: false })).toBeNull();
469469
expect(screen.queryByAccessibilityState({ checked: 'mixed' })).toBeNull();
470470
});
471471

472472
test('supports aria-checked={false} prop', () => {
473-
render(<View accessible accessibilityRole="button" aria-checked={false} />);
473+
render(<View accessible role="checkbox" aria-checked={false} />);
474474
expect(screen.getByAccessibilityState({ checked: false })).toBeTruthy();
475475
expect(screen.queryByAccessibilityState({ checked: true })).toBeNull();
476476
expect(screen.queryByAccessibilityState({ checked: 'mixed' })).toBeNull();
477477
});
478478

479-
test('supports aria-checked="mixed prop', () => {
480-
render(<View accessible accessibilityRole="button" aria-checked="mixed" />);
479+
test('supports aria-checked="mixed" prop', () => {
480+
render(<View accessible accessibilityRole="checkbox" aria-checked="mixed" />);
481481
expect(screen.getByAccessibilityState({ checked: 'mixed' })).toBeTruthy();
482482
expect(screen.queryByAccessibilityState({ checked: true })).toBeNull();
483483
expect(screen.queryByAccessibilityState({ checked: false })).toBeNull();
484484
});
485485

486-
test('supports default aria-selected prop', () => {
487-
render(<View accessible accessibilityRole="button" />);
486+
test('supports default aria-checked prop', () => {
487+
render(<View accessible accessibilityRole="checkbox" />);
488488
expect(screen.getByAccessibilityState({})).toBeTruthy();
489489
expect(screen.queryByAccessibilityState({ checked: true })).toBeNull();
490490
expect(screen.queryByAccessibilityState({ checked: false })).toBeNull();

src/queries/__tests__/role.test.tsx

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -509,32 +509,32 @@ describe('supports accessibility states', () => {
509509
});
510510

511511
test('supports aria-checked={true} prop', () => {
512-
render(<View accessible accessibilityRole="button" aria-checked={true} />);
513-
expect(screen.getByRole('button', { checked: true })).toBeTruthy();
514-
expect(screen.queryByRole('button', { checked: false })).toBeNull();
515-
expect(screen.queryByRole('button', { checked: 'mixed' })).toBeNull();
512+
render(<View accessible role="checkbox" aria-checked={true} />);
513+
expect(screen.getByRole('checkbox', { checked: true })).toBeTruthy();
514+
expect(screen.queryByRole('checkbox', { checked: false })).toBeNull();
515+
expect(screen.queryByRole('checkbox', { checked: 'mixed' })).toBeNull();
516516
});
517517

518518
test('supports aria-checked={false} prop', () => {
519-
render(<View accessible accessibilityRole="button" aria-checked={false} />);
520-
expect(screen.getByRole('button', { checked: false })).toBeTruthy();
521-
expect(screen.queryByRole('button', { checked: true })).toBeNull();
522-
expect(screen.queryByRole('button', { checked: 'mixed' })).toBeNull();
519+
render(<View accessible role="checkbox" aria-checked={false} />);
520+
expect(screen.getByRole('checkbox', { checked: false })).toBeTruthy();
521+
expect(screen.queryByRole('checkbox', { checked: true })).toBeNull();
522+
expect(screen.queryByRole('checkbox', { checked: 'mixed' })).toBeNull();
523523
});
524524

525-
test('supports aria-checked="mixed prop', () => {
526-
render(<View accessible accessibilityRole="button" aria-checked="mixed" />);
527-
expect(screen.getByRole('button', { checked: 'mixed' })).toBeTruthy();
528-
expect(screen.queryByRole('button', { checked: true })).toBeNull();
529-
expect(screen.queryByRole('button', { checked: false })).toBeNull();
525+
test('supports aria-checked="mixed" prop', () => {
526+
render(<View accessible role="checkbox" aria-checked="mixed" />);
527+
expect(screen.getByRole('checkbox', { checked: 'mixed' })).toBeTruthy();
528+
expect(screen.queryByRole('checkbox', { checked: true })).toBeNull();
529+
expect(screen.queryByRole('checkbox', { checked: false })).toBeNull();
530530
});
531531

532532
test('supports default aria-selected prop', () => {
533-
render(<View accessible accessibilityRole="button" />);
534-
expect(screen.getByRole('button')).toBeTruthy();
535-
expect(screen.queryByRole('button', { checked: true })).toBeNull();
536-
expect(screen.queryByRole('button', { checked: false })).toBeNull();
537-
expect(screen.queryByRole('button', { checked: 'mixed' })).toBeNull();
533+
render(<View accessible role="checkbox" />);
534+
expect(screen.getByRole('checkbox')).toBeTruthy();
535+
expect(screen.queryByRole('checkbox', { checked: true })).toBeNull();
536+
expect(screen.queryByRole('checkbox', { checked: false })).toBeNull();
537+
expect(screen.queryByRole('checkbox', { checked: 'mixed' })).toBeNull();
538538
});
539539
});
540540

@@ -728,7 +728,7 @@ describe('supports accessibility states', () => {
728728
test('matches an element combining all the options', () => {
729729
render(
730730
<TouchableOpacity
731-
accessibilityRole="button"
731+
accessibilityRole="checkbox"
732732
accessibilityState={{
733733
disabled: true,
734734
selected: true,
@@ -742,7 +742,7 @@ describe('supports accessibility states', () => {
742742
);
743743

744744
expect(
745-
screen.getByRole('button', {
745+
screen.getByRole('checkbox', {
746746
name: 'Save',
747747
disabled: true,
748748
selected: true,

0 commit comments

Comments
 (0)