@@ -64,8 +64,10 @@ test('week prop', async () => {
6464 firstDayOfWeek = { 1 }
6565 />
6666 )
67- const viewArea = container . querySelector ( '.viewArea' ) as HTMLElement
68- // expect(viewArea.innerHTML).toMatchSnapshot()
67+ const viewArea = container . querySelector (
68+ '.nut-calendar-pannel'
69+ ) as HTMLElement
70+ expect ( viewArea . innerHTML ) . toMatchSnapshot ( )
6971} )
7072
7173test ( 'range prop' , async ( ) => {
@@ -80,8 +82,76 @@ test('range prop', async () => {
8082 firstDayOfWeek = { 1 }
8183 />
8284 )
83- const viewArea = container . querySelector ( '.viewArea' ) as HTMLElement
84- // expect(viewArea.innerHTML).toMatchSnapshot()
85+ const viewArea = container . querySelector (
86+ '.nut-calendar-pannel'
87+ ) as HTMLElement
88+ expect ( viewArea . innerHTML ) . toMatchSnapshot ( )
89+ } )
90+
91+ test ( 'viewmode prop' , async ( ) => {
92+ const onItemClick = vi . fn ( )
93+ const { container } = render (
94+ < Calendar
95+ viewMode = "quarter"
96+ defaultValue = "2025-Q1"
97+ startDate = "2025-01-01"
98+ endDate = "2025-3-31"
99+ onItemClick = { onItemClick }
100+ />
101+ )
102+ const viewArea = container . querySelector (
103+ '.nut-calendar-viewmode-pannel'
104+ ) as HTMLElement
105+ expect ( viewArea . innerHTML ) . toMatchSnapshot ( )
106+ } )
107+
108+ test ( 'should render calendar in quarter view with extended date range' , async ( ) => {
109+ const { container } = render (
110+ < Calendar
111+ viewMode = "quarter"
112+ defaultValue = "2025-Q1"
113+ startDate = "2025-01-01"
114+ endDate = "2027-3-31"
115+ />
116+ )
117+ const viewArea = container . querySelector (
118+ '.nut-calendar-viewmode-pannel'
119+ ) as HTMLElement
120+ expect ( viewArea . innerHTML ) . toMatchSnapshot ( )
121+ } )
122+
123+ test ( 'should render calendar in month view with onItemClick' , async ( ) => {
124+ const onItemClick = vi . fn ( )
125+ const { container } = render (
126+ < Calendar
127+ viewMode = "month"
128+ defaultValue = "2025-01"
129+ startDate = "2025-01-01"
130+ endDate = "2025-3-31"
131+ onItemClick = { onItemClick }
132+ />
133+ )
134+ const viewArea = container . querySelector (
135+ '.nut-calendar-viewmode-pannel'
136+ ) as HTMLElement
137+ expect ( viewArea . innerHTML ) . toMatchSnapshot ( )
138+ } )
139+
140+ test ( 'should render calendar in month view with extended date range' , async ( ) => {
141+ const onItemClick = vi . fn ( )
142+ const { container } = render (
143+ < Calendar
144+ viewMode = "month"
145+ defaultValue = "2025-01"
146+ startDate = "2025-01-01"
147+ endDate = "2027-3-31"
148+ onItemClick = { onItemClick }
149+ />
150+ )
151+ const viewArea = container . querySelector (
152+ '.nut-calendar-viewmode-pannel'
153+ ) as HTMLElement
154+ expect ( viewArea . innerHTML ) . toMatchSnapshot ( )
85155} )
86156
87157test ( 'popup prop' , async ( ) => {
@@ -121,7 +191,9 @@ test('should render slot correctly', async () => {
121191 const topSlot = container . querySelector (
122192 '.nut-calendar-header-buttons'
123193 ) as HTMLElement
124- const viewArea = container . querySelector ( '.viewArea' ) as HTMLElement
194+ const viewArea = container . querySelector (
195+ '.nut-calendar-pannel'
196+ ) as HTMLElement
125197 expect ( topSlot . innerHTML ) . toContain ( '<div class="d_div"> 最近七天</div>' )
126198 expect ( viewArea . innerHTML ) . toMatchSnapshot ( )
127199} )
@@ -217,13 +289,13 @@ test('range select event when click item', () => {
217289 const start = container . querySelectorAll (
218290 '.nut-calendar-day-active .nut-calendar-day-day'
219291 ) [ 0 ]
220- expect ( start . innerHTML ) . toBe ( '13 ' )
292+ expect ( start . innerHTML ) . toBe ( '10 ' )
221293
222294 const calendarMonthDay2 = container . querySelectorAll ( '.nut-calendar-day' ) [ 20 ]
223295 fireEvent . click ( calendarMonthDay2 )
224296 expect ( onDayClick ) . toBeCalled ( )
225297 const next = container . querySelectorAll (
226298 '.nut-calendar-day-choose .nut-calendar-day-day'
227299 ) [ 0 ]
228- expect ( next . innerHTML ) . toBe ( '14 ' )
300+ expect ( next . innerHTML ) . toBe ( '11 ' )
229301} )
0 commit comments