@@ -940,6 +940,74 @@ describe('ParseUser', () => {
940940 } ) ;
941941 } ) ;
942942
943+ it ( 'user who logs out, deletes attribute, then logs back in has correct attributes' , done => {
944+ ParseUser . enableUnsafeCurrentUser ( ) ;
945+ ParseUser . _clearCache ( ) ;
946+ CoreManager . setRESTController ( {
947+ request ( method , path ) {
948+ expect ( path ) . toBe ( 'login' ) ;
949+
950+ return Promise . resolve (
951+ {
952+ objectId : 'uid2' ,
953+ username : 'username' ,
954+ sessionToken : '123abc' ,
955+ fieldToBeDeleted : 'This field is returned in the first login but not the second' ,
956+ } ,
957+ 200
958+ ) ;
959+ } ,
960+ ajax ( ) { } ,
961+ } ) ;
962+
963+ ParseUser . logIn ( 'username' , 'password' )
964+ . then ( u => {
965+ expect ( u . isCurrent ( ) ) . toBe ( true ) ;
966+ expect ( u . id ) . toBe ( 'uid2' ) ;
967+ expect ( u . get ( 'username' ) ) . toBe ( 'username' ) ;
968+ expect ( u . get ( 'fieldToBeDeleted' ) ) . toBe (
969+ 'This field is returned in the first login but not the second'
970+ ) ;
971+ CoreManager . setRESTController ( {
972+ request ( ) {
973+ return Promise . resolve ( { } , 200 ) ;
974+ } ,
975+ ajax ( ) { } ,
976+ } ) ;
977+ return ParseUser . logOut ( ) ;
978+ } )
979+ . then ( ( ) => {
980+ expect ( ParseUser . current ( ) ) . toBe ( null ) ;
981+ } )
982+ . then ( ( ) => {
983+ CoreManager . setRESTController ( {
984+ request ( method , path ) {
985+ expect ( path ) . toBe ( 'login' ) ;
986+
987+ return Promise . resolve (
988+ {
989+ objectId : 'uid2' ,
990+ username : 'username' ,
991+ sessionToken : '123abc' ,
992+ // We assume fieldToBeDeleted was deleted while user was logged out
993+ } ,
994+ 200
995+ ) ;
996+ } ,
997+ ajax ( ) { } ,
998+ } ) ;
999+ return ParseUser . logIn ( 'username' , 'password' ) ;
1000+ } )
1001+ . then ( u => {
1002+ expect ( u . isCurrent ( ) ) . toBe ( true ) ;
1003+ expect ( u . id ) . toBe ( 'uid2' ) ;
1004+ expect ( u . get ( 'username' ) ) . toBe ( 'username' ) ;
1005+ expect ( u . get ( 'fieldToBeDeleted' ) ) . toBe ( undefined ) ; // Failing test
1006+
1007+ done ( ) ;
1008+ } ) ;
1009+ } ) ;
1010+
9431011 it ( 'can retreive a user with sessionToken (me)' , async ( ) => {
9441012 ParseUser . disableUnsafeCurrentUser ( ) ;
9451013 ParseUser . _clearCache ( ) ;
0 commit comments