Skip to content

Commit 194d821

Browse files
committed
tests: add tests
1 parent 1d914f9 commit 194d821

File tree

2 files changed

+84
-1
lines changed

2 files changed

+84
-1
lines changed

package/src/components/Channel/__tests__/useMessageListPagination.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ describe('useMessageListPagination', () => {
464464
},
465465
];
466466

467-
it.each(testCases)(`%name`, async (testCase) => {
467+
it.each(testCases)('$name', async (testCase) => {
468468
// Setup channel state
469469
const messages = testCase.initialMessages;
470470
channel.state = {

package/src/components/MessageList/__tests__/MessageList.test.js

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,89 @@ describe('MessageList', () => {
382382
expect(() => screen.getByText(latestMessageText)).toThrow();
383383
});
384384
});
385+
386+
it("should render the UnreadMessagesIndicator when there's unread messages", async () => {
387+
const user1 = generateUser();
388+
const user2 = generateUser();
389+
const messages = Array.from({ length: 10 }, (_, i) =>
390+
generateMessage({ id: `${i}`, text: `message-${i}` }),
391+
);
392+
const mockedChannel = generateChannelResponse({
393+
members: [generateMember({ user: user1 }), generateMember({ user: user2 })],
394+
});
395+
396+
const chatClient = await getTestClientWithUser({ id: user1.id });
397+
useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
398+
const channel = chatClient.channel('messaging', mockedChannel.id);
399+
await channel.watch();
400+
401+
const channelUnreadState = {
402+
unread_messages: 5,
403+
last_read: new Date(),
404+
last_read_message_id: '5',
405+
};
406+
407+
channel.state = {
408+
...channelInitialState,
409+
messages,
410+
latestMessages: [],
411+
};
412+
413+
const { queryByLabelText } = render(
414+
<OverlayProvider>
415+
<Chat client={chatClient}>
416+
<Channel channel={channel}>
417+
<MessageList channelUnreadState={channelUnreadState} />
418+
</Channel>
419+
</Chat>
420+
</OverlayProvider>,
421+
);
422+
423+
await waitFor(() => {
424+
expect(queryByLabelText('Inline unread indicator')).toBeTruthy();
425+
});
426+
});
427+
428+
it("should not render the UnreadMessagesIndicator when there's no unread messages", async () => {
429+
const user1 = generateUser();
430+
const user2 = generateUser();
431+
const messages = Array.from({ length: 10 }, (_, i) =>
432+
generateMessage({ id: `${i}`, text: `message-${i}` }),
433+
);
434+
const mockedChannel = generateChannelResponse({
435+
members: [generateMember({ user: user1 }), generateMember({ user: user2 })],
436+
});
437+
438+
const chatClient = await getTestClientWithUser({ id: user1.id });
439+
useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
440+
const channel = chatClient.channel('messaging', mockedChannel.id);
441+
await channel.watch();
442+
443+
const channelUnreadState = {
444+
unread_messages: 0,
445+
last_read: new Date(),
446+
};
447+
448+
channel.state = {
449+
...channelInitialState,
450+
messages,
451+
latestMessages: [],
452+
};
453+
454+
const { queryByLabelText } = render(
455+
<OverlayProvider>
456+
<Chat client={chatClient}>
457+
<Channel channel={channel}>
458+
<MessageList channelUnreadState={channelUnreadState} />
459+
</Channel>
460+
</Chat>
461+
</OverlayProvider>,
462+
);
463+
464+
await waitFor(() => {
465+
expect(queryByLabelText('Inline unread indicator')).not.toBeTruthy();
466+
});
467+
});
385468
});
386469

387470
describe('MessageList pagination', () => {

0 commit comments

Comments
 (0)