@@ -10,7 +10,6 @@ import { IGroup } from "../types/sessions";
1010import {
1111 createMockAxiosResponse ,
1212 createMockGroup ,
13- createMockLiveview ,
1413 createMockSession ,
1514 getQueryClientWrapper ,
1615 SESSION_URLS ,
@@ -156,6 +155,60 @@ describe("useFetchTalksById", () => {
156155 const expectedData = mockData [ 0 ] . sessions [ 0 ] ;
157156 expect ( result . current . data ) . toEqual ( expectedData ) ;
158157 } ) ;
158+
159+ it ( "should use 2024 URL when '2024' is provided" , async ( ) => {
160+ const mockSession = createMockSession ( {
161+ track : "" ,
162+ description : "" ,
163+ startsAt : "2024-01-01T00:00:00" ,
164+ } ) ;
165+ const mockData : IGroup [ ] = [
166+ createMockGroup ( {
167+ groupName : "test " ,
168+ sessions : [ mockSession ] ,
169+ } ) ,
170+ ] ;
171+ const payload = createMockAxiosResponse ( mockData ) ;
172+
173+ mockedAxios . get . mockResolvedValue ( payload ) ;
174+
175+ const { wrapper } = getQueryClientWrapper ( ) ;
176+ const { result } = renderHook ( ( ) => useFetchTalksById ( "123" , "2024" ) , {
177+ wrapper,
178+ } ) ;
179+
180+ await waitFor ( ( ) => result . current . isSuccess ) ;
181+ await waitFor ( ( ) => ! result . current . isLoading ) ;
182+
183+ expect ( mockedAxios . get ) . toHaveBeenCalledWith ( SESSION_URLS [ "2024" ] ) ;
184+ const expectedData = mockData [ 0 ] . sessions [ 0 ] ;
185+ expect ( result . current . data ) . toEqual ( expectedData ) ;
186+ } ) ;
187+
188+ it ( "should use custom URL when a URL is provided" , async ( ) => {
189+ const mockSession = createMockSession ( ) ;
190+ const mockData : IGroup [ ] = [
191+ createMockGroup ( {
192+ sessions : [ mockSession ] ,
193+ } ) ,
194+ ] ;
195+ const payload = createMockAxiosResponse ( mockData ) ;
196+
197+ mockedAxios . get . mockResolvedValue ( payload ) ;
198+
199+ const { wrapper } = getQueryClientWrapper ( ) ;
200+ const customUrl = "https://example.com/api/sessions" ;
201+ const { result } = renderHook ( ( ) => useFetchTalksById ( "123" , customUrl ) , {
202+ wrapper,
203+ } ) ;
204+
205+ await waitFor ( ( ) => result . current . isSuccess ) ;
206+ await waitFor ( ( ) => ! result . current . isLoading ) ;
207+
208+ expect ( mockedAxios . get ) . toHaveBeenCalledWith ( customUrl ) ;
209+ const expectedData = mockData [ 0 ] . sessions [ 0 ] ;
210+ expect ( result . current . data ) . toEqual ( expectedData ) ;
211+ } ) ;
159212} ) ;
160213
161214describe ( "useFetchLiveView" , ( ) => {
@@ -164,8 +217,13 @@ describe("useFetchLiveView", () => {
164217 } ) ;
165218
166219 it ( "should use default URL when no parameter is provided" , async ( ) => {
167- const mockData = createMockLiveview ( ) ;
168- const payload = createMockAxiosResponse ( [ mockData ] ) ;
220+ const mockSession = createMockSession ( ) ;
221+ const mockData : IGroup [ ] = [
222+ createMockGroup ( {
223+ sessions : [ mockSession ] ,
224+ } ) ,
225+ ] ;
226+ const payload = createMockAxiosResponse ( mockData ) ;
169227
170228 mockedAxios . get . mockResolvedValue ( payload ) ;
171229
@@ -178,12 +236,50 @@ describe("useFetchLiveView", () => {
178236 await waitFor ( ( ) => ! result . current . isLoading ) ;
179237
180238 expect ( mockedAxios . get ) . toHaveBeenCalledWith ( SESSION_URLS . DEFAULT ) ;
181- expect ( result . current . data ) . toEqual ( payload . data [ 0 ] ) ;
239+ expect ( result . current . data ) . toEqual ( [ mockSession ] ) ;
240+ } ) ;
241+
242+ it ( "should use 2023 URL when '2023' is provided" , async ( ) => {
243+ const mockSession = createMockSession ( {
244+ track : "" ,
245+ description : "" ,
246+ startsAt : "2023-01-01T00:00:00" ,
247+ } ) ;
248+ const mockData : IGroup [ ] = [
249+ createMockGroup ( {
250+ groupName : "test " ,
251+ sessions : [ mockSession ] ,
252+ } ) ,
253+ ] ;
254+ const payload = createMockAxiosResponse ( mockData ) ;
255+
256+ mockedAxios . get . mockResolvedValue ( payload ) ;
257+
258+ const { wrapper } = getQueryClientWrapper ( ) ;
259+ const { result } = renderHook ( ( ) => useFetchLiveView ( "2023" ) , {
260+ wrapper,
261+ } ) ;
262+
263+ await waitFor ( ( ) => result . current . isSuccess ) ;
264+ await waitFor ( ( ) => ! result . current . isLoading ) ;
265+
266+ expect ( mockedAxios . get ) . toHaveBeenCalledWith ( SESSION_URLS [ "2023" ] ) ;
267+ expect ( result . current . data ) . toEqual ( [ mockSession ] ) ;
182268 } ) ;
183269
184270 it ( "should use 2024 URL when '2024' is provided" , async ( ) => {
185- const mockData = createMockLiveview ( ) ;
186- const payload = createMockAxiosResponse ( [ mockData ] ) ;
271+ const mockSession = createMockSession ( {
272+ track : "" ,
273+ description : "" ,
274+ startsAt : "2024-01-01T00:00:00" ,
275+ } ) ;
276+ const mockData : IGroup [ ] = [
277+ createMockGroup ( {
278+ groupName : "test " ,
279+ sessions : [ mockSession ] ,
280+ } ) ,
281+ ] ;
282+ const payload = createMockAxiosResponse ( mockData ) ;
187283
188284 mockedAxios . get . mockResolvedValue ( payload ) ;
189285
@@ -196,6 +292,30 @@ describe("useFetchLiveView", () => {
196292 await waitFor ( ( ) => ! result . current . isLoading ) ;
197293
198294 expect ( mockedAxios . get ) . toHaveBeenCalledWith ( SESSION_URLS [ "2024" ] ) ;
199- expect ( result . current . data ) . toEqual ( payload . data [ 0 ] ) ;
295+ expect ( result . current . data ) . toEqual ( [ mockSession ] ) ;
296+ } ) ;
297+
298+ it ( "should use custom URL when a URL is provided" , async ( ) => {
299+ const mockSession = createMockSession ( ) ;
300+ const mockData : IGroup [ ] = [
301+ createMockGroup ( {
302+ sessions : [ mockSession ] ,
303+ } ) ,
304+ ] ;
305+ const payload = createMockAxiosResponse ( mockData ) ;
306+
307+ mockedAxios . get . mockResolvedValue ( payload ) ;
308+
309+ const { wrapper } = getQueryClientWrapper ( ) ;
310+ const customUrl = "https://example.com/api/sessions" ;
311+ const { result } = renderHook ( ( ) => useFetchLiveView ( customUrl ) , {
312+ wrapper,
313+ } ) ;
314+
315+ await waitFor ( ( ) => result . current . isSuccess ) ;
316+ await waitFor ( ( ) => ! result . current . isLoading ) ;
317+
318+ expect ( mockedAxios . get ) . toHaveBeenCalledWith ( customUrl ) ;
319+ expect ( result . current . data ) . toEqual ( [ mockSession ] ) ;
200320 } ) ;
201321} ) ;
0 commit comments