@@ -619,6 +619,30 @@ describe('Parse User', () => {
619
619
expect ( user . _isLinked ( provider ) ) . toBe ( false ) ;
620
620
} ) ;
621
621
622
+ it ( 'linked account can login with authData' , async ( ) => {
623
+ const user = new Parse . User ( ) ;
624
+ user . setUsername ( 'Alice' ) ;
625
+ user . setPassword ( 'sekrit' ) ;
626
+ await user . save ( null , { useMasterKey : true } ) ;
627
+ await user . _linkWith ( provider . getAuthType ( ) , provider . getAuthData ( ) , { useMasterKey : true } ) ;
628
+ expect ( user . _isLinked ( provider ) ) . toBe ( true ) ;
629
+ expect ( user . authenticated ( ) ) . toBeFalsy ( ) ;
630
+ Parse . User . enableUnsafeCurrentUser ( ) ;
631
+ const loggedIn = await Parse . User . logInWith ( provider . getAuthType ( ) , provider . getAuthData ( ) ) ;
632
+ expect ( loggedIn . authenticated ( ) ) . toBeTruthy ( ) ;
633
+ } ) ;
634
+
635
+ it ( 'linking un-authenticated user without master key will throw' , async ( done ) => {
636
+ const user = new Parse . User ( ) ;
637
+ user . setUsername ( 'Alice' ) ;
638
+ user . setPassword ( 'sekrit' ) ;
639
+ await user . save ( null , { useMasterKey : true } ) ;
640
+ user . _linkWith ( provider . getAuthType ( ) , provider . getAuthData ( ) )
641
+ . then ( ( ) => done . fail ( 'should fail' ) )
642
+ . catch ( e => expect ( e . message ) . toBe ( `Cannot modify user ${ user . id } .` ) )
643
+ . then ( done ) ;
644
+ } ) ;
645
+
622
646
it ( 'can link with custom auth' , async ( ) => {
623
647
Parse . User . enableUnsafeCurrentUser ( ) ;
624
648
const provider = {
0 commit comments