diff --git a/src/courseware/CoursewareContainer.jsx b/src/courseware/CoursewareContainer.jsx index 05982cc1..e8376fef 100644 --- a/src/courseware/CoursewareContainer.jsx +++ b/src/courseware/CoursewareContainer.jsx @@ -59,9 +59,11 @@ const checkUnitToSequenceUnitRedirect = memoize((courseStatus, courseId, sequenc } }); -const checkSpecialExamRedirect = memoize((sequenceStatus, sequence) => { +const checkSpecialExamRedirect = memoize((sequenceStatus, sequence, specialExamsEnabled, proctoredExamsEnabled) => { if (sequenceStatus === 'loaded') { - if (sequence.isTimeLimited && sequence.legacyWebUrl !== undefined) { + const shouldRedirectTimeLimited = sequence.isTimeLimited && !specialExamsEnabled; + const shouldRedirectProctored = sequence.isProctored && !proctoredExamsEnabled; + if ((shouldRedirectTimeLimited || shouldRedirectProctored) && sequence.legacyWebUrl !== undefined) { global.location.assign(sequence.legacyWebUrl); } } @@ -178,11 +180,7 @@ class CoursewareContainer extends Component { // Check special exam redirect: // /course/:courseId/:sequenceId(/:unitId) -> :legacyWebUrl // because special exams are currently still served in the legacy LMS frontend. - const shouldRedirectProctoredExams = specialExamsEnabledWaffleFlag && sequence.isProctored - && !proctoredExamsEnabledWaffleFlag; - if (!specialExamsEnabledWaffleFlag || shouldRedirectProctoredExams) { - checkSpecialExamRedirect(sequenceStatus, sequence); - } + checkSpecialExamRedirect(sequenceStatus, sequence, specialExamsEnabledWaffleFlag, proctoredExamsEnabledWaffleFlag); // Check to sequence to sequence-unit redirect: // /course/:courseId/:sequenceId -> /course/:courseId/:sequenceId/:unitId