|
1 | 1 | import React from 'react';
|
2 |
| -import { View, Text, TextInput } from 'react-native'; |
| 2 | +import { View, Text, TextInput, Pressable } from 'react-native'; |
3 | 3 | import { render, isHiddenFromAccessibility, isInaccessible } from '../..';
|
| 4 | +import { isAccessibilityElement } from '../accessiblity'; |
4 | 5 |
|
5 | 6 | describe('isHiddenFromAccessibility', () => {
|
6 | 7 | test('returns false for accessible elements', () => {
|
@@ -179,3 +180,53 @@ describe('isHiddenFromAccessibility', () => {
|
179 | 180 | expect(isInaccessible).toBe(isHiddenFromAccessibility);
|
180 | 181 | });
|
181 | 182 | });
|
| 183 | + |
| 184 | +describe('isAccessibilityElement', () => { |
| 185 | + describe('when accessible prop is not defined', () => { |
| 186 | + test('returns true for Text component', () => { |
| 187 | + const element = render(<Text testID="text">Hey</Text>).getByTestId( |
| 188 | + 'text' |
| 189 | + ); |
| 190 | + expect(isAccessibilityElement(element)).toEqual(true); |
| 191 | + }); |
| 192 | + |
| 193 | + test('returns true for TextInput component', () => { |
| 194 | + const element = render(<TextInput testID="input" />).getByTestId('input'); |
| 195 | + expect(isAccessibilityElement(element)).toEqual(true); |
| 196 | + }); |
| 197 | + |
| 198 | + test('returns true for Pressable component', () => { |
| 199 | + const element = render(<Pressable testID="pressable" />).getByTestId( |
| 200 | + 'pressable' |
| 201 | + ); |
| 202 | + expect(isAccessibilityElement(element)).toEqual(true); |
| 203 | + }); |
| 204 | + |
| 205 | + test('returns false for View component', () => { |
| 206 | + const element = render(<View testID="element" />).getByTestId('element'); |
| 207 | + expect(isAccessibilityElement(element)).toEqual(false); |
| 208 | + }); |
| 209 | + }); |
| 210 | + |
| 211 | + describe('when accessible prop is defined', () => { |
| 212 | + test('returns false when accessible prop is set to false', () => { |
| 213 | + const element = render( |
| 214 | + <TextInput accessible={false} testID="input"> |
| 215 | + Hey |
| 216 | + </TextInput> |
| 217 | + ).getByTestId('input'); |
| 218 | + expect(isAccessibilityElement(element)).toEqual(false); |
| 219 | + }); |
| 220 | + |
| 221 | + test('returns true when accessible prop is set to true', () => { |
| 222 | + const element = render( |
| 223 | + <View accessible={true} testID="view" /> |
| 224 | + ).getByTestId('view'); |
| 225 | + expect(isAccessibilityElement(element)).toEqual(true); |
| 226 | + }); |
| 227 | + }); |
| 228 | + |
| 229 | + test('returns false when given null', () => { |
| 230 | + expect(isAccessibilityElement(null)).toEqual(false); |
| 231 | + }); |
| 232 | +}); |
0 commit comments