Skip to content

Commit ac7d960

Browse files
authored
fix(user): update sessionToken after call updatePassword (#603)
close #563
1 parent 7b279b2 commit ac7d960

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

src/user.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,10 @@ module.exports = function(AV) {
781781
new_password: newPassword,
782782
};
783783
var request = AVRequest(route, null, null, 'PUT', params, options);
784-
return request;
784+
return request.then(resp => {
785+
this._finishFetch(this.parse(resp));
786+
return this._handleSaveResult(true).then(() => resp);
787+
});
785788
},
786789

787790
/**

test/user.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,25 @@ describe('User', function() {
145145
it('should update password', function() {
146146
return AV.User.logIn(username, password)
147147
.then(function(user) {
148-
return user.updatePassword(password, 'new pass');
148+
return user.updatePassword(password, 'new pass').then(resp => {
149+
let getStoredUser = function() {
150+
let origin = {
151+
_currentUser: AV.User._currentUser,
152+
_currentUserMatchesDisk: AV.User._currentUserMatchesDisk,
153+
};
154+
AV.User._currentUser = undefined;
155+
AV.User._currentUserMatchesDisk = false;
156+
let storedUser = AV.User.current();
157+
Object.assign(AV.User, origin);
158+
return storedUser;
159+
};
160+
161+
[user, AV.User.current(), getStoredUser()].forEach(user =>
162+
user.getSessionToken().should.be.eql(resp.sessionToken)
163+
);
164+
165+
return resp;
166+
});
149167
})
150168
.then(function() {
151169
return AV.User.logIn(username, 'new pass');

0 commit comments

Comments
 (0)