-
-
Notifications
You must be signed in to change notification settings - Fork 643
Expand file tree
/
Copy pathtest-tabs-more-navigation-controller.e2e.ts
More file actions
100 lines (87 loc) · 4.69 KB
/
test-tabs-more-navigation-controller.e2e.ts
File metadata and controls
100 lines (87 loc) · 4.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import { device, expect, element, by } from 'detox';
import { describeIfiOS, selectSingleFeatureTestsScreen } from '../../e2e-utils';
describeIfiOS('Tab Bar More Navigation Controller', () => {
beforeEach(async () => {
await device.reloadReactNative();
await selectSingleFeatureTestsScreen(
'Tabs',
'test-tabs-more-navigation-controller',
);
await expect(element(by.label('1. onTabSelected: "First"'))).toBeVisible();
await element(by.label('1. onTabSelected: "First"')).tap();
});
it('screen should be displayed with 4 tabs and More tab visible', async () => {
await expect(
element(by.id('test-tabs-more-navigation-controller-view')),
).toBeVisible();
await expect(element(by.type('UITabBar'))).toBeVisible();
await expect(element(by.id('First'))).toBeVisible();
await expect(element(by.id('Second'))).toBeVisible();
await expect(element(by.id('Third'))).toBeVisible();
await expect(element(by.id('Fourth'))).toBeVisible();
await expect(element(by.id('Fifth'))).not.toBeVisible();
await expect(element(by.id('Sixth'))).not.toBeVisible();
await expect(element(by.label('More'))).toExist();
});
it('navigation using tab bar should work correctly', async () => {
await element(by.label('More')).atIndex(0).tap();
await expect(element(by.label('1. onMoreTabSelected'))).toBeVisible();
await element(by.label('1. onMoreTabSelected')).tap();
await expect(element(by.label('Fifth'))).toBeVisible();
await expect(element(by.label('Sixth'))).toBeVisible();
await element(by.label('Fifth')).tap();
await expect(element(by.id('Fifth-content-view'))).toBeVisible();
await element(by.label('1. onTabSelected: "Fifth"')).tap();
await expect(element(by.id('Fifth'))).not.toBeVisible();
await expect(element(by.label('Sixth'))).not.toBeVisible();
await element(by.id('Third')).tap();
await expect(element(by.id('Third-content-view'))).toBeVisible();
await element(by.label('1. onTabSelected: "Third"')).tap();
await element(by.label('More')).atIndex(0).tap();
await expect(element(by.id('Fifth-content-view'))).toBeVisible();
await element(by.label('1. onTabSelected: "Fifth"')).tap();
await expect(element(by.id('Fifth'))).not.toBeVisible();
await expect(element(by.id('Sixth'))).not.toBeVisible();
await element(by.label('More')).atIndex(0).tap();
await expect(element(by.label('1. onMoreTabSelected'))).toBeVisible();
await expect(element(by.label('Fifth'))).toBeVisible();
await expect(element(by.label('Sixth'))).toBeVisible();
await element(by.label('1. onMoreTabSelected')).tap();
await element(by.label('Sixth')).tap();
await expect(element(by.id('Sixth-content-view'))).toBeVisible();
await element(by.label('1. onTabSelected: "Sixth"')).tap();
await expect(element(by.id('Fifth'))).not.toBeVisible();
await expect(element(by.id('Sixth'))).not.toBeVisible();
});
it('navigation using programmatic buttons should work correctly', async () => {
await element(by.label('Select Fourth')).tap();
await expect(element(by.id('Fourth-content-view'))).toBeVisible();
await element(by.label('1. onTabSelected: "Fourth"')).tap();
await expect(element(by.id('Fifth'))).not.toBeVisible();
await expect(element(by.id('Sixth'))).not.toBeVisible();
await element(by.label('Select Fifth')).tap();
await expect(element(by.id('Fifth-content-view'))).toBeVisible();
await element(by.label('1. onTabSelected: "Fifth"')).tap();
await expect(element(by.id('Fifth'))).not.toBeVisible();
await expect(element(by.id('Sixth'))).not.toBeVisible();
await element(by.label('Select First')).tap();
await expect(element(by.id('First-content-view'))).toBeVisible();
await element(by.label('1. onTabSelected: "First"')).tap();
await element(by.label('Select Sixth')).tap();
await expect(element(by.id('Sixth-content-view'))).toBeVisible();
await element(by.label('1. onTabSelected: "Sixth"')).tap();
await expect(element(by.id('Fifth'))).not.toBeVisible();
await expect(element(by.id('Sixth'))).not.toBeVisible();
});
it('repeated More tab selection', async () => {
await element(by.label('More')).atIndex(0).tap();
await expect(element(by.label('1. onMoreTabSelected'))).toBeVisible();
await element(by.label('1. onMoreTabSelected')).tap();
await expect(element(by.label('Fifth'))).toBeVisible();
await expect(element(by.label('Sixth'))).toBeVisible();
await element(by.label('More')).atIndex(0).tap();
await expect(element(by.label('1. onMoreTabSelected'))).not.toBeVisible();
await element(by.label('More')).atIndex(0).tap();
await expect(element(by.label('1. onMoreTabSelected'))).not.toBeVisible();
});
});