@@ -487,6 +487,33 @@ describe('Auth Adapter features', () => {
487487 expect ( baseAdapter2 . validateAuthData ) . toHaveBeenCalledTimes ( 2 ) ;
488488 } ) ;
489489
490+ it ( 'should not perform authData validation twice when data mutated' , async ( ) => {
491+ spyOn ( baseAdapter , 'validateAuthData' ) . and . resolveTo ( { } ) ;
492+ await reconfigureServer ( {
493+ auth : { baseAdapter } ,
494+ allowExpiredAuthDataToken : false ,
495+ } ) ;
496+
497+ const user = new Parse . User ( ) ;
498+
499+ await user . save ( {
500+ authData : {
501+ baseAdapter : { id : 'baseAdapter' , token : "sometoken1" } ,
502+ } ,
503+ } ) ;
504+
505+ expect ( baseAdapter . validateAuthData ) . toHaveBeenCalledTimes ( 1 ) ;
506+
507+ const user2 = new Parse . User ( ) ;
508+ await user2 . save ( {
509+ authData : {
510+ baseAdapter : { id : 'baseAdapter' , token : "sometoken2" } ,
511+ } ,
512+ } ) ;
513+
514+ expect ( baseAdapter . validateAuthData ) . toHaveBeenCalledTimes ( 2 ) ;
515+ } ) ;
516+
490517 it ( 'should require additional provider if configured' , async ( ) => {
491518 await reconfigureServer ( {
492519 auth : { baseAdapter, additionalAdapter } ,
@@ -937,7 +964,7 @@ describe('Auth Adapter features', () => {
937964 allowExpiredAuthDataToken : false ,
938965 } ) ;
939966 logger = require ( '../lib/logger' ) . logger ;
940- spyOn ( logger , 'error' ) . and . callFake ( ( ) => { } ) ;
967+ spyOn ( logger , 'error' ) . and . callFake ( ( ) => { } ) ;
941968 user = new Parse . User ( ) ;
942969 await user . save ( { authData : { modernAdapter : { id : 'modernAdapter' } } } ) ;
943970 const user2 = new Parse . User ( ) ;
0 commit comments