diff --git a/src/courseware/course/sidebar/sidebars/course-outline/components/SidebarUnit.test.jsx b/src/courseware/course/sidebar/sidebars/course-outline/components/SidebarUnit.test.jsx
index c2ab814b..64cf719f 100644
--- a/src/courseware/course/sidebar/sidebars/course-outline/components/SidebarUnit.test.jsx
+++ b/src/courseware/course/sidebar/sidebars/course-outline/components/SidebarUnit.test.jsx
@@ -36,12 +36,12 @@ describe('', () => {
};
};
- function renderWithProvider(props = {}, sidebarContext = defaultSidebarContext) {
+ function renderWithProvider(props = {}, sidebarContext = defaultSidebarContext, pathname = '/course') {
const { container } = render(
-
+
', () => {
expect(window.sessionStorage.getItem('hideCourseOutlineSidebar')).toEqual('true');
});
});
+
+ describe('UnitLinkWrapper', () => {
+ describe('course in preview mode', () => {
+ beforeEach(async () => {
+ await initTestStore();
+ renderWithProvider({ unit: { ...unit } }, { ...defaultSidebarContext, shouldDisplayFullScreen: true }, '/preview/course');
+ });
+
+ it('href includes /preview', async () => {
+ const unitLink = screen.getByText(unit.title).closest('a');
+ const linkHref = unitLink.getAttribute('href');
+
+ expect(linkHref.includes('/preview/')).toBeTruthy();
+ });
+ });
+
+ describe('course in live mode', () => {
+ beforeEach(async () => {
+ await initTestStore();
+ renderWithProvider({ unit: { ...unit } }, { ...defaultSidebarContext, shouldDisplayFullScreen: true });
+ });
+
+ it('href does not include /preview/', async () => {
+ const unitLink = screen.getByText(unit.title).closest('a');
+ const linkHref = unitLink.getAttribute('href');
+
+ expect(linkHref.includes('/preview/')).toBeFalsy();
+ });
+ });
+ });
});
diff --git a/src/courseware/course/sidebar/sidebars/course-outline/components/UnitLinkWrapper.tsx b/src/courseware/course/sidebar/sidebars/course-outline/components/UnitLinkWrapper.tsx
index 26ba67ac..771eb5f7 100644
--- a/src/courseware/course/sidebar/sidebars/course-outline/components/UnitLinkWrapper.tsx
+++ b/src/courseware/course/sidebar/sidebars/course-outline/components/UnitLinkWrapper.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Link } from 'react-router-dom';
+import { Link, useLocation } from 'react-router-dom';
import { useCourseOutlineSidebar } from '../hooks';
@@ -27,10 +27,14 @@ const UnitLinkWrapper: React.FC = ({
children,
}) => {
const { handleUnitClick } = useCourseOutlineSidebar();
+ const { pathname } = useLocation();
+ const isPreview = pathname.startsWith('/preview');
+ const baseUrl = `/course/${courseId}/${sequenceId}/${id}`;
+ const link = isPreview ? `/preview${baseUrl}` : baseUrl;
return (
handleUnitClick({ sequenceId, activeUnitId, id })}
>