@@ -37,11 +37,13 @@ import {
37
37
_verifyPhoneNumber ,
38
38
linkWithPhoneNumber ,
39
39
reauthenticateWithPhoneNumber ,
40
- signInWithPhoneNumber
40
+ signInWithPhoneNumber ,
41
+ updatePhoneNumber
41
42
} from './phone' ;
42
43
import { multiFactor , MultiFactorUser } from '../../mfa/mfa_user' ;
43
44
import { MultiFactorSession } from '../../mfa/mfa_session' ;
44
45
import { MultiFactorInfo } from '../../mfa/mfa_info' ;
46
+ import { PhoneAuthCredential } from '../credentials/phone' ;
45
47
46
48
use ( chaiAsPromised ) ;
47
49
use ( sinonChai ) ;
@@ -412,4 +414,47 @@ describe('core/strategies/phone', () => {
412
414
expect ( verifier . _reset ) . to . have . been . called ;
413
415
} ) ;
414
416
} ) ;
417
+
418
+ describe ( "updatePhoneNumber" , ( ) => {
419
+ let user : User ;
420
+ let reloadMock : fetch . Route ;
421
+ let signInMock : fetch . Route ;
422
+ let credential : PhoneAuthCredential ;
423
+
424
+ beforeEach ( ( ) => {
425
+ reloadMock = mockEndpoint ( Endpoint . GET_ACCOUNT_INFO , {
426
+ users : [ { uid : 'uid' } ]
427
+ } ) ;
428
+ signInMock = mockEndpoint ( Endpoint . SIGN_IN_WITH_PHONE_NUMBER , {
429
+ idToken : 'new-access-token'
430
+ } ) ;
431
+ credential = PhoneAuthCredential . _fromVerification (
432
+ 'session-info' ,
433
+ 'code'
434
+ ) ;
435
+
436
+ user = testUser ( auth , 'uid' , 'email' , true ) ;
437
+ } ) ;
438
+
439
+ it ( 'should link the phone number to the user' , async ( ) => {
440
+ await updatePhoneNumber ( user , credential ) ;
441
+ console . log ( JSON . stringify ( signInMock . calls [ 0 ] . request ) ) ;
442
+ expect ( signInMock . calls [ 0 ] . request ) . to . eql ( {
443
+ idToken : 'access-token' ,
444
+ sessionInfo : 'session-info' ,
445
+ code : 'code'
446
+ } ) ;
447
+ } ) ;
448
+
449
+ it ( 'should update the access token' , async ( ) => {
450
+ await updatePhoneNumber ( user , credential ) ;
451
+ const idToken = await user . getIdToken ( ) ;
452
+ expect ( idToken ) . to . eq ( 'new-access-token' ) ;
453
+ } ) ;
454
+
455
+ it ( 'should reload the user' , async ( ) => {
456
+ await updatePhoneNumber ( user , credential ) ;
457
+ expect ( reloadMock . calls . length ) . to . eq ( 1 ) ;
458
+ } ) ;
459
+ } ) ;
415
460
} ) ;
0 commit comments