Skip to content

Commit bfa2d48

Browse files
iNSaNiA0821KaelWD
andauthored
chore(VDatePicker): update cypress tests to vitest (#20810)
Co-authored-by: Kael <[email protected]>
1 parent f3e26cf commit bfa2d48

File tree

3 files changed

+49
-49
lines changed

3 files changed

+49
-49
lines changed

packages/vuetify/src/components/VDatePicker/VDatePickerControls.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ export const VDatePickerControls = genericComponent()({
104104
>
105105
<VBtn
106106
class="v-date-picker-controls__month-btn"
107+
data-testid="month-btn"
107108
disabled={ disableMonth.value }
108109
text={ props.text }
109110
variant="text"
@@ -112,29 +113,28 @@ export const VDatePickerControls = genericComponent()({
112113
></VBtn>
113114

114115
<VBtn
115-
key="mode-btn"
116116
class="v-date-picker-controls__mode-btn"
117+
data-testid="year-btn"
117118
disabled={ disableYear.value }
118119
density="comfortable"
119120
icon={ props.modeIcon }
120121
variant="text"
121122
onClick={ onClickYear }
122123
/>
123124

124-
<VSpacer key="mode-spacer" />
125+
<VSpacer />
125126

126-
<div
127-
key="month-buttons"
128-
class="v-date-picker-controls__month"
129-
>
127+
<div class="v-date-picker-controls__month">
130128
<VBtn
129+
data-testid="prev-month"
131130
disabled={ disablePrev.value }
132131
icon={ props.prevIcon }
133132
variant="text"
134133
onClick={ onClickPrev }
135134
/>
136135

137136
<VBtn
137+
data-testid="next-month"
138138
disabled={ disableNext.value }
139139
icon={ props.nextIcon }
140140
variant="text"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Components
2+
import { VDatePicker } from '..'
3+
4+
// Utilities
5+
import { render, screen, userEvent } from '@test'
6+
import { ref } from 'vue'
7+
8+
describe('VDatePicker', () => {
9+
it('selects a range of dates', async () => {
10+
const model = ref<unknown[]>([])
11+
render(() => (
12+
<VDatePicker v-model={ model.value } multiple="range" />
13+
))
14+
15+
// Select two days in the same month (e.g., 10th and 20th)
16+
await userEvent.click(await screen.findByText(10))
17+
await userEvent.click(await screen.findByText(20))
18+
19+
// Expect a 11-day range to be selected
20+
await expect.poll(() => model.value).toHaveLength(11)
21+
})
22+
23+
it('selects a range of dates across month boundary', async () => {
24+
const model = ref<unknown[]>([])
25+
render(() => (
26+
<VDatePicker v-model={ model.value } multiple="range" />
27+
))
28+
29+
// Select 2025-01-07
30+
await userEvent.click(await screen.findByTestId('year-btn'))
31+
await userEvent.click(await screen.findByText('2025'))
32+
await userEvent.click(await screen.findByTestId('month-btn'))
33+
await userEvent.click(await screen.findByText('Jan'))
34+
await userEvent.click(await screen.findByText(7))
35+
36+
// Select 2025-02-07
37+
await userEvent.click(await screen.findByTestId('next-month'))
38+
await userEvent.click(await screen.findByText(7))
39+
40+
// Expect a 32-day range spanning across two months
41+
await expect.poll(() => model.value).toHaveLength(32)
42+
})
43+
})

packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.cy.tsx

Lines changed: 0 additions & 43 deletions
This file was deleted.

0 commit comments

Comments
 (0)