import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import DateRangePicker, { CLASSNAME, Props } from '../dateRangePicker';

describe('<DateRangePicker>', () => {
    const defaultProps: Props = {
        onChange: jest.fn(),
        data: {
            from: new Date().toString(),
            to: new Date().toString()
        }
    };

    const renderMocked = (props?: Partial<Props>) =>
        render(<DateRangePicker { ...defaultProps } { ...props } />);

    test('renders default component', () => {
        const { container } = renderMocked();

        expect(container.getElementsByClassName(CLASSNAME).item(0)).toBeVisible();
    });

    test('executes onChange', () => {
        const onChange = jest.fn();
        const { container } = renderMocked({ onChange });
        const day = container.querySelector('.DayPicker-Day[aria-disabled=false]');

        if (day)
            fireEvent.click(day);

        expect(onChange).toBeCalled();
    });
});
