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(),