@@ -4,9 +4,10 @@ import { utcToZonedTime } from 'date-fns-tz/esm';
4
4
5
5
import { resetDateTime } from '@/utils/date-utils' ;
6
6
7
- import { openMenu } from '../utils' ;
7
+ import { getMonthName , openMenu } from '../utils' ;
8
8
import type { TimeModel } from '@/interfaces' ;
9
9
import type { VueWrapper } from '@vue/test-utils' ;
10
+ import type { AllPropsType } from '@/props' ;
10
11
11
12
describe ( 'It should validate various picker scenarios' , ( ) => {
12
13
it ( 'Should dynamically disable times' , async ( ) => {
@@ -53,8 +54,7 @@ describe('It should validate various picker scenarios', () => {
53
54
54
55
const year = getYear ( date ) ;
55
56
56
- const month = new Intl . DateTimeFormat ( 'en-Us' , { month : 'short' , timeZone : 'UTC' } ) . format ( date ) ;
57
- const monthName = month . charAt ( 0 ) . toUpperCase ( ) + month . substring ( 1 ) ;
57
+ const monthName = getMonthName ( date ) ;
58
58
59
59
await dp . find ( `[data-test="${ monthName } "]` ) . trigger ( 'click' ) ;
60
60
await dp . find ( `[data-test="${ year } "]` ) . trigger ( 'click' ) ;
@@ -213,4 +213,39 @@ describe('It should validate various picker scenarios', () => {
213
213
214
214
await validate ( startTimes , dpRange ) ;
215
215
} ) ;
216
+
217
+ it ( 'Should correctly display months in multi-calendars based on the given range' , async ( ) => {
218
+ const today = new Date ( ) ;
219
+ const sameViewRange = [ today , addMonths ( today , 1 ) ] ;
220
+ const diffViewRange = [ today , addMonths ( today , 3 ) ] ;
221
+
222
+ const dp = await openMenu ( { modelValue : sameViewRange , multiCalendars : true , range : true } ) ;
223
+
224
+ const validateMonthAndYearValues = ( index : number , date : Date ) => {
225
+ const month = dp . find ( `[data-test="month-toggle-overlay-${ index } "]` ) ;
226
+ const year = dp . find ( `[data-test="year-toggle-overlay-${ index } "]` ) ;
227
+ expect ( month . text ( ) ) . toEqual ( getMonthName ( date ) ) ;
228
+ expect ( + year . text ( ) ) . toEqual ( getYear ( date ) ) ;
229
+ } ;
230
+
231
+ const reOpenMenu = async ( newProps : Partial < AllPropsType > ) => {
232
+ dp . vm . closeMenu ( ) ;
233
+ await dp . setProps ( newProps ) ;
234
+ await dp . vm . $nextTick ( ) ;
235
+ dp . vm . openMenu ( ) ;
236
+ await dp . vm . $nextTick ( ) ;
237
+ } ;
238
+
239
+ validateMonthAndYearValues ( 0 , sameViewRange [ 0 ] ) ;
240
+ validateMonthAndYearValues ( 1 , sameViewRange [ 1 ] ) ;
241
+
242
+ await reOpenMenu ( { modelValue : diffViewRange } ) ;
243
+
244
+ validateMonthAndYearValues ( 0 , diffViewRange [ 1 ] ) ;
245
+
246
+ await reOpenMenu ( { modelValue : diffViewRange , multiCalendars : { solo : true } } ) ;
247
+
248
+ validateMonthAndYearValues ( 0 , diffViewRange [ 0 ] ) ;
249
+ validateMonthAndYearValues ( 1 , diffViewRange [ 1 ] ) ;
250
+ } ) ;
216
251
} ) ;
0 commit comments