import * as React from 'react';
import parse from 'date-fns/parseISO';
import DateFnsAdapter from '@material-ui/pickers/adapter/date-fns';
import TextField, { TextFieldProps } from '@material-ui/core/TextField';
import { mount } from 'cypress-react-unit-test';
import { DIALOG_WIDTH } from '../lib/src/constants/dimensions';
import { LocalizationProvider, StaticDatePickerProps } from '@material-ui/pickers';
// Time of the first commit to the pickers ❤️
const momentInTime = parse('2017-10-07T19:36:00.000');
const mockRequiredProps = {
reduceAnimations: true, // speedup tests
value: momentInTime,
onChange: () => {},
renderInput: (props: TextFieldProps) => ,
};
/* Globally mock time for all component tests */
function mockTime() {
cy.clock(momentInTime.getTime());
}
export function mountStaticPicker(
createStaticPickerNode: (
props: Pick
) => React.ReactNode
) {
document.body.style.margin = '0px';
cy.viewport(DIALOG_WIDTH, 500);
mockTime();
mount(
{createStaticPickerNode(mockRequiredProps)}
);
}
export function mountPicker(
createPicker: (
props: Pick
) => React.ReactNode
) {
mockTime();
mount(
{createPicker(mockRequiredProps)}
);
}
export function mountPickerWithState(
createPicker: (
props: Pick
) => JSX.Element
) {
function PickerWithState() {
const [value, setDate] = React.useState(momentInTime);
return createPicker({ ...mockRequiredProps, value, onChange: (date) => setDate(date) });
}
mountPicker(() => );
}