Skip to content

Commit c9513f2

Browse files
committed
fix: channel guard queries and improve member tests
1 parent fb624cd commit c9513f2

File tree

3 files changed

+28
-6
lines changed

3 files changed

+28
-6
lines changed

package/src/__tests__/offline-support/offline-feature.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -689,22 +689,28 @@ export const Generic = () => {
689689

690690
it('should add a member to DB when a new member is added to channel', async () => {
691691
useMockedApis(chatClient, [queryChannelsApi(channels)]);
692-
693692
renderComponent();
693+
694694
act(() => dispatchConnectionChangedEvent(chatClient));
695695
await waitFor(() => expect(screen.getByTestId('channel-list')).toBeTruthy());
696-
697696
const targetChannel = channels[getRandomInt(0, channels.length - 1)];
697+
698+
const oldMemberCount = targetChannel.channel.member_count;
698699
const newMember = generateMember();
699700
act(() => dispatchMemberAddedEvent(chatClient, newMember, targetChannel.channel));
700701

701702
await waitFor(async () => {
702703
const membersRows = await BetterSqlite.selectFromTable('members');
704+
const channelRows = await BetterSqlite.selectFromTable('channels');
703705
const matchingMembersRows = membersRows.filter(
704706
(m) => m.cid === targetChannel.channel.cid && m.userId === newMember.user_id,
705707
);
708+
const targetChannelFromDb = channelRows.filter(
709+
(c) => c.cid === targetChannel.channel.cid,
710+
)[0];
706711

707712
expect(matchingMembersRows.length).toBe(1);
713+
expect(targetChannelFromDb.memberCount).toBe(oldMemberCount + 1);
708714
});
709715
});
710716

@@ -717,15 +723,21 @@ export const Generic = () => {
717723

718724
const targetChannel = channels[getRandomInt(0, channels.length - 1)];
719725
const targetMember = targetChannel.members[getRandomInt(0, targetChannel.members.length - 1)];
726+
const oldMemberCount = targetChannel.channel.member_count;
720727
act(() => dispatchMemberRemovedEvent(chatClient, targetMember, targetChannel.channel));
721728

722729
await waitFor(async () => {
723730
const membersRows = await BetterSqlite.selectFromTable('members');
731+
const channelRows = await BetterSqlite.selectFromTable('channels');
724732
const matchingMembersRows = membersRows.filter(
725733
(m) => m.cid === targetChannel.channel.cid && m.userId === targetMember.user_id,
726734
);
735+
const targetChannelFromDb = channelRows.filter(
736+
(c) => c.cid === targetChannel.channel.cid,
737+
)[0];
727738

728739
expect(matchingMembersRows.length).toBe(0);
740+
expect(targetChannelFromDb.memberCount).toBe(oldMemberCount - 1);
729741
});
730742
});
731743

package/src/mock-builders/event/memberAdded.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export default (client, member, channel = {}) => {
22
client.dispatchEvent({
3-
channel,
3+
channel_id: channel.id,
4+
channel_type: channel.type,
45
cid: channel.cid,
56
member,
67
type: 'member.added',

package/src/mock-builders/generator/channel.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,18 @@ export const generateChannelResponse = (
9797
channel?: Record<string, any>;
9898
id?: string;
9999
messages?: Record<string, any>[];
100+
members?: Record<string, any>[];
100101
type?: string;
101-
} = { channel: {}, id: uuidv4(), messages: [], type: 'messaging' },
102+
} = { channel: {}, id: uuidv4(), members: [], messages: [], type: 'messaging' },
102103
) => {
103-
const { channel = {}, id = uuidv4(), messages = [], type = 'messaging', ...rest } = customValues;
104+
const {
105+
channel = {},
106+
id = uuidv4(),
107+
messages = [],
108+
members = [],
109+
type = 'messaging',
110+
...rest
111+
} = customValues;
104112

105113
const defaults = getChannelDefaults();
106114
return {
@@ -110,11 +118,12 @@ export const generateChannelResponse = (
110118
cid: `${type}:${id}`,
111119
...channel,
112120
id,
121+
member_count: members.length,
113122
type,
114123
user: generateUser(),
115124
},
116125
},
117-
members: [],
126+
members,
118127
messages,
119128
...rest,
120129
};

0 commit comments

Comments
 (0)