import * as React from 'react'; import { render, screen, fireEvent } from '@testing-library/react-native'; import Day from '../components/Day'; const defaultDay = { id: '1', key: '1-1', date: '2024-01-01', isToday: false, isActive: false, isMonthDate: true, isStartDate: false, isEndDate: false, isVisible: true, isWeekend: false, isOutOfRange: false, isHidden: false, }; describe('Day', () => { it('should render day', () => { const props = { theme: {}, onPress: () => {}, item: { ...defaultDay, isToday: true, }, }; const { unmount } = render(); expect(screen.getByText('1')).toBeTruthy(); unmount(); }); it('should change from disabled to enabled', () => { const onPressHandler = jest.fn(); const props = { theme: {}, onPress: onPressHandler, item: { ...defaultDay, isVisible: false, }, }; const { queryByTestId } = render(); expect(queryByTestId('day-pressable')).toBeNull(); const { getByTestId } = render( ); expect(getByTestId('day-pressable')).toBeDefined(); }); it('should return a date', () => { const onPressHandler = jest.fn((date) => date); const props = { theme: {}, onPress: onPressHandler, item: { ...defaultDay, }, }; const { getByTestId } = render(); const dayPressable = getByTestId('day-pressable'); fireEvent.press(dayPressable); expect(onPressHandler).toHaveReturnedWith(props.item.date); }); });