@@ -940,6 +940,74 @@ describe('ParseUser', () => {
940
940
} ) ;
941
941
} ) ;
942
942
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
+
943
1011
it ( 'can retreive a user with sessionToken (me)' , async ( ) => {
944
1012
ParseUser . disableUnsafeCurrentUser ( ) ;
945
1013
ParseUser . _clearCache ( ) ;
0 commit comments