Files
frontend-app-authoring/src/course-updates/course-handouts/CourseHandouts.test.jsx
2023-08-31 10:56:45 -04:00

46 lines
1.5 KiB
JavaScript

import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import CourseHandouts from './CourseHandouts';
import messages from './messages';
const onEditMock = jest.fn();
const handoutsContentMock = 'Handouts Content';
const renderComponent = (props) => render(
<IntlProvider locale="en">
<CourseHandouts
onEdit={onEditMock}
contentForHandouts={handoutsContentMock}
isDisabledButtons={false}
{...props}
/>
</IntlProvider>,
);
describe('<CourseHandouts />', () => {
it('render CourseHandouts component correctly', () => {
const { getByText, getByRole } = renderComponent();
expect(getByText(messages.handoutsTitle.defaultMessage)).toBeInTheDocument();
expect(getByText(handoutsContentMock)).toBeInTheDocument();
expect(getByRole('button', { name: messages.editButton.defaultMessage })).toBeInTheDocument();
});
it('calls the onEdit function when the edit button is clicked', () => {
const { getByRole } = renderComponent();
const editButton = getByRole('button', { name: messages.editButton.defaultMessage });
fireEvent.click(editButton);
expect(onEditMock).toHaveBeenCalledTimes(1);
});
it('"Edit" button is disabled when isDisabledButtons is true', () => {
const { getByRole } = renderComponent({ isDisabledButtons: true });
const editButton = getByRole('button', { name: messages.editButton.defaultMessage });
expect(editButton).toBeDisabled();
});
});