2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-05 08:59:27 +08:00

FIX: Data loss on update of single user_field.

https://meta.discourse.org/t/api-data-loss-caused-by-changed-behaviour-of-custom-user-field-update/74990
This commit is contained in:
Philipp Daniels 2017-12-16 03:16:22 +01:00 committed by Guo Xiang Tan
parent ae75c19f4b
commit 6a2bce1931
3 changed files with 26 additions and 1 deletions

View file

@ -1533,6 +1533,27 @@ describe UsersController do
expect(user.user_fields[user_field.id.to_s].size).to eq(UserField.max_length)
end
it "should retain existing user fields" do
put :update, params: {
username: user.username, name: 'Jim Tom', user_fields: { user_field.id.to_s => 'happy', optional_field.id.to_s => 'feet' }
}, format: :json
expect(response).to be_success
expect(user.user_fields[user_field.id.to_s]).to eq('happy')
expect(user.user_fields[optional_field.id.to_s]).to eq('feet')
put :update, params: {
username: user.username, name: 'Jim Tom', user_fields: { user_field.id.to_s => 'sad' }
}, format: :json
expect(response).to be_success
user.reload
expect(user.user_fields[user_field.id.to_s]).to eq('sad')
expect(user.user_fields[optional_field.id.to_s]).to eq('feet')
end
end
context "uneditable field" do