@@ -14,7 +14,11 @@ import {
1414 useMockedApis ,
1515} from 'mock-builders' ;
1616
17- import { getDisplayImage , getDisplayTitle , getLatestMessagePreview } from '../utils' ;
17+ import {
18+ getChannelDisplayImage ,
19+ getGroupChannelDisplayInfo ,
20+ getLatestMessagePreview ,
21+ } from '../utils' ;
1822import { generateStaticLocationResponse } from '../../../mock-builders' ;
1923import { render } from '@testing-library/react' ;
2024
@@ -107,7 +111,7 @@ describe('ChannelPreview utils', () => {
107111 generateChannel ( { channel : { name } } ) ,
108112 ) ;
109113
110- expect ( getDisplayTitle ( channel , chatClient . user ) ) . toBe ( name ) ;
114+ expect ( channel . getDisplayName ( ) ) . toBe ( name ) ;
111115 } ) ;
112116
113117 it ( 'should return name of other member of conversation if only 2 members and channel name doesnot exist' , async ( ) => {
@@ -120,7 +124,7 @@ describe('ChannelPreview utils', () => {
120124 ] ,
121125 } ) ,
122126 ) ;
123- expect ( getDisplayTitle ( channel , chatClient . user ) ) . toBe ( otherUser . name ) ;
127+ expect ( channel . getDisplayName ( ) ) . toBe ( otherUser . name ) ;
124128 } ) ;
125129 } ) ;
126130
@@ -131,10 +135,10 @@ describe('ChannelPreview utils', () => {
131135 generateChannel ( { channel : { image } } ) ,
132136 ) ;
133137
134- expect ( getDisplayImage ( channel , chatClient . user ) ) . toBe ( image ) ;
138+ expect ( channel . getDisplayImage ( ) ) . toBe ( image ) ;
135139 } ) ;
136140
137- it ( 'should return picture of other member of conversation if only 2 members and channel name doesnot exist ' , async ( ) => {
141+ it ( 'should return null when no image is available (image fallback removed) ' , async ( ) => {
138142 const otherUser = generateUser ( ) ;
139143 const channel = await getQueriedChannelInstance (
140144 generateChannel ( {
@@ -144,7 +148,74 @@ describe('ChannelPreview utils', () => {
144148 ] ,
145149 } ) ,
146150 ) ;
147- expect ( getDisplayImage ( channel , chatClient . user ) ) . toBe ( otherUser . image ) ;
151+ // getDisplayImage no longer falls back to member image, only channel.data.image
152+ expect ( channel . getDisplayImage ( ) ) . toBeNull ( ) ;
153+ } ) ;
154+ } ) ;
155+
156+ describe ( 'getChannelDisplayImage (utils)' , ( ) => {
157+ it ( 'returns channel.data.image when set' , async ( ) => {
158+ const image = nanoid ( ) ;
159+ const channel = await getQueriedChannelInstance (
160+ generateChannel ( { channel : { image } } ) ,
161+ ) ;
162+ expect ( getChannelDisplayImage ( channel ) ) . toBe ( image ) ;
163+ } ) ;
164+
165+ it ( 'returns other member user.image for DM (2 members) when channel has no image' , async ( ) => {
166+ const otherUser = generateUser ( { image : 'https://other-avatar.jpg' } ) ;
167+ const channel = await getQueriedChannelInstance (
168+ generateChannel ( {
169+ members : [
170+ generateMember ( { user : otherUser } ) ,
171+ generateMember ( { user : clientUser } ) ,
172+ ] ,
173+ } ) ,
174+ ) ;
175+ expect ( getChannelDisplayImage ( channel ) ) . toBe ( 'https://other-avatar.jpg' ) ;
176+ } ) ;
177+
178+ it ( 'returns undefined for DM when other member has no image' , async ( ) => {
179+ const otherUser = generateUser ( { image : undefined } ) ;
180+ const channel = await getQueriedChannelInstance (
181+ generateChannel ( {
182+ members : [
183+ generateMember ( { user : otherUser } ) ,
184+ generateMember ( { user : clientUser } ) ,
185+ ] ,
186+ } ) ,
187+ ) ;
188+ expect ( getChannelDisplayImage ( channel ) ) . toBeUndefined ( ) ;
189+ } ) ;
190+ } ) ;
191+
192+ describe ( 'getGroupChannelDisplayInfo (utils)' , ( ) => {
193+ it ( 'returns undefined for 2 or fewer members' , async ( ) => {
194+ const channel = await getQueriedChannelInstance (
195+ generateChannel ( {
196+ members : [
197+ generateMember ( { user : generateUser ( ) } ) ,
198+ generateMember ( { user : clientUser } ) ,
199+ ] ,
200+ } ) ,
201+ ) ;
202+ expect ( getGroupChannelDisplayInfo ( channel ) ) . toBeUndefined ( ) ;
203+ } ) ;
204+
205+ it ( 'returns members and overflowCount for 3+ members' , async ( ) => {
206+ const channel = await getQueriedChannelInstance (
207+ generateChannel ( {
208+ members : [
209+ generateMember ( { user : generateUser ( { image : 'a.jpg' , name : 'A' } ) } ) ,
210+ generateMember ( { user : generateUser ( { image : 'b.jpg' , name : 'B' } ) } ) ,
211+ generateMember ( { user : clientUser } ) ,
212+ ] ,
213+ } ) ,
214+ ) ;
215+ const info = getGroupChannelDisplayInfo ( channel ) ;
216+ expect ( info ) . toBeDefined ( ) ;
217+ expect ( info . members . length ) . toBeGreaterThanOrEqual ( 2 ) ;
218+ expect ( info . members . every ( ( m ) => 'imageUrl' in m && 'userName' in m ) ) . toBe ( true ) ;
148219 } ) ;
149220 } ) ;
150221} ) ;
0 commit comments