@@ -3,14 +3,16 @@ const {
3
3
getDateText,
4
4
elementById,
5
5
elementByText,
6
+ getDateTimePickerIOS,
7
+ getDatePickerAndroid,
6
8
} = require ( './utils/matchers' ) ;
7
9
const {
8
10
userChangesMinuteValue,
9
11
userOpensPicker,
10
12
userTapsCancelButtonAndroid,
11
13
userTapsOkButtonAndroid,
12
14
} = require ( './utils/actions' ) ;
13
- const { isAndroid, isIOS} = require ( './utils/utils' ) ;
15
+ const { isAndroid, isIOS, wait } = require ( './utils/utils' ) ;
14
16
15
17
describe ( 'Example' , ( ) => {
16
18
beforeEach ( async ( ) => {
@@ -35,21 +37,17 @@ describe('Example', () => {
35
37
await userOpensPicker ( { mode : 'date' , display : 'default' } ) ;
36
38
37
39
if ( isIOS ( ) ) {
38
- await expect (
39
- element ( by . type ( 'UIPickerView' ) . withAncestor ( by . id ( 'dateTimePicker' ) ) ) ,
40
- ) . toBeVisible ( ) ;
40
+ await expect ( getDateTimePickerIOS ( ) ) . toBeVisible ( ) ;
41
41
} else {
42
- await expect ( element ( by . type ( 'android.widget.DatePicker' ) ) ) . toBeVisible ( ) ;
42
+ await expect ( getDatePickerAndroid ( ) ) . toBeVisible ( ) ;
43
43
}
44
44
} ) ;
45
45
46
46
it ( 'nothing should happen if date does not change' , async ( ) => {
47
47
await userOpensPicker ( { mode : 'date' , display : 'default' } ) ;
48
48
49
49
if ( isIOS ( ) ) {
50
- await expect (
51
- element ( by . type ( 'UIPickerView' ) . withAncestor ( by . id ( 'dateTimePicker' ) ) ) ,
52
- ) . toBeVisible ( ) ;
50
+ await expect ( getDateTimePickerIOS ( ) ) . toBeVisible ( ) ;
53
51
} else {
54
52
const testElement = element (
55
53
by
@@ -70,9 +68,7 @@ describe('Example', () => {
70
68
const dateText = getDateText ( ) ;
71
69
72
70
if ( isIOS ( ) ) {
73
- const testElement = element (
74
- by . type ( 'UIPickerView' ) . withAncestor ( by . id ( 'dateTimePicker' ) ) ,
75
- ) ;
71
+ const testElement = getDateTimePickerIOS ( ) ;
76
72
await testElement . setColumnToValue ( 0 , 'November' ) ;
77
73
await testElement . setColumnToValue ( 1 , '3' ) ;
78
74
await testElement . setColumnToValue ( 2 , '1800' ) ;
@@ -96,9 +92,7 @@ describe('Example', () => {
96
92
await userOpensPicker ( { mode : 'time' , display : 'default' } ) ;
97
93
98
94
if ( isIOS ( ) ) {
99
- await expect (
100
- element ( by . type ( 'UIPickerView' ) . withAncestor ( by . id ( 'dateTimePicker' ) ) ) ,
101
- ) . toBeVisible ( ) ;
95
+ await expect ( getDateTimePickerIOS ( ) ) . toBeVisible ( ) ;
102
96
} else {
103
97
await expect ( element ( by . type ( 'android.widget.TimePicker' ) ) ) . toBeVisible ( ) ;
104
98
}
@@ -108,9 +102,7 @@ describe('Example', () => {
108
102
await userOpensPicker ( { mode : 'time' , display : 'default' } ) ;
109
103
110
104
if ( isIOS ( ) ) {
111
- await expect (
112
- element ( by . type ( 'UIPickerView' ) . withAncestor ( by . id ( 'dateTimePicker' ) ) ) ,
113
- ) . toBeVisible ( ) ;
105
+ await expect ( getDateTimePickerIOS ( ) ) . toBeVisible ( ) ;
114
106
} else {
115
107
await userChangesMinuteValue ( ) ;
116
108
await userTapsCancelButtonAndroid ( ) ;
@@ -124,9 +116,7 @@ describe('Example', () => {
124
116
const timeText = getTimeText ( ) ;
125
117
126
118
if ( isIOS ( ) ) {
127
- const testElement = element (
128
- by . type ( 'UIPickerView' ) . withAncestor ( by . id ( 'dateTimePicker' ) ) ,
129
- ) ;
119
+ const testElement = getDateTimePickerIOS ( ) ;
130
120
await testElement . setColumnToValue ( 0 , '2' ) ;
131
121
await testElement . setColumnToValue ( 1 , '44' ) ;
132
122
await testElement . setColumnToValue ( 2 , 'PM' ) ;
@@ -149,6 +139,14 @@ describe('Example', () => {
149
139
await expect ( dateText ) . toHaveText ( '01/01/1970' ) ;
150
140
} ) ;
151
141
142
+ it ( ':android: when component unmounts, dialog is dismissed' , async ( ) => {
143
+ await elementById ( 'showAndDismissPickerButton' ) . tap ( ) ;
144
+ await expect ( getDatePickerAndroid ( ) ) . toBeVisible ( ) ;
145
+ await wait ( 3500 ) ;
146
+
147
+ await expect ( getDatePickerAndroid ( ) ) . toNotExist ( ) ;
148
+ } ) ;
149
+
152
150
describe ( 'given 5-minute interval' , ( ) => {
153
151
it ( ':android: clock picker should correct 18-minute selection to 20-minute one' , async ( ) => {
154
152
try {
@@ -195,9 +193,7 @@ describe('Example', () => {
195
193
it ( ':ios: picker should offer only options divisible by 5 (0, 5, 10,...)' , async ( ) => {
196
194
await userOpensPicker ( { mode : 'time' , display : 'spinner' , interval : 5 } ) ;
197
195
198
- const testElement = element (
199
- by . type ( 'UIPickerView' ) . withAncestor ( by . id ( 'dateTimePicker' ) ) ,
200
- ) ;
196
+ const testElement = getDateTimePickerIOS ( ) ;
201
197
await testElement . setColumnToValue ( 0 , '2' ) ;
202
198
await testElement . setColumnToValue ( 2 , 'PM' ) ;
203
199
const timeText = getTimeText ( ) ;
0 commit comments