Skip to content

Commit 038b05b

Browse files
jciasenzafarhaanbukhsh
authored andcommitted
fix: add test in CourseOutlineTray
1 parent 020e7fb commit 038b05b

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

src/courseware/course/sidebar/sidebars/course-outline/CourseOutlineTray.jsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ const CourseOutlineTray = ({ intl }) => {
6767
setOpenSequenceId((prevOpenSequenceId) => (prevOpenSequenceId === sequenceId ? null : sequenceId));
6868
};
6969

70-
// Sidebar Heading definition
7170
const sidebarHeading = (
7271
<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">
7372
{isDisplaySequenceLevel && backButtonTitle ? (
@@ -135,8 +134,8 @@ const CourseOutlineTray = ({ intl }) => {
135134
key={sequenceId}
136135
courseId={courseId}
137136
sequence={sequences[sequenceId]}
138-
isOpen={sequenceId === openSequenceId} // Control if the sequence is open
139-
onToggle={() => handleToggleSequence(sequenceId)} // Change the state
137+
isOpen={sequenceId === openSequenceId}
138+
onToggle={() => handleToggleSequence(sequenceId)}
140139
activeUnitId={unitId}
141140
/>
142141
))

src/courseware/course/sidebar/sidebars/course-outline/CourseOutlineTray.test.jsx

+22
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,28 @@ describe('<CourseOutlineTray />', () => {
9898
expect(mockToggleSidebar).toHaveBeenCalledWith(null);
9999
});
100100

101+
it('toggles openSequenceId correctly when a sequence is clicked', async () => {
102+
await initTestStore();
103+
renderWithProvider();
104+
const sequenceButton = screen.getByRole('button', { name: `${sequence.title} , ${courseOutlineMessages.incompleteAssignment.defaultMessage}` });
105+
expect(sequenceButton).toBeInTheDocument();
106+
userEvent.click(sequenceButton);
107+
expect(screen.getByRole('button', { name: `${sequence.title} , ${courseOutlineMessages.incompleteAssignment.defaultMessage}` })).toHaveAttribute('aria-expanded', 'true');
108+
userEvent.click(sequenceButton);
109+
expect(screen.getByRole('button', { name: `${sequence.title} , ${courseOutlineMessages.incompleteAssignment.defaultMessage}` })).toHaveAttribute('aria-expanded', 'false');
110+
});
111+
112+
it('updates setOpenSequenceId correctly when toggling sequences', async () => {
113+
await initTestStore();
114+
renderWithProvider();
115+
const sequenceButton = screen.getByRole('button', { name: `${sequence.title} , ${courseOutlineMessages.incompleteAssignment.defaultMessage}` });
116+
expect(sequenceButton).toBeInTheDocument();
117+
userEvent.click(sequenceButton);
118+
expect(sequenceButton).toHaveAttribute('aria-expanded', 'true');
119+
userEvent.click(sequenceButton);
120+
expect(sequenceButton).toHaveAttribute('aria-expanded', 'false');
121+
});
122+
101123
it('navigates to section or sequence level correctly on click by back/section button', async () => {
102124
await initTestStore();
103125
renderWithProvider();

0 commit comments

Comments
 (0)