@@ -3432,6 +3432,60 @@ describe('Parse.User testing', () => {
3432
3432
} ) ;
3433
3433
} ) ;
3434
3434
3435
+ it ( 'allows login when providing email as username' , ( done ) => {
3436
+ const user = new Parse . User ( ) ;
3437
+ user . save ( {
3438
+ username : 'yolo' ,
3439
+ password : 'yolopass' ,
3440
+
3441
+ } ) . then ( ( ) => {
3442
+ return Parse . User . logIn ( '[email protected] ' , 'yolopass' ) ;
3443
+ } ) . then ( ( user ) => {
3444
+ expect ( user . get ( 'username' ) ) . toBe ( 'yolo' ) ;
3445
+ } ) . then ( done ) . catch ( done . fail ) ;
3446
+ } ) ;
3447
+
3448
+ it ( 'handles properly when 2 users share username / email pairs' , ( done ) => {
3449
+ const user = new Parse . User ( {
3450
+
3451
+ password : 'yolopass' ,
3452
+
3453
+ } ) ;
3454
+ const user2 = new Parse . User ( {
3455
+
3456
+
3457
+ password : 'yolopass2' // different passwords
3458
+ } ) ;
3459
+
3460
+ Parse . Object . saveAll ( [ user , user2 ] ) . then ( ( ) => {
3461
+ return Parse . User . logIn ( '[email protected] ' , 'yolopass' ) ;
3462
+ } ) . then ( ( user ) => {
3463
+ // the username takes precedence over the email,
3464
+ // so we get the user with username as passed in
3465
+ expect ( user . get ( 'username' ) ) . toBe ( '[email protected] ' ) ;
3466
+ } ) . then ( done ) . catch ( done . fail ) ;
3467
+ } ) ;
3468
+
3469
+ it ( 'handles properly when 2 users share username / email pairs, counterpart' , ( done ) => {
3470
+ const user = new Parse . User ( {
3471
+
3472
+ password : 'yolopass' ,
3473
+
3474
+ } ) ;
3475
+ const user2 = new Parse . User ( {
3476
+
3477
+
3478
+ password : 'yolopass2' // different passwords
3479
+ } ) ;
3480
+
3481
+ Parse . Object . saveAll ( [ user , user2 ] ) . then ( ( ) => {
3482
+ return Parse . User . logIn ( '[email protected] ' , 'yolopass2' ) ;
3483
+ } ) . then ( done . fail ) . catch ( ( err ) => {
3484
+ expect ( err . message ) . toEqual ( 'Invalid username/password.' ) ;
3485
+ done ( ) ;
3486
+ } ) ;
3487
+ } ) ;
3488
+
3435
3489
it ( 'fails to login when password is not provided' , ( done ) => {
3436
3490
const user = new Parse . User ( ) ;
3437
3491
user . save ( {
0 commit comments