@@ -29,12 +29,17 @@ describe('Async Storage', () => {
29
29
} ) ;
30
30
31
31
describe ( 'get / set / clear item test' , ( ) => {
32
+ beforeAll ( async ( ) => {
33
+ await device . openURL ( { url : 'rnc-asyncstorage://unset-delegate' } ) ;
34
+ } ) ;
35
+
32
36
it ( 'should be visible' , async ( ) => {
33
37
await test_getSetClear . tap ( ) ;
34
38
await expect ( element ( by . id ( 'clear_button' ) ) ) . toExist ( ) ;
35
39
await expect ( element ( by . id ( 'increaseByTen_button' ) ) ) . toExist ( ) ;
36
40
await expect ( element ( by . id ( 'storedNumber_text' ) ) ) . toExist ( ) ;
37
41
} ) ;
42
+
38
43
it ( 'should store value in async storage' , async ( ) => {
39
44
const storedNumberText = await element ( by . id ( 'storedNumber_text' ) ) ;
40
45
const increaseByTenButton = await element ( by . id ( 'increaseByTen_button' ) ) ;
@@ -65,6 +70,10 @@ describe('Async Storage', () => {
65
70
} ) ;
66
71
67
72
describe ( 'merge item test' , ( ) => {
73
+ beforeAll ( async ( ) => {
74
+ await device . openURL ( { url : 'rnc-asyncstorage://unset-delegate' } ) ;
75
+ } ) ;
76
+
68
77
it ( 'should be visible' , async ( ) => {
69
78
await test_mergeItem . tap ( ) ;
70
79
await expect ( element ( by . id ( 'saveItem_button' ) ) ) . toExist ( ) ;
@@ -139,4 +148,72 @@ describe('Async Storage', () => {
139
148
expect ( storyText ) . toHaveText ( newStory ) ;
140
149
} ) ;
141
150
} ) ;
151
+
152
+ describe ( 'get / set / clear item delegate test' , ( ) => {
153
+ beforeAll ( async ( ) => {
154
+ await device . openURL ( { url : 'rnc-asyncstorage://set-delegate' } ) ;
155
+ } ) ;
156
+
157
+ it ( 'should be visible' , async ( ) => {
158
+ await test_getSetClear . tap ( ) ;
159
+ await expect ( element ( by . id ( 'clear_button' ) ) ) . toExist ( ) ;
160
+ await expect ( element ( by . id ( 'increaseByTen_button' ) ) ) . toExist ( ) ;
161
+ await expect ( element ( by . id ( 'storedNumber_text' ) ) ) . toExist ( ) ;
162
+ } ) ;
163
+
164
+ it ( 'should store value in async storage' , async ( ) => {
165
+ const storedNumberText = await element ( by . id ( 'storedNumber_text' ) ) ;
166
+ const increaseByTenButton = await element ( by . id ( 'increaseByTen_button' ) ) ;
167
+
168
+ await expect ( storedNumberText ) . toHaveText ( '' ) ;
169
+
170
+ const tapTimes = Math . round ( Math . random ( ) * 9 ) + 1 ;
171
+
172
+ for ( let i = 0 ; i < tapTimes ; i ++ ) {
173
+ await increaseByTenButton . tap ( ) ;
174
+ }
175
+
176
+ await expect ( storedNumberText ) . toHaveText ( `${ tapTimes * 10 } ` ) ;
177
+ await restartButton . tap ( ) ;
178
+ await expect ( storedNumberText ) . toHaveText ( `${ tapTimes * 10 } ` ) ;
179
+ } ) ;
180
+
181
+ it ( 'should clear item' , async ( ) => {
182
+ const storedNumberText = await element ( by . id ( 'storedNumber_text' ) ) ;
183
+ const increaseByTenButton = await element ( by . id ( 'increaseByTen_button' ) ) ;
184
+ const clearButton = await element ( by . id ( 'clear_button' ) ) ;
185
+
186
+ await increaseByTenButton . tap ( ) ;
187
+ await clearButton . tap ( ) ;
188
+ await restartButton . tap ( ) ;
189
+ await expect ( storedNumberText ) . toHaveText ( '' ) ;
190
+ } ) ;
191
+ } ) ;
192
+
193
+ describe ( 'merge item delegate test' , ( ) => {
194
+ beforeAll ( async ( ) => {
195
+ await device . openURL ( { url : 'rnc-asyncstorage://set-delegate' } ) ;
196
+ } ) ;
197
+
198
+ it ( 'should be visible' , async ( ) => {
199
+ await test_mergeItem . tap ( ) ;
200
+ await expect ( element ( by . id ( 'saveItem_button' ) ) ) . toExist ( ) ;
201
+ await expect ( element ( by . id ( 'mergeItem_button' ) ) ) . toExist ( ) ;
202
+ await expect ( element ( by . id ( 'restoreItem_button' ) ) ) . toExist ( ) ;
203
+ await expect ( element ( by . id ( 'testInput-name' ) ) ) . toExist ( ) ;
204
+ await expect ( element ( by . id ( 'testInput-age' ) ) ) . toExist ( ) ;
205
+ await expect ( element ( by . id ( 'testInput-eyes' ) ) ) . toExist ( ) ;
206
+ await expect ( element ( by . id ( 'testInput-shoe' ) ) ) . toExist ( ) ;
207
+ } ) ;
208
+
209
+ it ( 'should crash when merging items in async storage' , async ( ) => {
210
+ const buttonMergeItem = await element ( by . id ( 'mergeItem_button' ) ) ;
211
+ try {
212
+ await buttonMergeItem . tap ( ) ;
213
+ fail ( ) ;
214
+ } catch {
215
+ // Expected
216
+ }
217
+ } ) ;
218
+ } ) ;
142
219
} ) ;
0 commit comments