[MM-57121] Remove remote_id if necessary when merging user profile (#26826)

This commit is contained in:
Julien Tant 2024-04-25 08:45:50 -07:00 committed by GitHub
parent 0948ce1776
commit 173ff52e18
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 0 deletions

View File

@ -746,6 +746,26 @@ describe('Reducers.users', () => {
});
});
test(`should remove remote_id when not set anymore (${actionType})`, () => {
const user1 = TestHelper.getUserMock({id: 'user_id1', remote_id: 'abcdef'});
const user1WithoutRemoteId = TestHelper.getUserMock({id: 'user_id1'});
const state = deepFreezeAndThrowOnMutation({
profiles: {
[user1.id]: user1,
},
});
const nextState = reducer(state, {
type: actionType,
data: user1WithoutRemoteId,
});
expect(nextState.profiles).toEqual({
[user1.id]: user1WithoutRemoteId,
});
});
test(`should not overwrite unsanitized data with sanitized data (${actionType})`, () => {
const user1 = TestHelper.getUserMock({
id: 'user_id1',

View File

@ -169,6 +169,11 @@ function receiveUserProfile(state: IDMappedObjects<UserProfile>, received: UserP
...received,
};
// If there was a remote_id but not anymore, remove it
if (existing.remote_id && !received.remote_id) {
delete merged.remote_id;
}
// MM-53377:
// For non-admin users, certain API responses don't return details for the current user that would be sanitized
// out for others. This currently includes: