-
Notifications
You must be signed in to change notification settings - Fork 353
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: chromatic screenshots tests status (#4481)
Co-authored-by: TFX-98 <[email protected]>
- Loading branch information
Showing
2 changed files
with
88 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
101 changes: 88 additions & 13 deletions
101
packages/ui/src/components/va-date-picker/VaDatePicker.stories.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,111 @@ | ||
import { StoryFn } from '@storybook/vue3' | ||
import { userEvent } from '@storybook/testing-library' | ||
import { expect } from '@storybook/jest' | ||
import VaDatePickerDemo from './VaDatePicker.demo.vue' | ||
import VaDatePicker from './VaDatePicker.vue' | ||
import { StoryFn } from '@storybook/vue3' | ||
|
||
export default { | ||
title: 'VaDatePicker', | ||
component: VaDatePicker, | ||
tags: ['autodocs'], | ||
} | ||
|
||
export const Default: StoryFn = () => ({ | ||
components: { VaDatePickerDemo }, | ||
template: '<VaDatePickerDemo />', | ||
}) | ||
|
||
export const firstWeekDay: StoryFn = () => ({ | ||
export const WithoutValue: StoryFn = () => ({ | ||
components: { VaDatePicker }, | ||
template: '<VaDatePicker />', | ||
}) | ||
WithoutValue.parameters = { chromatic: { disableSnapshot: true } } // Disable Chromatic snapshots to prevent visual test failures due to current date changes. | ||
|
||
export const Stateful: StoryFn = () => ({ | ||
components: { VaDatePicker }, | ||
template: '<VaDatePicker stateful />', | ||
}) | ||
Stateful.parameters = { chromatic: { disableSnapshot: true } } | ||
|
||
export const Readonly: StoryFn = () => ({ | ||
components: { VaDatePicker }, | ||
template: '<VaDatePicker readonly />', | ||
}) | ||
Readonly.parameters = { chromatic: { disableSnapshot: true } } // Disable Chromatic snapshots to prevent visual test failures due to current date changes. | ||
|
||
export const View: StoryFn = () => ({ | ||
components: { VaDatePicker }, | ||
|
||
data: () => ({ | ||
dayView: { | ||
type: 'day', | ||
month: new Date().getMonth(), | ||
year: new Date().getFullYear(), | ||
}, | ||
monthView: { | ||
type: 'month', | ||
month: new Date().getMonth(), | ||
year: new Date().getFullYear(), | ||
}, | ||
yearView: { | ||
type: 'year', | ||
month: new Date().getMonth(), | ||
year: new Date().getFullYear(), | ||
}, | ||
}), | ||
template: ` | ||
<VaDatePicker firstWeekday="sunday"/> | ||
<VaDatePicker firstWeekday="monday"/> | ||
<VaDatePicker readonly v-model:view="dayView" /> | ||
<VaDatePicker readonly v-model:view="monthView" /> | ||
<VaDatePicker readonly v-model:view="yearView" /> | ||
`, | ||
}) | ||
View.parameters = { chromatic: { disableSnapshot: true } } // Disable Chromatic snapshots to prevent visual test failures due to current date changes. | ||
|
||
export const Range = () => ({ | ||
export const FirstWeekDay: StoryFn = () => ({ | ||
components: { VaDatePicker }, | ||
template: ` | ||
<VaDatePicker firstWeekday="sunday"/> | ||
<VaDatePicker firstWeekday="monday"/> | ||
`, | ||
}) | ||
FirstWeekDay.parameters = { chromatic: { disableSnapshot: true } } // Disable Chromatic snapshots to prevent visual test failures due to current date changes. | ||
|
||
data () { | ||
return { | ||
value: { start: new Date('2020-01-01T00:00:00.000Z'), end: new Date('2020-01-02T00:00:00.000Z') }, | ||
} | ||
}, | ||
|
||
export const Range: StoryFn = () => ({ | ||
components: { VaDatePicker }, | ||
data: () => ({ | ||
value: { | ||
start: new Date('2020-01-01T00:00:00.000Z'), | ||
end: new Date('2020-01-02T00:00:00.000Z'), | ||
}, | ||
}), | ||
template: ` | ||
{{ value }} | ||
<VaDatePicker v-model="value" /> | ||
{{ value }} | ||
<VaDatePicker v-model="value" /> | ||
`, | ||
}) | ||
|
||
Range.play = async ({ step, canvasElement }) => { | ||
const datePicker = canvasElement.querySelector('.va-date-picker') | ||
expect(datePicker).toBeVisible() | ||
|
||
await step('Click on the date picker to open', async () => { | ||
await userEvent.click(datePicker!) | ||
}) | ||
|
||
await step('Select a start date', async () => { | ||
const startDate = canvasElement.querySelectorAll( | ||
'.va-date-picker-cell', | ||
)[10] | ||
await userEvent.click(startDate!) | ||
}) | ||
|
||
await step('Select an end date', async () => { | ||
const endDate = canvasElement.querySelectorAll('.va-date-picker-cell')[15] | ||
await userEvent.click(endDate!) | ||
}) | ||
|
||
const selectedDates = canvasElement.querySelectorAll( | ||
'.va-date-picker-cell_selected', | ||
) | ||
expect(selectedDates.length).toBeGreaterThan(1) | ||
} |