@@ -16,7 +16,13 @@ const PIN_PREFIX = LocalDatastoreUtils.PIN_PREFIX;
16
16
function LDS_KEY ( object ) {
17
17
return Parse . LocalDatastore . getKeyForObject ( object ) ;
18
18
}
19
-
19
+ function LDS_FULL_JSON ( object ) {
20
+ const json = object . _toFullJSON ( ) ;
21
+ if ( object . _localId ) {
22
+ json . _localId = object . _localId ;
23
+ }
24
+ return json ;
25
+ }
20
26
function runTest ( controller ) {
21
27
describe ( `Parse Object Pinning (${ controller . name } )` , ( ) => {
22
28
beforeEach ( async ( ) => {
@@ -75,7 +81,7 @@ function runTest(controller) {
75
81
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
76
82
assert . equal ( Object . keys ( localDatastore ) . length , 2 ) ;
77
83
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( object ) ] ) ;
78
- assert . deepEqual ( localDatastore [ LDS_KEY ( object ) ] , [ object . _toFullJSON ( ) ] ) ;
84
+ assert . deepEqual ( localDatastore [ LDS_KEY ( object ) ] , [ LDS_FULL_JSON ( object ) ] ) ;
79
85
await object . save ( ) ;
80
86
// Check if localDatastore updated localId to objectId
81
87
localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
@@ -84,6 +90,55 @@ function runTest(controller) {
84
90
assert . deepEqual ( localDatastore [ LDS_KEY ( object ) ] , [ object . _toFullJSON ( ) ] ) ;
85
91
} ) ;
86
92
93
+ it ( `${ controller . name } can store data to pin (unsaved)` , async ( ) => {
94
+ const object = new TestObject ( ) ;
95
+ object . set ( 'foo' , 'bar' ) ;
96
+ await object . pin ( ) ;
97
+
98
+ const query = new Parse . Query ( TestObject ) ;
99
+ query . fromLocalDatastore ( ) ;
100
+ let results = await query . find ( ) ;
101
+ assert . equal ( results . length , 1 ) ;
102
+
103
+ let pinnedObject = results [ 0 ] ;
104
+ assert . equal ( pinnedObject . get ( 'foo' ) , 'bar' ) ;
105
+ pinnedObject . set ( 'foo' , 'baz' ) ;
106
+ await pinnedObject . pin ( ) ;
107
+
108
+ results = await query . find ( ) ;
109
+ assert . equal ( results . length , 1 ) ;
110
+ pinnedObject = results [ 0 ] ;
111
+ assert . equal ( pinnedObject . get ( 'foo' ) , 'baz' ) ;
112
+ } ) ;
113
+
114
+ it ( `${ controller . name } can query unsaved pin and save` , async ( ) => {
115
+ const object = new TestObject ( ) ;
116
+ object . set ( 'foo' , 'bar' ) ;
117
+ await object . pin ( ) ;
118
+
119
+ const query = new Parse . Query ( TestObject ) ;
120
+ query . fromLocalDatastore ( ) ;
121
+ let results = await query . find ( ) ;
122
+
123
+ assert . equal ( results . length , 1 ) ;
124
+
125
+ let pinnedObject = results [ 0 ] ;
126
+ assert . equal ( pinnedObject . get ( 'foo' ) , 'bar' ) ;
127
+
128
+ pinnedObject . set ( 'foo' , 'baz' ) ;
129
+ await pinnedObject . save ( ) ;
130
+
131
+ assert ( pinnedObject . id ) ;
132
+ assert . equal ( pinnedObject . _localId , undefined ) ;
133
+
134
+ results = await query . find ( ) ;
135
+ pinnedObject = results [ 0 ] ;
136
+
137
+ assert . equal ( pinnedObject . get ( 'foo' ) , 'baz' ) ;
138
+ assert ( pinnedObject . id ) ;
139
+ assert . equal ( pinnedObject . _localId , undefined ) ;
140
+ } ) ;
141
+
87
142
it ( `${ controller . name } cannot pin unsaved pointer` , async ( ) => {
88
143
try {
89
144
const object = new TestObject ( ) ;
@@ -174,9 +229,9 @@ function runTest(controller) {
174
229
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
175
230
assert . equal ( Object . keys ( localDatastore ) . length , 4 ) ;
176
231
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
177
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
178
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
179
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
232
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
233
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
234
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
180
235
181
236
await Parse . Object . saveAll ( objects ) ;
182
237
@@ -216,9 +271,9 @@ function runTest(controller) {
216
271
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
217
272
assert . equal ( Object . keys ( localDatastore ) . length , 4 ) ;
218
273
assert . deepEqual ( localDatastore [ PIN_PREFIX + 'test_pin' ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
219
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
220
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
221
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
274
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
275
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
276
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
222
277
223
278
await Parse . Object . saveAll ( objects ) ;
224
279
@@ -315,17 +370,17 @@ function runTest(controller) {
315
370
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
316
371
assert . equal ( Object . keys ( localDatastore ) . length , 4 ) ;
317
372
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
318
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
319
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
320
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
373
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
374
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
375
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
321
376
322
377
await obj2 . unPin ( ) ;
323
378
324
379
localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
325
380
assert . equal ( Object . keys ( localDatastore ) . length , 3 ) ;
326
381
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj3 ) ] ) ;
327
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
328
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
382
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
383
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
329
384
330
385
await Parse . Object . saveAll ( objects ) ;
331
386
@@ -347,9 +402,9 @@ function runTest(controller) {
347
402
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
348
403
assert . equal ( Object . keys ( localDatastore ) . length , 4 ) ;
349
404
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
350
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
351
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
352
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
405
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
406
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
407
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
353
408
354
409
await Parse . Object . saveAll ( objects ) ;
355
410
@@ -358,8 +413,8 @@ function runTest(controller) {
358
413
localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
359
414
assert . equal ( Object . keys ( localDatastore ) . length , 3 ) ;
360
415
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj3 ) ] ) ;
361
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
362
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
416
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
417
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
363
418
} ) ;
364
419
365
420
it ( `${ controller . name } can unPin / unPinAll without pin (unsaved)` , async ( ) => {
@@ -407,16 +462,16 @@ function runTest(controller) {
407
462
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
408
463
assert ( Object . keys ( localDatastore ) . length === 4 ) ;
409
464
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
410
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
411
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
412
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
465
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
466
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
467
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
413
468
414
469
await Parse . Object . unPinAll ( [ obj1 , obj2 ] ) ;
415
470
416
471
localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
417
472
assert . equal ( Object . keys ( localDatastore ) . length , 2 ) ;
418
473
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj3 ) ] ) ;
419
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
474
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
420
475
421
476
await Parse . Object . saveAll ( objects ) ;
422
477
@@ -437,9 +492,9 @@ function runTest(controller) {
437
492
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
438
493
assert . equal ( Object . keys ( localDatastore ) . length , 4 ) ;
439
494
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
440
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
441
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
442
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
495
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
496
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
497
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
443
498
444
499
await Parse . Object . saveAll ( objects ) ;
445
500
@@ -461,17 +516,17 @@ function runTest(controller) {
461
516
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
462
517
assert ( Object . keys ( localDatastore ) . length === 4 ) ;
463
518
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
464
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
465
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
466
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
519
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
520
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
521
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
467
522
468
523
await Parse . Object . unPinAllObjects ( ) ;
469
524
470
525
localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
471
526
assert . equal ( Object . keys ( localDatastore ) . length , 3 ) ;
472
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
473
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
474
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
527
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
528
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
529
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
475
530
476
531
await Parse . Object . saveAll ( objects ) ;
477
532
@@ -493,9 +548,9 @@ function runTest(controller) {
493
548
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
494
549
assert . equal ( Object . keys ( localDatastore ) . length , 4 ) ;
495
550
assert . deepEqual ( localDatastore [ DEFAULT_PIN ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
496
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
497
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
498
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
551
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
552
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
553
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
499
554
500
555
await Parse . Object . saveAll ( objects ) ;
501
556
@@ -518,16 +573,16 @@ function runTest(controller) {
518
573
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
519
574
assert ( Object . keys ( localDatastore ) . length === 4 ) ;
520
575
assert . deepEqual ( localDatastore [ PIN_PREFIX + 'test_unpin' ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
521
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
522
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
523
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
576
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
577
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
578
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
524
579
525
580
await Parse . Object . unPinAllWithName ( 'test_unpin' , [ obj1 , obj2 ] ) ;
526
581
527
582
localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
528
583
assert . equal ( Object . keys ( localDatastore ) . length , 2 ) ;
529
584
assert . deepEqual ( localDatastore [ PIN_PREFIX + 'test_unpin' ] , [ LDS_KEY ( obj3 ) ] ) ;
530
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
585
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
531
586
532
587
await Parse . Object . saveAll ( objects ) ;
533
588
@@ -548,9 +603,9 @@ function runTest(controller) {
548
603
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
549
604
assert . equal ( Object . keys ( localDatastore ) . length , 4 ) ;
550
605
assert . deepEqual ( localDatastore [ PIN_PREFIX + 'test_unpin' ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
551
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
552
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
553
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
606
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
607
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
608
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
554
609
555
610
await Parse . Object . saveAll ( objects ) ;
556
611
@@ -572,17 +627,17 @@ function runTest(controller) {
572
627
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
573
628
assert ( Object . keys ( localDatastore ) . length === 4 ) ;
574
629
assert . deepEqual ( localDatastore [ PIN_PREFIX + 'test_unpin' ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
575
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
576
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
577
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
630
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
631
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
632
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
578
633
579
634
await Parse . Object . unPinAllObjectsWithName ( 'test_unpin' ) ;
580
635
581
636
localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
582
637
assert . equal ( Object . keys ( localDatastore ) . length , 3 ) ;
583
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
584
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
585
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
638
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
639
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
640
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
586
641
587
642
await Parse . Object . saveAll ( objects ) ;
588
643
@@ -604,9 +659,9 @@ function runTest(controller) {
604
659
let localDatastore = await Parse . LocalDatastore . _getAllContents ( ) ;
605
660
assert . equal ( Object . keys ( localDatastore ) . length , 4 ) ;
606
661
assert . deepEqual ( localDatastore [ PIN_PREFIX + 'test_unpin' ] , [ LDS_KEY ( obj1 ) , LDS_KEY ( obj2 ) , LDS_KEY ( obj3 ) ] ) ;
607
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ obj1 . _toFullJSON ( ) ] ) ;
608
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ obj2 . _toFullJSON ( ) ] ) ;
609
- assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ obj3 . _toFullJSON ( ) ] ) ;
662
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj1 ) ] , [ LDS_FULL_JSON ( obj1 ) ] ) ;
663
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj2 ) ] , [ LDS_FULL_JSON ( obj2 ) ] ) ;
664
+ assert . deepEqual ( localDatastore [ LDS_KEY ( obj3 ) ] , [ LDS_FULL_JSON ( obj3 ) ] ) ;
610
665
611
666
await Parse . Object . saveAll ( objects ) ;
612
667
@@ -871,6 +926,25 @@ function runTest(controller) {
871
926
const childJSON = updatedLDS [ LDS_KEY ( child ) ] ;
872
927
assert . equal ( childJSON . foo , 'changed' ) ;
873
928
} ) ;
929
+
930
+ it ( `${ controller . name } can update Local Datastore from network ignore unsaved` , async ( ) => {
931
+ const object = new TestObject ( ) ;
932
+ const item = new Item ( ) ;
933
+ await item . save ( ) ;
934
+ await Parse . Object . pinAll ( [ object , item ] ) ;
935
+
936
+ // Updates item with { foo: 'changed' }
937
+ const params = { id : item . id } ;
938
+ await Parse . Cloud . run ( 'TestFetchFromLocalDatastore' , params ) ;
939
+
940
+ Parse . LocalDatastore . isSyncing = false ;
941
+
942
+ await Parse . LocalDatastore . updateFromServer ( ) ;
943
+
944
+ const updatedLDS = await Parse . LocalDatastore . _getAllContents ( ) ;
945
+ const itemJSON = updatedLDS [ LDS_KEY ( item ) ] ;
946
+ assert . equal ( itemJSON . foo , 'changed' ) ;
947
+ } ) ;
874
948
} ) ;
875
949
876
950
describe ( `Parse Query Pinning (${ controller . name } )` , ( ) => {
0 commit comments