import React from 'react';
import { fireEvent, render } from '@testing-library/react-native';
import ChooseWeek from '.';
import { mockUserReportHistory } from 'mocks/userReport';
const mockedNavigate = jest.fn();
jest.mock('@react-navigation/native', () => {
return {
useNavigation: () => ({
navigate: mockedNavigate,
}),
};
});
describe('ChooseWeek component', () => {
it('has "Isi" button when form is never filled and accessed by client', () => {
const { getByText } = render();
const fillButton = getByText(/Isi/i);
expect(fillButton).toBeTruthy();
fireEvent.press(fillButton);
expect(mockedNavigate).toHaveBeenCalled();
});
it('does not have "Isi" button when form is never filled but accessed by nutritionist', () => {
const { queryByText } = render(
,
);
expect(queryByText(/Isi/i)).toBeFalsy();
});
it('does not have "Isi" button when form is already filled', () => {
const { queryByText } = render(
,
);
expect(queryByText(/Isi/i)).toBeFalsy();
});
it('redirects to designated route when button "Lihat" is pressed', () => {
const { getAllByText } = render(
,
);
const viewButton = getAllByText(/Lihat/i)[0];
expect(viewButton).toBeTruthy();
fireEvent.press(viewButton);
expect(mockedNavigate).toHaveBeenCalled();
});
});