@@ -3,7 +3,7 @@ import { waitFor, act } from '@testing-library/react';
33import { renderHook } from '@testing-library/react-hooks' ;
44import { MessageSearchQuery } from '@sendbird/chat/message' ;
55
6- import { MessageSearchProvider , useMessageSearchContext } from '../MessageSearchProvider' ;
6+ import { MessageSearchProvider } from '../MessageSearchProvider' ;
77import useMessageSearch from '../hooks/useMessageSearch' ;
88
99jest . mock ( '../../../../hooks/useSendbirdStateContext' , ( ) => ( {
@@ -71,28 +71,38 @@ describe('MessageSearchProvider', () => {
7171 </ MessageSearchProvider >
7272 ) ;
7373
74- const { result } = renderHook ( ( ) => useMessageSearchContext ( ) , { wrapper } ) ;
74+ const { result } = renderHook ( ( ) => useMessageSearch ( ) , { wrapper } ) ;
7575
76- expect ( result . current . getState ( ) ) . toEqual ( expect . objectContaining ( initialState ) ) ;
76+ expect ( result . current . state ) . toEqual ( expect . objectContaining ( initialState ) ) ;
7777 } ) ;
7878
7979 it ( 'updates state correctly when props change' , async ( ) => {
80- const wrapper = ( { children } ) => (
81- < MessageSearchProvider channelUrl = "test-channel" >
80+ const initialUrl = 'test-channel' ;
81+ const newUrl = 'new-channel' ;
82+
83+ const wrapper = ( { children, channelUrl } ) => (
84+ < MessageSearchProvider channelUrl = { channelUrl } >
8285 { children }
8386 </ MessageSearchProvider >
8487 ) ;
8588
86- const { result } = renderHook ( ( ) => useMessageSearchContext ( ) , { wrapper } ) ;
89+ const { result, rerender } = renderHook (
90+ ( ) => useMessageSearch ( ) ,
91+ {
92+ wrapper,
93+ initialProps : { channelUrl : initialUrl , children : null } ,
94+ } ,
95+ ) ;
8796
88- expect ( result . current . getState ( ) . channelUrl ) . toBe ( 'test-channel' ) ;
97+ expect ( result . current . state . channelUrl ) . toBe ( initialUrl ) ;
8998
9099 await act ( async ( ) => {
91- result . current . setState ( { channelUrl : 'new-channel' } ) ;
100+ rerender ( { channelUrl : newUrl , children : null } ) ;
101+
92102 await waitFor ( ( ) => {
93- const newState = result . current . getState ( ) ;
94- expect ( newState . channelUrl ) . toBe ( 'new-channel' ) ;
95103 // Verify other states remain unchanged
104+ const newState = result . current . state ;
105+ expect ( newState . channelUrl ) . toBe ( newUrl ) ;
96106 expect ( newState . allMessages ) . toEqual ( initialState . allMessages ) ;
97107 expect ( newState . loading ) . toBe ( initialState . loading ) ;
98108 expect ( newState . isQueryInvalid ) . toBe ( initialState . isQueryInvalid ) ;
0 commit comments