@@ -518,50 +518,35 @@ describe("AppointmentSelection", () => {
518518 await wrapper . vm . showSelectionForProvider ( { name : 'Office X' , id : 10351880 , address : { street : 'Test' , house_number : '1' } } ) ;
519519 await nextTick ( ) ;
520520
521- // Mock the availableDays to simulate what would be fetched for selected providers
521+ // Mock availableDays where 2025-06-16 only has provider 10470, and 2025-06-17 has provider 10351880
522+ // This means when we select only 10351880, the current date (2025-06-16) becomes invalid
522523 wrapper . vm . availableDays = [
523- { time : '2025-06-16' , providerIDs : '10351880, 10470' } ,
524- { time : '2025-06-17' , providerIDs : '10351880,10470 ' } ,
524+ { time : '2025-06-16' , providerIDs : '10470' } ,
525+ { time : '2025-06-17' , providerIDs : '10351880' } ,
525526 ] ;
526527
527- // Set current date explicitly to the one without appointments
528+ // Set current date to 2025-06-16 (only available for provider 10470)
528529 wrapper . vm . selectedDay = new Date ( '2025-06-16' ) ;
529530 await nextTick ( ) ;
530531 await wrapper . vm . getAppointmentsOfDay ( '2025-06-16' ) ;
531532 await nextTick ( ) ;
532533
533- // Control subsequent refetches: first refetch returns both days, final refetch returns only 2025-06-17
534- let refetchCall = 0 ;
535- ( fetchAvailableDays as Mock ) . mockImplementation ( ( ) => {
536- refetchCall += 1 ;
537- if ( refetchCall === 1 ) {
538- return Promise . resolve ( {
539- availableDays : [
540- { time : '2025-06-16' , providerIDs : '10351880,10470' } ,
541- { time : '2025-06-17' , providerIDs : '10351880,10470' }
542- ]
543- } ) ;
544- }
545- return Promise . resolve ( {
546- availableDays : [
547- { time : '2025-06-17' , providerIDs : '10351880' }
548- ]
549- } ) ;
550- } ) ;
551-
552- // Simulate provider change to trigger nearest-date selection pipeline with deep change
553- wrapper . vm . selectedProviders = { '10351880' : false , '10470' : true } as any ;
534+ // Initially both providers are selected
535+ wrapper . vm . selectedProviders = { '10351880' : true , '10470' : true } as any ;
554536 await nextTick ( ) ;
555537 await flushPromises ( ) ;
538+
539+ // Now deselect provider 10470, leaving only 10351880 selected
540+ // Since 2025-06-16 only has 10470, the date should snap to 2025-06-17
556541 wrapper . vm . selectedProviders = { '10351880' : true , '10470' : false } as any ;
557542 await nextTick ( ) ;
558543 await flushPromises ( ) ;
559- // Wait for debounced pipeline (150ms) + fetch/ updates to complete
560- await new Promise ( r => setTimeout ( r , 900 ) ) ;
544+ // Wait for debounced pipeline (150ms) + updates to complete
545+ await new Promise ( r => setTimeout ( r , 300 ) ) ;
561546 await nextTick ( ) ;
562547 await flushPromises ( ) ;
563548
564- // Should snap to 2025-06-17 as nearest available date after provider change
549+ // Should snap to 2025-06-17 as nearest available date for selected provider
565550 expect ( wrapper . vm . selectedDay ) . toEqual ( new Date ( '2025-06-17' ) ) ;
566551 } ) ;
567552
0 commit comments