import { describe, test, expect } from 'vitest';
import { render } from '@testing-library/react';
import { parseDate, now, getLocalTimeZone } from '@internationalized/date';
import { DatePicker } from '.';
describe('DatePicker', () => {
describe('matches snapshots', () => {
const shared = {
label: 'Date Picker',
message: 'Select a date',
error: 'Invalid date',
onChange: () => {},
};
test('default variant', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('with value', () => {
const result = render(
);
expect(result.asFragment()).toMatchSnapshot();
});
test('with default value', () => {
const result = render(
);
expect(result.asFragment()).toMatchSnapshot();
});
test('day granularity', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('hour granularity', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('minute granularity', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('second granularity', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('disabled state', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('required state', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('readonly state', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('invalid state', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('with leading zeros', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('24 hour cycle', () => {
const result = render(
);
expect(result.asFragment()).toMatchSnapshot();
});
test('small size', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('medium size', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('large size', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('small calendar size', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('medium calendar size', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('large calendar size', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
test('with min and max values', () => {
const today = now(getLocalTimeZone());
const minValue = today.subtract({ days: 30 });
const maxValue = today.add({ days: 30 });
const result = render(
);
expect(result.asFragment()).toMatchSnapshot();
});
test('without label', () => {
const result = render(
);
expect(result.asFragment()).toMatchSnapshot();
});
test('without message', () => {
const result = render(
);
expect(result.asFragment()).toMatchSnapshot();
});
test('without error', () => {
const result = render(
);
expect(result.asFragment()).toMatchSnapshot();
});
test('minimal props', () => {
const result = render();
expect(result.asFragment()).toMatchSnapshot();
});
});
});