diff --git a/src/course-home/live-tab/LiveTab.test.jsx b/src/course-home/live-tab/LiveTab.test.jsx
new file mode 100644
index 0000000000..71ffb4f4ba
--- /dev/null
+++ b/src/course-home/live-tab/LiveTab.test.jsx
@@ -0,0 +1,77 @@
+import React from 'react';
+import { render } from '@testing-library/react';
+import { useSelector } from 'react-redux';
+import LiveTab from './LiveTab';
+
+jest.mock('react-redux', () => ({
+ useSelector: jest.fn(),
+}));
+
+describe('LiveTab', () => {
+ afterEach(() => {
+ jest.clearAllMocks();
+ document.body.innerHTML = '';
+ });
+
+ it('renders iframe from liveModel using dangerouslySetInnerHTML', () => {
+ useSelector.mockImplementation((selector) => selector({
+ courseHome: { courseId: 'course-v1:test+id+2024' },
+ models: {
+ live: {
+ 'course-v1:test+id+2024': {
+ iframe: '',
+ },
+ },
+ },
+ }));
+
+ render(
+
{intl.formatMessage(messages.completionBody)}
{requirement.namespace === 'grade' ? `${intl.formatMessage(messages.minimumGrade, { minGrade: Number(requirement.criteria.minGrade) * 100 })}:` @@ -77,7 +77,7 @@ const CreditInformation = () => { return ( <>
{eligibilityStatus}
+{eligibilityStatus}
{requirements} > ); diff --git a/src/course-home/progress-tab/grades/course-grade/CourseGrade.jsx b/src/course-home/progress-tab/grades/course-grade/CourseGrade.jsx index d69c6eee15..878340dd2d 100644 --- a/src/course-home/progress-tab/grades/course-grade/CourseGrade.jsx +++ b/src/course-home/progress-tab/grades/course-grade/CourseGrade.jsx @@ -1,4 +1,7 @@ +import React from 'react'; import { useIntl } from '@edx/frontend-platform/i18n'; +import classNames from 'classnames'; +import { breakpoints, useWindowSize } from '@openedx/paragon'; import { useContextId } from '../../../../data/hooks'; import { useModel } from '../../../../generic/model-store'; @@ -14,6 +17,8 @@ const CourseGrade = () => { const intl = useIntl(); const courseId = useContextId(); + const wideScreen = useWindowSize().width >= breakpoints.medium.minWidth; + const { creditCourseRequirements, gradesFeatureIsFullyLocked, @@ -37,7 +42,7 @@ const CourseGrade = () => { ? intl.formatMessage(messages.gradesAndCredit) : intl.formatMessage(messages.grades)} -+
{intl.formatMessage(messages.courseGradeBody)}
{intl.formatMessage(emptyTableMsg)}
++ {intl.formatMessage(emptyTableMsg)} +
)} {overviewTabUrl && !showUngradedAssignments() && ( -+
{intl.formatMessage(messages.ungradedAlert, { outlineLink })}
)} diff --git a/src/course-home/progress-tab/grades/grade-summary/DroppableAssignmentFootnote.jsx b/src/course-home/progress-tab/grades/grade-summary/DroppableAssignmentFootnote.jsx index 199fbb42f4..2a1a1158a6 100644 --- a/src/course-home/progress-tab/grades/grade-summary/DroppableAssignmentFootnote.jsx +++ b/src/course-home/progress-tab/grades/grade-summary/DroppableAssignmentFootnote.jsx @@ -1,4 +1,8 @@ +import React from 'react'; import PropTypes from 'prop-types'; +import classNames from 'classnames'; + +import { breakpoints, useWindowSize } from '@openedx/paragon'; import { useIntl } from '@edx/frontend-platform/i18n'; import { useContextId } from '../../../../data/hooks'; @@ -12,12 +16,14 @@ const DroppableAssignmentFootnote = ({ footnotes }) => { const { gradesFeatureIsFullyLocked, } = useModel('progress', courseId); + const wideScreen = useWindowSize().width >= breakpoints.medium.minWidth; + return ( <> {intl.formatMessage(messages.footnotesTitle)}