From d315c9c0ef36c691b480a7e6c140c7ecf14b7254 Mon Sep 17 00:00:00 2001 From: Ihor Romaniuk Date: Fri, 29 Mar 2024 16:45:00 +0100 Subject: [PATCH] fix: [AXIMST-728] check complete unit on prev and next click (#26) --- src/courseware/course/sequence/Sequence.jsx | 16 ++++++++-------- src/courseware/course/sequence/Sequence.test.jsx | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/courseware/course/sequence/Sequence.jsx b/src/courseware/course/sequence/Sequence.jsx index eb3ac18a58..b081c513dc 100644 --- a/src/courseware/course/sequence/Sequence.jsx +++ b/src/courseware/course/sequence/Sequence.jsx @@ -46,20 +46,20 @@ const Sequence = ({ const handleNext = () => { const nextIndex = sequence.unitIds.indexOf(unitId) + 1; - if (nextIndex < sequence.unitIds.length) { - const newUnitId = sequence.unitIds[nextIndex]; - handleNavigate(newUnitId); - } else { + const newUnitId = sequence.unitIds[nextIndex]; + handleNavigate(newUnitId); + + if (nextIndex >= sequence.unitIds.length) { nextSequenceHandler(); } }; const handlePrevious = () => { const previousIndex = sequence.unitIds.indexOf(unitId) - 1; - if (previousIndex >= 0) { - const newUnitId = sequence.unitIds[previousIndex]; - handleNavigate(newUnitId); - } else { + const newUnitId = sequence.unitIds[previousIndex]; + handleNavigate(newUnitId); + + if (previousIndex < 0) { previousSequenceHandler(); } }; diff --git a/src/courseware/course/sequence/Sequence.test.jsx b/src/courseware/course/sequence/Sequence.test.jsx index 4810095ee3..25a8de36b4 100644 --- a/src/courseware/course/sequence/Sequence.test.jsx +++ b/src/courseware/course/sequence/Sequence.test.jsx @@ -339,11 +339,11 @@ describe('Sequence', () => { screen.getAllByRole('link', { name: /previous/i }).forEach(button => fireEvent.click(button)); expect(testData.previousSequenceHandler).toHaveBeenCalledTimes(2); - expect(testData.unitNavigationHandler).not.toHaveBeenCalled(); + expect(testData.unitNavigationHandler).toHaveBeenCalledTimes(2); screen.getAllByRole('link', { name: /next/i }).forEach(button => fireEvent.click(button)); expect(testData.nextSequenceHandler).toHaveBeenCalledTimes(2); - expect(testData.unitNavigationHandler).not.toHaveBeenCalled(); + expect(testData.unitNavigationHandler).toHaveBeenCalledTimes(4); expect(sendTrackEvent).toHaveBeenNthCalledWith(1, 'edx.ui.lms.sequence.previous_selected', { current_tab: 1,