From e23f992b26baaa4ce0e0326a7be7de7530a3c540 Mon Sep 17 00:00:00 2001 From: Scott Bishel Date: Fri, 21 Jun 2024 09:19:56 -0600 Subject: [PATCH] fix for group member count using wrong property (#27201) Co-authored-by: Mattermost Build --- .../src/reducers/entities/channels.test.js | 95 +++++++++++++++++++ .../src/reducers/entities/channels.ts | 2 +- 2 files changed, 96 insertions(+), 1 deletion(-) diff --git a/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/channels.test.js b/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/channels.test.js index cacbcedd68..5db419036b 100644 --- a/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/channels.test.js +++ b/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/channels.test.js @@ -785,6 +785,101 @@ describe('channels', () => { }); }); + describe('RECEIVED_CHANNEL_MEMBER_COUNTS_FROM_GROUPS_LIST', () => { + test('Should add new channel member counts', () => { + const state = deepFreeze(channelsReducer({ + channels: { + channel1: { + id: 'channel1', + team_id: 'team', + }, + }, + }, {})); + + const nextState = channelsReducer(state, { + type: ChannelTypes.RECEIVED_CHANNEL_MEMBER_COUNTS_FROM_GROUPS_LIST, + sync: true, + channelId: 'channel1', + teamId: 'team', + data: [ + { + id: 'group-1', + member_count: 1, + channel_member_timezones_count: 1, + }, + { + id: 'group-2', + member_count: 999, + channel_member_timezones_count: 131, + }, + ], + }); + + console.log(nextState.channelMemberCountsByGroup.channel1); + + expect(nextState.channelMemberCountsByGroup.channel1['group-1'].channel_member_count).toEqual(1); + expect(nextState.channelMemberCountsByGroup.channel1['group-1'].channel_member_timezones_count).toEqual(1); + + expect(nextState.channelMemberCountsByGroup.channel1['group-2'].channel_member_count).toEqual(999); + expect(nextState.channelMemberCountsByGroup.channel1['group-2'].channel_member_timezones_count).toEqual(131); + }); + test('Should replace existing channel member counts', () => { + const state = deepFreeze(channelsReducer({ + channels: { + channel1: { + id: 'channel1', + team_id: 'team', + }, + }, + channelMemberCountsByGroup: { + 'group-1': { + id: 'group-1', + member_count: 1, + channel_member_timezones_count: 1, + }, + 'group-2': { + id: 'group-2', + member_count: 999, + channel_member_timezones_count: 131, + }, + }, + }, {})); + + const nextState = channelsReducer(state, { + type: ChannelTypes.RECEIVED_CHANNEL_MEMBER_COUNTS_FROM_GROUPS_LIST, + sync: true, + channelId: 'channel1', + teamId: 'team', + data: [ + { + id: 'group-1', + member_count: 5, + channel_member_timezones_count: 2, + }, + { + id: 'group-2', + member_count: 1002, + channel_member_timezones_count: 133, + }, + { + id: 'group-3', + member_count: 12, + channel_member_timezones_count: 13, + }, + ], + }); + + expect(nextState.channelMemberCountsByGroup.channel1['group-1'].channel_member_count).toEqual(5); + expect(nextState.channelMemberCountsByGroup.channel1['group-1'].channel_member_timezones_count).toEqual(2); + + expect(nextState.channelMemberCountsByGroup.channel1['group-2'].channel_member_count).toEqual(1002); + expect(nextState.channelMemberCountsByGroup.channel1['group-2'].channel_member_timezones_count).toEqual(133); + + expect(nextState.channelMemberCountsByGroup.channel1['group-3'].channel_member_count).toEqual(12); + expect(nextState.channelMemberCountsByGroup.channel1['group-3'].channel_member_timezones_count).toEqual(13); + }); + }); + describe('Data Retention Channels', () => { test('RECEIVED_DATA_RETENTION_CUSTOM_POLICY_CHANNELS', () => { const state = deepFreeze(channelsReducer({ diff --git a/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/channels.ts b/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/channels.ts index eba1d227d2..aaf558daab 100644 --- a/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/channels.ts +++ b/webapp/channels/src/packages/mattermost-redux/src/reducers/entities/channels.ts @@ -858,7 +858,7 @@ export function channelMemberCountsByGroup(state: any = {}, action: AnyAction) { action.data.forEach((group: Group) => { memberCountsByGroup[group.id] = { group_id: group.id, - channel_member_count: group.channel_member_count || 0, + channel_member_count: group.member_count || 0, channel_member_timezones_count: group.channel_member_timezones_count || 0, }; });