@@ -69,7 +69,9 @@ describe('useMessages hook', () => {
6969
7070 beforeEach ( ( ) => {
7171 vi . clearAllMocks ( ) ;
72- hook = renderHook ( ( ) => useMessages ( { sendMessageToParent } ) ) ;
72+ hook = renderHook ( ( ) =>
73+ useMessages ( { messageHistoryLimit : 100 , sendMessageToParent } ) ,
74+ ) ;
7375 userMessage = {
7476 type : 'user_message' ,
7577 message : {
@@ -121,53 +123,82 @@ describe('useMessages hook', () => {
121123
122124 it ( 'should add user messages to `messages` immediately' , ( ) => {
123125 act ( ( ) => {
124- hook . result . current . onMessage ( userMessage ) ;
126+ hook . result . current . onMessage ( {
127+ ...userMessage ,
128+ receivedAt : new Date ( ) ,
129+ } ) ;
125130 } ) ;
126131
127- expect ( hook . result . current . lastUserMessage ) . toEqual ( userMessage ) ;
128- expect ( hook . result . current . messages ) . toContainEqual ( userMessage ) ;
132+ expect ( hook . result . current . lastUserMessage ) . toMatchObject (
133+ expect . objectContaining ( userMessage ) ,
134+ ) ;
135+ expect ( hook . result . current . messages ) . toMatchObject (
136+ expect . arrayContaining ( [ expect . objectContaining ( userMessage ) ] ) ,
137+ ) ;
129138 } ) ;
130139
131140 it ( 'should add voice messages to the voice message map' , ( ) => {
132141 act ( ( ) => {
133- hook . result . current . onMessage ( agentMessage ) ;
142+ hook . result . current . onMessage ( {
143+ ...agentMessage ,
144+ receivedAt : new Date ( ) ,
145+ } ) ;
134146 } ) ;
135147
136148 expect ( hook . result . current . lastVoiceMessage ) . toBeNull ( ) ;
137- expect ( hook . result . current . messages ) . not . toContainEqual ( agentMessage ) ;
149+ expect ( hook . result . current . messages ) . toMatchObject ( [ ] ) ;
138150 } ) ;
139151
140152 it ( 'should expose the voice message after the associated audio clip is played' , ( ) => {
141153 // add the message
142154 act ( ( ) => {
143- hook . result . current . onMessage ( agentMessage ) ;
155+ hook . result . current . onMessage ( {
156+ ...agentMessage ,
157+ receivedAt : new Date ( ) ,
158+ } ) ;
144159 } ) ;
145160
146161 // simulate playing audio
147162 act ( ( ) => {
148163 hook . result . current . onPlayAudio ( agentMessage . id ?? '' ) ;
149164 } ) ;
150165
151- expect ( hook . result . current . lastVoiceMessage ) . toEqual ( agentMessage ) ;
152- expect ( hook . result . current . messages ) . toContainEqual ( agentMessage ) ;
166+ expect ( hook . result . current . lastVoiceMessage ) . toMatchObject (
167+ expect . objectContaining ( agentMessage ) ,
168+ ) ;
169+ expect ( hook . result . current . messages ) . toMatchObject (
170+ expect . arrayContaining ( [ expect . objectContaining ( agentMessage ) ] ) ,
171+ ) ;
153172 } ) ;
154173
155174 it ( 'should expose the voice message after the associated audio clip is played' , ( ) => {
156175 act ( ( ) => {
157- hook . result . current . onMessage ( agentMessage ) ; // First, add the message
176+ // First, add the message
177+ hook . result . current . onMessage ( {
178+ ...agentMessage ,
179+ receivedAt : new Date ( ) ,
180+ } ) ;
158181 } ) ;
159182
160183 act ( ( ) => {
161184 hook . result . current . onPlayAudio ( agentMessage . id ?? '' ) ;
162185 } ) ;
163186
164- expect ( hook . result . current . lastVoiceMessage ) . toEqual ( agentMessage ) ;
165- expect ( hook . result . current . messages ) . toContainEqual ( agentMessage ) ;
187+ expect ( hook . result . current . lastVoiceMessage ) . toMatchObject (
188+ expect . objectContaining ( agentMessage ) ,
189+ ) ;
190+ expect ( hook . result . current . messages ) . toMatchObject (
191+ expect . arrayContaining ( [ expect . objectContaining ( agentMessage ) ] ) ,
192+ ) ;
166193 } ) ;
167194
168195 it ( 'should only add voice messages once' , ( ) => {
169196 act ( ( ) => {
170- hook . result . current . onMessage ( agentMessage ) ; // First, add the message
197+ // First, add the message
198+ hook . result . current . onMessage ( {
199+ ...agentMessage ,
200+ receivedAt : new Date ( ) ,
201+ } ) ;
171202 } ) ;
172203
173204 act ( ( ) => {
@@ -186,14 +217,19 @@ describe('useMessages hook', () => {
186217
187218 it ( 'should call the sendMessageToParent callback when the associated audio clip plays' , ( ) => {
188219 act ( ( ) => {
189- hook . result . current . onMessage ( agentMessage ) ;
220+ hook . result . current . onMessage ( {
221+ ...agentMessage ,
222+ receivedAt : new Date ( ) ,
223+ } ) ;
190224 } ) ;
191225
192226 act ( ( ) => {
193227 hook . result . current . onPlayAudio ( agentMessage . id ?? '' ) ;
194228 } ) ;
195229
196- expect ( sendMessageToParent ) . toHaveBeenCalledWith ( agentMessage ) ;
230+ expect ( sendMessageToParent ) . toHaveBeenCalledWith (
231+ expect . objectContaining ( agentMessage ) ,
232+ ) ;
197233 } ) ;
198234
199235 it ( 'should clear all messages and states on disconnect' , ( ) => {
0 commit comments