diff --git a/src/courseware/course/sequence/Unit/UnitSuspense.test.jsx b/src/courseware/course/sequence/Unit/UnitSuspense.test.jsx index aa5c7e499d..f47ee6b241 100644 --- a/src/courseware/course/sequence/Unit/UnitSuspense.test.jsx +++ b/src/courseware/course/sequence/Unit/UnitSuspense.test.jsx @@ -7,6 +7,7 @@ import PageLoading from '@src/generic/PageLoading'; import messages from '../messages'; import HonorCode from '../honor-code'; +import LockPaywall from '../lock-paywall'; import hooks from './hooks'; import { modelKeys } from './constants'; @@ -23,6 +24,7 @@ jest.mock('react', () => ({ })); jest.mock('../honor-code', () => 'HonorCode'); +jest.mock('../lock-paywall', () => 'LockPaywall'); jest.mock('@src/generic/model-store', () => ({ useModel: jest.fn() })); jest.mock('@src/generic/PageLoading', () => 'PageLoading'); @@ -60,6 +62,31 @@ describe('UnitSuspense component', () => { }); }); describe('output', () => { + describe('LockPaywall', () => { + const testNoPaywall = () => { + it('does not display LockPaywall', () => { + el = shallow(); + expect(el.instance.findByType(LockPaywall).length).toEqual(0); + }); + }; + describe('gating not enabled', () => { testNoPaywall(); }); + describe('gating enabled, but no gated content included', () => { + beforeEach(() => { mockModels(true, false); }); + testNoPaywall(); + }); + describe('gating enabled, gated content included', () => { + beforeEach(() => { mockModels(true, true); }); + it('displays LockPaywall in Suspense wrapper with PageLoading fallback', () => { + el = shallow(); + const [component] = el.instance.findByType(LockPaywall); + expect(component.parent.type).toEqual('PluginSlot'); + expect(component.parent.parent.type).toEqual('Suspense'); + expect(component.parent.parent.props.fallback) + .toEqual(); + expect(component.props.courseId).toEqual(props.courseId); + }); + }); + }); describe('HonorCode', () => { it('does not display HonorCode if useShouldDisplayHonorCode => false', () => { hooks.useShouldDisplayHonorCode.mockReturnValueOnce(false); diff --git a/src/courseware/course/sequence/Unit/index.test.jsx b/src/courseware/course/sequence/Unit/index.test.jsx index 3f4ac6fec0..7ae0735ba4 100644 --- a/src/courseware/course/sequence/Unit/index.test.jsx +++ b/src/courseware/course/sequence/Unit/index.test.jsx @@ -28,6 +28,7 @@ jest.mock('../../bookmark/BookmarkButton', () => 'BookmarkButton'); jest.mock('./ContentIFrame', () => 'ContentIFrame'); jest.mock('./UnitSuspense', () => 'UnitSuspense'); jest.mock('../honor-code', () => 'HonorCode'); +jest.mock('../lock-paywall', () => 'LockPaywall'); jest.mock('@src/generic/model-store', () => ({ useModel: jest.fn(),