Skip to content

Commit 2577013

Browse files
author
EBAM006
committed
refactor: group tests in accessibility
1 parent d261f61 commit 2577013

File tree

1 file changed

+154
-148
lines changed

1 file changed

+154
-148
lines changed

src/helpers/__tests__/accessiblity.test.tsx

Lines changed: 154 additions & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -2,174 +2,180 @@ import React from 'react';
22
import { View, Text, TextInput } from 'react-native';
33
import { render, isHiddenFromAccessibility, isInaccessible } from '../..';
44

5-
test('returns false for accessible elements', () => {
6-
expect(
7-
isHiddenFromAccessibility(
8-
render(<View testID="subject" />).getByTestId('subject')
9-
)
10-
).toBe(false);
11-
12-
expect(
13-
isHiddenFromAccessibility(
14-
render(<Text testID="subject">Hello</Text>).getByTestId('subject')
15-
)
16-
).toBe(false);
17-
18-
expect(
19-
isHiddenFromAccessibility(
20-
render(<TextInput testID="subject" />).getByTestId('subject')
21-
)
22-
).toBe(false);
23-
});
24-
25-
test('returns true for null elements', () => {
26-
expect(isHiddenFromAccessibility(null)).toBe(true);
27-
});
28-
29-
test('detects elements with accessibilityElementsHidden prop', () => {
30-
const view = render(<View testID="subject" accessibilityElementsHidden />);
31-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
32-
});
33-
34-
test('detects nested elements with accessibilityElementsHidden prop', () => {
35-
const view = render(
36-
<View accessibilityElementsHidden>
37-
<View testID="subject" />
38-
</View>
39-
);
40-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
41-
});
5+
describe('isHiddenFromAccessibility', () => {
6+
test('returns false for accessible elements', () => {
7+
expect(
8+
isHiddenFromAccessibility(
9+
render(<View testID="subject" />).getByTestId('subject')
10+
)
11+
).toBe(false);
12+
13+
expect(
14+
isHiddenFromAccessibility(
15+
render(<Text testID="subject">Hello</Text>).getByTestId('subject')
16+
)
17+
).toBe(false);
18+
19+
expect(
20+
isHiddenFromAccessibility(
21+
render(<TextInput testID="subject" />).getByTestId('subject')
22+
)
23+
).toBe(false);
24+
});
25+
26+
test('returns true for null elements', () => {
27+
expect(isHiddenFromAccessibility(null)).toBe(true);
28+
});
29+
30+
test('detects elements with accessibilityElementsHidden prop', () => {
31+
const view = render(<View testID="subject" accessibilityElementsHidden />);
32+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
33+
});
34+
35+
test('detects nested elements with accessibilityElementsHidden prop', () => {
36+
const view = render(
37+
<View accessibilityElementsHidden>
38+
<View testID="subject" />
39+
</View>
40+
);
41+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
42+
});
4243

43-
test('detects deeply nested elements with accessibilityElementsHidden prop', () => {
44-
const view = render(
45-
<View accessibilityElementsHidden>
46-
<View>
44+
test('detects deeply nested elements with accessibilityElementsHidden prop', () => {
45+
const view = render(
46+
<View accessibilityElementsHidden>
4747
<View>
48-
<View testID="subject" />
48+
<View>
49+
<View testID="subject" />
50+
</View>
4951
</View>
5052
</View>
51-
</View>
52-
);
53-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
54-
});
55-
56-
test('detects elements with importantForAccessibility="no-hide-descendants" prop', () => {
57-
const view = render(
58-
<View testID="subject" importantForAccessibility="no-hide-descendants" />
59-
);
60-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
61-
});
62-
63-
test('detects nested elements with importantForAccessibility="no-hide-descendants" prop', () => {
64-
const view = render(
65-
<View importantForAccessibility="no-hide-descendants">
66-
<View testID="subject" />
67-
</View>
68-
);
69-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
70-
});
71-
72-
test('detects elements with display=none', () => {
73-
const view = render(<View testID="subject" style={{ display: 'none' }} />);
74-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
75-
});
76-
77-
test('detects nested elements with display=none', () => {
78-
const view = render(
79-
<View style={{ display: 'none' }}>
80-
<View testID="subject" />
81-
</View>
82-
);
83-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
84-
});
53+
);
54+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
55+
});
56+
57+
test('detects elements with importantForAccessibility="no-hide-descendants" prop', () => {
58+
const view = render(
59+
<View testID="subject" importantForAccessibility="no-hide-descendants" />
60+
);
61+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
62+
});
63+
64+
test('detects nested elements with importantForAccessibility="no-hide-descendants" prop', () => {
65+
const view = render(
66+
<View importantForAccessibility="no-hide-descendants">
67+
<View testID="subject" />
68+
</View>
69+
);
70+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
71+
});
72+
73+
test('detects elements with display=none', () => {
74+
const view = render(<View testID="subject" style={{ display: 'none' }} />);
75+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
76+
});
77+
78+
test('detects nested elements with display=none', () => {
79+
const view = render(
80+
<View style={{ display: 'none' }}>
81+
<View testID="subject" />
82+
</View>
83+
);
84+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
85+
});
8586

86-
test('detects deeply nested elements with display=none', () => {
87-
const view = render(
88-
<View style={{ display: 'none' }}>
89-
<View>
87+
test('detects deeply nested elements with display=none', () => {
88+
const view = render(
89+
<View style={{ display: 'none' }}>
9090
<View>
91-
<View testID="subject" />
91+
<View>
92+
<View testID="subject" />
93+
</View>
9294
</View>
9395
</View>
94-
</View>
95-
);
96-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
97-
});
98-
99-
test('detects elements with display=none with complex style', () => {
100-
const view = render(
101-
<View
102-
testID="subject"
103-
style={[{ display: 'flex' }, [{ display: 'flex' }], { display: 'none' }]}
104-
/>
105-
);
106-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
107-
});
108-
109-
test('is not trigged by opacity = 0', () => {
110-
const view = render(<View testID="subject" style={{ opacity: 0 }} />);
111-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(false);
112-
});
113-
114-
test('detects siblings of element with accessibilityViewIsModal prop', () => {
115-
const view = render(
116-
<View>
117-
<View accessibilityViewIsModal />
118-
<View testID="subject" />
119-
</View>
120-
);
121-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
122-
});
96+
);
97+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
98+
});
99+
100+
test('detects elements with display=none with complex style', () => {
101+
const view = render(
102+
<View
103+
testID="subject"
104+
style={[
105+
{ display: 'flex' },
106+
[{ display: 'flex' }],
107+
{ display: 'none' },
108+
]}
109+
/>
110+
);
111+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
112+
});
113+
114+
test('is not trigged by opacity = 0', () => {
115+
const view = render(<View testID="subject" style={{ opacity: 0 }} />);
116+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(false);
117+
});
118+
119+
test('detects siblings of element with accessibilityViewIsModal prop', () => {
120+
const view = render(
121+
<View>
122+
<View accessibilityViewIsModal />
123+
<View testID="subject" />
124+
</View>
125+
);
126+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
127+
});
123128

124-
test('detects deeply nested siblings of element with accessibilityViewIsModal prop', () => {
125-
const view = render(
126-
<View>
127-
<View accessibilityViewIsModal />
129+
test('detects deeply nested siblings of element with accessibilityViewIsModal prop', () => {
130+
const view = render(
128131
<View>
132+
<View accessibilityViewIsModal />
129133
<View>
130-
<View testID="subject" />
134+
<View>
135+
<View testID="subject" />
136+
</View>
131137
</View>
132138
</View>
133-
</View>
134-
);
135-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
136-
});
139+
);
140+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(true);
141+
});
137142

138-
test('is not triggered for element with accessibilityViewIsModal prop', () => {
139-
const view = render(
140-
<View>
141-
<View accessibilityViewIsModal testID="subject" />
142-
</View>
143-
);
144-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(false);
145-
});
143+
test('is not triggered for element with accessibilityViewIsModal prop', () => {
144+
const view = render(
145+
<View>
146+
<View accessibilityViewIsModal testID="subject" />
147+
</View>
148+
);
149+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(false);
150+
});
146151

147-
test('is not triggered for child of element with accessibilityViewIsModal prop', () => {
148-
const view = render(
149-
<View>
150-
<View accessibilityViewIsModal>
151-
<View testID="subject" />
152+
test('is not triggered for child of element with accessibilityViewIsModal prop', () => {
153+
const view = render(
154+
<View>
155+
<View accessibilityViewIsModal>
156+
<View testID="subject" />
157+
</View>
152158
</View>
153-
</View>
154-
);
155-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(false);
156-
});
159+
);
160+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(false);
161+
});
157162

158-
test('is not triggered for descendent of element with accessibilityViewIsModal prop', () => {
159-
const view = render(
160-
<View>
161-
<View accessibilityViewIsModal>
162-
<View>
163+
test('is not triggered for descendent of element with accessibilityViewIsModal prop', () => {
164+
const view = render(
165+
<View>
166+
<View accessibilityViewIsModal>
163167
<View>
164-
<View testID="subject" />
168+
<View>
169+
<View testID="subject" />
170+
</View>
165171
</View>
166172
</View>
167173
</View>
168-
</View>
169-
);
170-
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(false);
171-
});
174+
);
175+
expect(isHiddenFromAccessibility(view.getByTestId('subject'))).toBe(false);
176+
});
172177

173-
test('has isInaccessible alias', () => {
174-
expect(isInaccessible).toBe(isHiddenFromAccessibility);
178+
test('has isInaccessible alias', () => {
179+
expect(isInaccessible).toBe(isHiddenFromAccessibility);
180+
});
175181
});

0 commit comments

Comments
 (0)