fix: add test in CourseOutlineTray
This commit is contained in:
committed by
Farhaan Bukhsh
parent
020e7fb42c
commit
038b05ba6c
@@ -67,7 +67,6 @@ const CourseOutlineTray = ({ intl }) => {
|
|||||||
setOpenSequenceId((prevOpenSequenceId) => (prevOpenSequenceId === sequenceId ? null : sequenceId));
|
setOpenSequenceId((prevOpenSequenceId) => (prevOpenSequenceId === sequenceId ? null : sequenceId));
|
||||||
};
|
};
|
||||||
|
|
||||||
// Sidebar Heading definition
|
|
||||||
const sidebarHeading = (
|
const sidebarHeading = (
|
||||||
<div className="outline-sidebar-heading-wrapper sticky d-flex justify-content-between align-self-start align-items-center bg-light-200 p-2.5 pl-4">
|
<div className="outline-sidebar-heading-wrapper sticky d-flex justify-content-between align-self-start align-items-center bg-light-200 p-2.5 pl-4">
|
||||||
{isDisplaySequenceLevel && backButtonTitle ? (
|
{isDisplaySequenceLevel && backButtonTitle ? (
|
||||||
@@ -135,8 +134,8 @@ const CourseOutlineTray = ({ intl }) => {
|
|||||||
key={sequenceId}
|
key={sequenceId}
|
||||||
courseId={courseId}
|
courseId={courseId}
|
||||||
sequence={sequences[sequenceId]}
|
sequence={sequences[sequenceId]}
|
||||||
isOpen={sequenceId === openSequenceId} // Control if the sequence is open
|
isOpen={sequenceId === openSequenceId}
|
||||||
onToggle={() => handleToggleSequence(sequenceId)} // Change the state
|
onToggle={() => handleToggleSequence(sequenceId)}
|
||||||
activeUnitId={unitId}
|
activeUnitId={unitId}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -98,6 +98,28 @@ describe('<CourseOutlineTray />', () => {
|
|||||||
expect(mockToggleSidebar).toHaveBeenCalledWith(null);
|
expect(mockToggleSidebar).toHaveBeenCalledWith(null);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('toggles openSequenceId correctly when a sequence is clicked', async () => {
|
||||||
|
await initTestStore();
|
||||||
|
renderWithProvider();
|
||||||
|
const sequenceButton = screen.getByRole('button', { name: `${sequence.title} , ${courseOutlineMessages.incompleteAssignment.defaultMessage}` });
|
||||||
|
expect(sequenceButton).toBeInTheDocument();
|
||||||
|
userEvent.click(sequenceButton);
|
||||||
|
expect(screen.getByRole('button', { name: `${sequence.title} , ${courseOutlineMessages.incompleteAssignment.defaultMessage}` })).toHaveAttribute('aria-expanded', 'true');
|
||||||
|
userEvent.click(sequenceButton);
|
||||||
|
expect(screen.getByRole('button', { name: `${sequence.title} , ${courseOutlineMessages.incompleteAssignment.defaultMessage}` })).toHaveAttribute('aria-expanded', 'false');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('updates setOpenSequenceId correctly when toggling sequences', async () => {
|
||||||
|
await initTestStore();
|
||||||
|
renderWithProvider();
|
||||||
|
const sequenceButton = screen.getByRole('button', { name: `${sequence.title} , ${courseOutlineMessages.incompleteAssignment.defaultMessage}` });
|
||||||
|
expect(sequenceButton).toBeInTheDocument();
|
||||||
|
userEvent.click(sequenceButton);
|
||||||
|
expect(sequenceButton).toHaveAttribute('aria-expanded', 'true');
|
||||||
|
userEvent.click(sequenceButton);
|
||||||
|
expect(sequenceButton).toHaveAttribute('aria-expanded', 'false');
|
||||||
|
});
|
||||||
|
|
||||||
it('navigates to section or sequence level correctly on click by back/section button', async () => {
|
it('navigates to section or sequence level correctly on click by back/section button', async () => {
|
||||||
await initTestStore();
|
await initTestStore();
|
||||||
renderWithProvider();
|
renderWithProvider();
|
||||||
|
|||||||
Reference in New Issue
Block a user