@@ -186,6 +186,59 @@ describe('Cursor', () => {
186
186
expect ( cursor . map ( ( x : number ) => x * x ) ) . toEqual ( Immutable . Map ( { a : 1 , b : 4 , c : 9 } ) ) ;
187
187
} ) ;
188
188
189
+ it ( 'can push values on a List' , ( ) => {
190
+ var onChange = jest . genMockFunction ( ) ;
191
+ var data = Immutable . fromJS ( { a : { b : [ 0 , 1 , 2 ] } } ) ;
192
+ var cursor = Cursor . from ( data , [ 'a' , 'b' ] , onChange ) ;
193
+
194
+ expect ( cursor . push ( 3 , 4 ) ) . toEqual ( Immutable . List ( [ 0 , 1 , 2 , 3 , 4 ] ) ) ;
195
+ expect ( onChange ) . lastCalledWith (
196
+ Immutable . fromJS ( { a : { b : [ 0 , 1 , 2 , 3 , 4 ] } } ) ,
197
+ data ,
198
+ [ 'a' , 'b' ]
199
+ ) ;
200
+ } ) ;
201
+
202
+ it ( 'can pop values of a List' , ( ) => {
203
+ var onChange = jest . genMockFunction ( ) ;
204
+ var data = Immutable . fromJS ( { a : { b : [ 0 , 1 , 2 ] } } ) ;
205
+ var cursor = Cursor . from ( data , [ 'a' , 'b' ] , onChange ) ;
206
+
207
+ expect ( cursor . pop ( ) ) . toEqual ( Immutable . List ( [ 0 , 1 ] ) ) ;
208
+ expect ( onChange ) . lastCalledWith (
209
+ Immutable . fromJS ( { a : { b : [ 0 , 1 ] } } ) ,
210
+ data ,
211
+ [ 'a' , 'b' ]
212
+ ) ;
213
+ } ) ;
214
+
215
+ it ( 'can unshift values on a List' , ( ) => {
216
+ var onChange = jest . genMockFunction ( ) ;
217
+ var data = Immutable . fromJS ( { a : { b : [ 0 , 1 , 2 ] } } ) ;
218
+ var cursor = Cursor . from ( data , [ 'a' , 'b' ] , onChange ) ;
219
+
220
+ expect ( cursor . unshift ( - 2 , - 1 ) ) . toEqual ( Immutable . List ( [ - 2 , - 1 , 0 , 1 , 2 ] ) ) ;
221
+ expect ( onChange ) . lastCalledWith (
222
+ Immutable . fromJS ( { a : { b : [ - 2 , - 1 , 0 , 1 , 2 ] } } ) ,
223
+ data ,
224
+ [ 'a' , 'b' ]
225
+ ) ;
226
+ } ) ;
227
+
228
+ it ( 'can shift values of a List' , ( ) => {
229
+ var onChange = jest . genMockFunction ( ) ;
230
+ var data = Immutable . fromJS ( { a : { b : [ 0 , 1 , 2 ] } } ) ;
231
+ var cursor = Cursor . from ( data , [ 'a' , 'b' ] , onChange ) ;
232
+
233
+ expect ( cursor . shift ( ) ) . toEqual ( Immutable . List ( [ 1 , 2 ] ) ) ;
234
+ expect ( onChange ) . lastCalledWith (
235
+ Immutable . fromJS ( { a : { b : [ 1 , 2 ] } } ) ,
236
+ data ,
237
+ [ 'a' , 'b' ]
238
+ ) ;
239
+ } ) ;
240
+
241
+
189
242
it ( 'returns wrapped values for sequence API' , ( ) => {
190
243
var data = Immutable . fromJS ( { a : { v : 1 } , b : { v : 2 } , c : { v : 3 } } ) ;
191
244
var onChange = jest . genMockFunction ( ) ;
0 commit comments