Skip to content

Commit 0620c72

Browse files
TFX-98TFX-98
and
TFX-98
authored
fix: chromatic screenshots tests status (#4481)
Co-authored-by: TFX-98 <[email protected]>
1 parent 8fded3d commit 0620c72

File tree

2 files changed

+88
-26
lines changed

2 files changed

+88
-26
lines changed

packages/ui/src/components/va-date-picker/VaDatePicker.demo.vue

-13
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,6 @@
1616
<va-date-picker mode="multiple" v-model="dates" />
1717
</VbCard>
1818

19-
<VbCard title="statefull">
20-
<va-date-picker stateful />
21-
</VbCard>
22-
23-
<VbCard title="readonly">
24-
<va-date-picker readonly v-model:view="currentMonthDayView" />
25-
</VbCard>
26-
27-
<VbCard title="without value">
28-
<va-date-picker />
29-
</VbCard>
30-
3119
<VbCard title="weekday names">
3220
<va-date-picker v-model="value" :weekdayNames="['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']" />
3321
</VbCard>
@@ -188,7 +176,6 @@ export default {
188176
189177
dayView: { type: 'day', month: 6, year: 2020 } satisfies DatePickerViewProp,
190178
monthView: { type: 'month' } satisfies DatePickerViewProp,
191-
currentMonthDayView: { type: 'day', month: new Date().getMonth(), year: new Date().getFullYear() } satisfies DatePickerViewProp,
192179
yearView: { type: 'year' } satisfies DatePickerViewProp,
193180
}
194181
},
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,111 @@
1+
import { StoryFn } from '@storybook/vue3'
2+
import { userEvent } from '@storybook/testing-library'
3+
import { expect } from '@storybook/jest'
14
import VaDatePickerDemo from './VaDatePicker.demo.vue'
25
import VaDatePicker from './VaDatePicker.vue'
3-
import { StoryFn } from '@storybook/vue3'
46

57
export default {
68
title: 'VaDatePicker',
79
component: VaDatePicker,
10+
tags: ['autodocs'],
811
}
912

1013
export const Default: StoryFn = () => ({
1114
components: { VaDatePickerDemo },
1215
template: '<VaDatePickerDemo />',
1316
})
1417

15-
export const firstWeekDay: StoryFn = () => ({
18+
export const WithoutValue: StoryFn = () => ({
19+
components: { VaDatePicker },
20+
template: '<VaDatePicker />',
21+
})
22+
WithoutValue.parameters = { chromatic: { disableSnapshot: true } } // Disable Chromatic snapshots to prevent visual test failures due to current date changes.
23+
24+
export const Stateful: StoryFn = () => ({
25+
components: { VaDatePicker },
26+
template: '<VaDatePicker stateful />',
27+
})
28+
Stateful.parameters = { chromatic: { disableSnapshot: true } }
29+
30+
export const Readonly: StoryFn = () => ({
31+
components: { VaDatePicker },
32+
template: '<VaDatePicker readonly />',
33+
})
34+
Readonly.parameters = { chromatic: { disableSnapshot: true } } // Disable Chromatic snapshots to prevent visual test failures due to current date changes.
35+
36+
export const View: StoryFn = () => ({
1637
components: { VaDatePicker },
38+
39+
data: () => ({
40+
dayView: {
41+
type: 'day',
42+
month: new Date().getMonth(),
43+
year: new Date().getFullYear(),
44+
},
45+
monthView: {
46+
type: 'month',
47+
month: new Date().getMonth(),
48+
year: new Date().getFullYear(),
49+
},
50+
yearView: {
51+
type: 'year',
52+
month: new Date().getMonth(),
53+
year: new Date().getFullYear(),
54+
},
55+
}),
1756
template: `
18-
<VaDatePicker firstWeekday="sunday"/>
19-
<VaDatePicker firstWeekday="monday"/>
57+
<VaDatePicker readonly v-model:view="dayView" />
58+
<VaDatePicker readonly v-model:view="monthView" />
59+
<VaDatePicker readonly v-model:view="yearView" />
2060
`,
2161
})
62+
View.parameters = { chromatic: { disableSnapshot: true } } // Disable Chromatic snapshots to prevent visual test failures due to current date changes.
2263

23-
export const Range = () => ({
64+
export const FirstWeekDay: StoryFn = () => ({
2465
components: { VaDatePicker },
66+
template: `
67+
<VaDatePicker firstWeekday="sunday"/>
68+
<VaDatePicker firstWeekday="monday"/>
69+
`,
70+
})
71+
FirstWeekDay.parameters = { chromatic: { disableSnapshot: true } } // Disable Chromatic snapshots to prevent visual test failures due to current date changes.
2572

26-
data () {
27-
return {
28-
value: { start: new Date('2020-01-01T00:00:00.000Z'), end: new Date('2020-01-02T00:00:00.000Z') },
29-
}
30-
},
31-
73+
export const Range: StoryFn = () => ({
74+
components: { VaDatePicker },
75+
data: () => ({
76+
value: {
77+
start: new Date('2020-01-01T00:00:00.000Z'),
78+
end: new Date('2020-01-02T00:00:00.000Z'),
79+
},
80+
}),
3281
template: `
33-
{{ value }}
34-
<VaDatePicker v-model="value" />
82+
{{ value }}
83+
<VaDatePicker v-model="value" />
3584
`,
3685
})
86+
87+
Range.play = async ({ step, canvasElement }) => {
88+
const datePicker = canvasElement.querySelector('.va-date-picker')
89+
expect(datePicker).toBeVisible()
90+
91+
await step('Click on the date picker to open', async () => {
92+
await userEvent.click(datePicker!)
93+
})
94+
95+
await step('Select a start date', async () => {
96+
const startDate = canvasElement.querySelectorAll(
97+
'.va-date-picker-cell',
98+
)[10]
99+
await userEvent.click(startDate!)
100+
})
101+
102+
await step('Select an end date', async () => {
103+
const endDate = canvasElement.querySelectorAll('.va-date-picker-cell')[15]
104+
await userEvent.click(endDate!)
105+
})
106+
107+
const selectedDates = canvasElement.querySelectorAll(
108+
'.va-date-picker-cell_selected',
109+
)
110+
expect(selectedDates.length).toBeGreaterThan(1)
111+
}

0 commit comments

Comments
 (0)