@@ -21,7 +21,7 @@ import {
2121import { act } from '@testing-library/react' ;
2222import { dispatchMessageDeliveredEvent } from '../../../../mock-builders/event/messageDelivered' ;
2323
24- const userA = generateUser ( ) ;
24+ const userA = generateUser ( { id : 'own-user' } ) ;
2525const userB = generateUser ( ) ;
2626const getClientAndChannel = async ( channelData = { } , user = userA ) => {
2727 const members = [ generateMember ( { user : userA } ) , generateMember ( { user : userB } ) ] ;
@@ -79,6 +79,42 @@ const lastMessageCreated = (messages) => [
7979 } ,
8080] ;
8181
82+ const lastDeliveredOnlyToMe = ( messages ) => [
83+ {
84+ last_delivered_at : messages [ 1 ] . created_at . toISOString ( ) ,
85+ last_delivered_message_id : messages [ 1 ] . id ,
86+ last_read : messages [ 0 ] . created_at . toISOString ( ) ,
87+ last_read_message_id : messages [ 0 ] ,
88+ unread_messages : 0 ,
89+ user : userA ,
90+ } ,
91+ {
92+ last_delivered_at : messages [ 0 ] . created_at . toISOString ( ) ,
93+ last_delivered_message_id : messages [ 0 ] . id ,
94+ last_read : messages [ 0 ] . created_at . toISOString ( ) ,
95+ unread_messages : 1 ,
96+ user : userB ,
97+ } ,
98+ ] ;
99+
100+ const lastReadOnlyByMe = ( messages ) => [
101+ {
102+ last_delivered_at : messages [ 1 ] . created_at . toISOString ( ) ,
103+ last_delivered_message_id : messages [ 1 ] . id ,
104+ last_read : messages [ 1 ] . created_at . toISOString ( ) ,
105+ last_read_message_id : messages [ 1 ] ,
106+ unread_messages : 0 ,
107+ user : userA ,
108+ } ,
109+ {
110+ last_delivered_at : messages [ 0 ] . created_at . toISOString ( ) ,
111+ last_delivered_message_id : messages [ 0 ] . id ,
112+ last_read : messages [ 0 ] . created_at . toISOString ( ) ,
113+ unread_messages : 1 ,
114+ user : userB ,
115+ } ,
116+ ] ;
117+
82118const lastMessageDelivered = ( messages ) => [
83119 {
84120 last_delivered_at : messages [ 0 ] . created_at . toISOString ( ) ,
@@ -162,14 +198,30 @@ describe('Message delivery status', () => {
162198 expect ( result . current . messageDeliveryStatus ) . toBeUndefined ( ) ;
163199 } ) ;
164200
165- it ( 'is "created " if the last message was not delivered neither read by any other member' , async ( ) => {
201+ it ( 'is "sent " if the last message was not delivered neither read by any other member' , async ( ) => {
166202 const { lastMessage, messages } = ownLastMessage ( ) ;
167203 const read = lastMessageCreated ( messages ) ;
168204 const { channel, client } = await getClientAndChannel ( { messages, read } ) ;
169205 const { result } = renderComponent ( { channel, client, lastMessage } ) ;
170206 expect ( result . current . messageDeliveryStatus ) . toBe ( MessageDeliveryStatus . SENT ) ;
171207 } ) ;
172208
209+ it ( 'is "sent" if the last message was delivered only to own user' , async ( ) => {
210+ const { lastMessage, messages } = ownLastMessage ( ) ;
211+ const read = lastDeliveredOnlyToMe ( messages ) ;
212+ const { channel, client } = await getClientAndChannel ( { messages, read } ) ;
213+ const { result } = renderComponent ( { channel, client, lastMessage } ) ;
214+ expect ( result . current . messageDeliveryStatus ) . toBe ( MessageDeliveryStatus . SENT ) ;
215+ } ) ;
216+
217+ it ( 'is "sent" if the last message was read only by own user' , async ( ) => {
218+ const { lastMessage, messages } = ownLastMessage ( ) ;
219+ const read = lastReadOnlyByMe ( messages ) ;
220+ const { channel, client } = await getClientAndChannel ( { messages, read } ) ;
221+ const { result } = renderComponent ( { channel, client, lastMessage } ) ;
222+ expect ( result . current . messageDeliveryStatus ) . toBe ( MessageDeliveryStatus . SENT ) ;
223+ } ) ;
224+
173225 it ( 'is "delivered" if the last message in channel was delivered but not read by any member other than me' , async ( ) => {
174226 const { lastMessage, messages } = ownLastMessage ( ) ;
175227 const read = lastMessageDelivered ( messages ) ;
0 commit comments