@@ -359,6 +359,80 @@ describe('ParseUser', () => {
359359 } ) ;
360360 } ) ) ;
361361
362+ it ( 'updates the current user on disk when saved' , asyncHelper ( ( done ) => {
363+ ParseUser . enableUnsafeCurrentUser ( ) ;
364+ ParseUser . _clearCache ( ) ;
365+ Storage . _clear ( ) ;
366+ CoreManager . setRESTController ( {
367+ request ( ) {
368+ return ParsePromise . as ( {
369+ objectId : 'uid5' ,
370+ } , 201 ) ;
371+ } ,
372+ ajax ( ) { }
373+ } ) ;
374+
375+ ParseUser . signUp ( 'updater' , 'password' ) . then ( ( u ) => {
376+ expect ( u . isCurrent ( ) ) . toBe ( true ) ;
377+ ParseUser . _clearCache ( ) ;
378+ CoreManager . setRESTController ( {
379+ request ( ) {
380+ return ParsePromise . as ( { } , 200 ) ;
381+ } ,
382+ ajax ( ) { }
383+ } ) ;
384+ return u . save ( { count : 12 } ) ;
385+ } ) . then ( ( u ) => {
386+ ParseUser . _clearCache ( ) ;
387+ ParseObject . _clearAllState ( ) ;
388+ expect ( u . attributes ) . toEqual ( { } ) ;
389+ expect ( u . get ( 'count' ) ) . toBe ( undefined ) ;
390+ return ParseUser . currentAsync ( ) ;
391+ } ) . then ( ( current ) => {
392+ expect ( current . id ) . toBe ( 'uid5' ) ;
393+ expect ( current . get ( 'count' ) ) . toBe ( 12 ) ;
394+ done ( ) ;
395+ } ) ;
396+ } ) ) ;
397+
398+ it ( 'updates the current user on disk when fetched' , asyncHelper ( ( done ) => {
399+ ParseUser . enableUnsafeCurrentUser ( ) ;
400+ ParseUser . _clearCache ( ) ;
401+ Storage . _clear ( ) ;
402+ CoreManager . setRESTController ( {
403+ request ( ) {
404+ return ParsePromise . as ( {
405+ objectId : 'uid6'
406+ } , 200 ) ;
407+ } ,
408+ ajax ( ) { }
409+ } ) ;
410+
411+ ParseUser . signUp ( 'spot' , 'fetch' ) . then ( ( u ) => {
412+ expect ( u . isCurrent ( ) ) . toBe ( true ) ;
413+ ParseUser . _clearCache ( ) ;
414+ CoreManager . setRESTController ( {
415+ request ( ) {
416+ return ParsePromise . as ( {
417+ count : 15
418+ } , 200 ) ;
419+ } ,
420+ ajax ( ) { }
421+ } ) ;
422+ return u . fetch ( ) ;
423+ } ) . then ( ( u ) => {
424+ ParseUser . _clearCache ( ) ;
425+ ParseObject . _clearAllState ( ) ;
426+ expect ( u . attributes ) . toEqual ( { } ) ;
427+ expect ( u . get ( 'count' ) ) . toBe ( undefined ) ;
428+ return ParseUser . currentAsync ( ) ;
429+ } ) . then ( ( current ) => {
430+ expect ( current . id ) . toBe ( 'uid6' ) ;
431+ expect ( current . get ( 'count' ) ) . toBe ( 15 ) ;
432+ done ( ) ;
433+ } ) ;
434+ } ) ) ;
435+
362436 it ( 'can get error when recursive _linkWith call fails' , asyncHelper ( ( done ) => {
363437 CoreManager . setRESTController ( {
364438 request ( method , path , body , options ) {
0 commit comments