@@ -52,7 +52,7 @@ describe('createHmcState', () => {
5252
5353 it ( 'loads holidays and sets selectedHolidays when selectedYear changes' , async ( ) => {
5454 const state = createHmcState ( ) ;
55-
55+
5656 state . selectedYear . value = 1900 ;
5757 await nextTick ( ) ;
5858
@@ -76,7 +76,7 @@ describe('createHmcState', () => {
7676 expect ( state . totalWeekends . value ) . toBe ( 1 ) ; // Sunday
7777
7878 // Change workdays to Sun-Thu (0-4)
79- state . workdays . value = [ 0 , 1 , 2 , 3 , 4 ] ;
79+ state . workdays . value = [ 0 , 1 , 2 , 3 , 4 ] ;
8080 await nextTick ( ) ;
8181 expect ( state . totalWeekdays . value ) . toBe ( 3 ) ; // Sunday, Monday, Tuesday
8282 expect ( state . totalWeekends . value ) . toBe ( 0 ) ;
@@ -87,4 +87,24 @@ describe('createHmcState', () => {
8787 expect ( state . totalWeekdays . value ) . toBe ( 0 ) ;
8888 expect ( state . totalWeekends . value ) . toBe ( 3 ) ;
8989 } ) ;
90- } ) ;
90+
91+ it ( 'does not double count different holidays with the same date' , async ( ) => {
92+ const state = createHmcState ( ) ;
93+ const weekendHoliday = createMockHmcHoliday ( { subcat : 'major' , date : new Date ( 2025 , 3 , 13 ) , title : 'Weekend Holiday' , isWeekend : true , isYomTov : true } ) ;
94+ const weekendDupe = { ...weekendHoliday , title : 'Weekend Holiday - Duplicate' } ;
95+ const weekdayHoliday = createMockHmcHoliday ( { subcat : 'major' , date : new Date ( 2025 , 3 , 14 ) , title : 'Weekday' , isWeekend : false , isYomTov : true } ) ;
96+ const weekdayDupe = { ...weekdayHoliday , title : 'Weekday - Duplicate' } ;
97+ state . holidays . value . all . push ( weekendHoliday , weekendDupe , weekdayHoliday , weekdayDupe ) ;
98+ state . holidays . value . holidaysByMonth . April = [ weekendHoliday , weekendDupe , weekdayHoliday , weekdayDupe ] ;
99+ await nextTick ( ) ;
100+
101+ state . selectedHolidays . value [ weekendHoliday . date ] = true ;
102+ state . selectedHolidays . value [ weekendDupe . date ] = true ;
103+ state . selectedHolidays . value [ weekdayHoliday . date ] = true ;
104+ state . selectedHolidays . value [ weekdayDupe . date ] = true ;
105+ await nextTick ( ) ;
106+
107+ expect ( state . totalWeekdays . value ) . toBe ( 1 ) ;
108+ expect ( state . totalWeekends . value ) . toBe ( 1 ) ;
109+ } ) ;
110+ } ) ;
0 commit comments