From 7f016e55aa5a72ec7753eb2debd539f23eb6952a Mon Sep 17 00:00:00 2001 From: Chris Deery <3932645+cdeery@users.noreply.github.com> Date: Tue, 25 Jan 2022 14:08:32 -0500 Subject: [PATCH] fix: [AA-1018] api cleanup Implement review feedback. Clean up tests --- .../data/__snapshots__/redux.test.js.snap | 72 +++++++++---------- src/course-home/dates-tab/DatesTab.test.jsx | 2 +- .../outline-tab/OutlineTab.test.jsx | 12 ++-- .../progress-tab/ProgressTab.test.jsx | 12 ++-- src/courseware/CoursewareContainer.test.jsx | 1 - .../course/NotificationTray.test.jsx | 6 +- .../course/sequence/Sequence.test.jsx | 2 +- .../course/sequence/honor-code/HonorCode.jsx | 7 +- src/courseware/data/thunks.js | 4 +- src/product-tours/ProductTours.test.jsx | 8 +-- src/setupTest.js | 2 +- .../courseMetadataBase.factory.js | 2 +- .../StreakCelebrationModal.jsx | 2 +- .../StreakCelebrationModal.test.jsx | 2 +- src/shared/streak-celebration/utils.jsx | 4 +- src/tab-page/LoadedTabPage.test.jsx | 7 +- 16 files changed, 71 insertions(+), 74 deletions(-) diff --git a/src/course-home/data/__snapshots__/redux.test.js.snap b/src/course-home/data/__snapshots__/redux.test.js.snap index bc746235..b9d86e3a 100644 --- a/src/course-home/data/__snapshots__/redux.test.js.snap +++ b/src/course-home/data/__snapshots__/redux.test.js.snap @@ -3,7 +3,7 @@ exports[`Data layer integration tests Test fetchDatesTab Should fetch, normalize, and save metadata 1`] = ` Object { "courseHome": Object { - "courseId": "course-v1:edX+DemoX+Demo_Course_1", + "courseId": "course-v1:edX+DemoX+Demo_Course", "courseStatus": "loaded", "proctoringPanelStatus": "loading", "targetUserId": undefined, @@ -19,7 +19,7 @@ Object { }, "models": Object { "courseHomeMeta": Object { - "course-v1:edX+DemoX+Demo_Course_1": Object { + "course-v1:edX+DemoX+Demo_Course": Object { "canLoadCourseware": false, "celebrations": null, "courseAccess": Object { @@ -30,7 +30,7 @@ Object { "userFragment": null, "userMessage": null, }, - "id": "course-v1:edX+DemoX+Demo_Course_1", + "id": "course-v1:edX+DemoX+Demo_Course", "isEnrolled": false, "isMasquerading": false, "isSelfPaced": false, @@ -43,32 +43,32 @@ Object { Object { "slug": "outline", "title": "Course", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/course/", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/course/", }, Object { "slug": "discussion", "title": "Discussion", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/discussion/forum/", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/discussion/forum/", }, Object { "slug": "wiki", "title": "Wiki", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/course_wiki", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/course_wiki", }, Object { "slug": "progress", "title": "Progress", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/progress", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/progress", }, Object { "slug": "instructor", "title": "Instructor", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/instructor", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/instructor", }, Object { "slug": "dates", "title": "Dates", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/dates", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/dates", }, ], "title": "Demonstration Course", @@ -82,7 +82,7 @@ Object { }, }, "dates": Object { - "course-v1:edX+DemoX+Demo_Course_1": Object { + "course-v1:edX+DemoX+Demo_Course": Object { "courseDateBlocks": Array [ Object { "date": "2020-05-01T17:59:41Z", @@ -296,7 +296,7 @@ Object { "verifiedUpgradeLink": "http://localhost:18130/basket/add/?sku=8CF08E5", }, "hasEnded": false, - "id": "course-v1:edX+DemoX+Demo_Course_1", + "id": "course-v1:edX+DemoX+Demo_Course", "learnerIsFullAccess": true, }, }, @@ -317,7 +317,7 @@ Object { exports[`Data layer integration tests Test fetchOutlineTab Should fetch, normalize, and save metadata 1`] = ` Object { "courseHome": Object { - "courseId": "course-v1:edX+DemoX+Demo_Course_1", + "courseId": "course-v1:edX+DemoX+Demo_Course", "courseStatus": "loaded", "proctoringPanelStatus": "loading", "targetUserId": undefined, @@ -333,7 +333,7 @@ Object { }, "models": Object { "courseHomeMeta": Object { - "course-v1:edX+DemoX+Demo_Course_1": Object { + "course-v1:edX+DemoX+Demo_Course": Object { "canLoadCourseware": false, "celebrations": null, "courseAccess": Object { @@ -344,7 +344,7 @@ Object { "userFragment": null, "userMessage": null, }, - "id": "course-v1:edX+DemoX+Demo_Course_1", + "id": "course-v1:edX+DemoX+Demo_Course", "isEnrolled": false, "isMasquerading": false, "isSelfPaced": false, @@ -357,32 +357,32 @@ Object { Object { "slug": "outline", "title": "Course", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/course/", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/course/", }, Object { "slug": "discussion", "title": "Discussion", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/discussion/forum/", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/discussion/forum/", }, Object { "slug": "wiki", "title": "Wiki", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/course_wiki", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/course_wiki", }, Object { "slug": "progress", "title": "Progress", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/progress", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/progress", }, Object { "slug": "instructor", "title": "Instructor", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/instructor", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/instructor", }, Object { "slug": "dates", "title": "Dates", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/dates", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/dates", }, ], "title": "Demonstration Course", @@ -396,7 +396,7 @@ Object { }, }, "outline": Object { - "course-v1:edX+DemoX+Demo_Course_1": Object { + "course-v1:edX+DemoX+Demo_Course": Object { "accessExpiration": null, "canShowUpgradeSock": false, "certData": Object { @@ -409,7 +409,7 @@ Object { "courses": Object { "block-v1:edX+DemoX+Demo_Course+type@course+block@bcdabcdabcdabcdabcdabcdabcdabcd3": Object { "hasScheduledContent": false, - "id": "course-v1:edX+DemoX+Demo_Course_1", + "id": "course-v1:edX+DemoX+Demo_Course", "sectionIds": Array [ "block-v1:edX+DemoX+Demo_Course+type@chapter+block@bcdabcdabcdabcdabcdabcdabcdabcd2", ], @@ -419,7 +419,7 @@ Object { "sections": Object { "block-v1:edX+DemoX+Demo_Course+type@chapter+block@bcdabcdabcdabcdabcdabcdabcdabcd2": Object { "complete": false, - "courseId": "course-v1:edX+DemoX+Demo_Course_1", + "courseId": "course-v1:edX+DemoX+Demo_Course", "id": "block-v1:edX+DemoX+Demo_Course+type@chapter+block@bcdabcdabcdabcdabcdabcdabcdabcd2", "resumeBlock": false, "sequenceIds": Array [ @@ -475,7 +475,7 @@ Object { "handoutsHtml": "", "hasEnded": undefined, "hasScheduledContent": null, - "id": "course-v1:edX+DemoX+Demo_Course_1", + "id": "course-v1:edX+DemoX+Demo_Course", "offer": null, "resumeCourse": Object { "hasVisitedCourse": false, @@ -511,7 +511,7 @@ Object { exports[`Data layer integration tests Test fetchProgressTab Should fetch, normalize, and save metadata 1`] = ` Object { "courseHome": Object { - "courseId": "course-v1:edX+DemoX+Demo_Course_1", + "courseId": "course-v1:edX+DemoX+Demo_Course", "courseStatus": "loaded", "proctoringPanelStatus": "loading", "targetUserId": undefined, @@ -527,7 +527,7 @@ Object { }, "models": Object { "courseHomeMeta": Object { - "course-v1:edX+DemoX+Demo_Course_1": Object { + "course-v1:edX+DemoX+Demo_Course": Object { "canLoadCourseware": false, "celebrations": null, "courseAccess": Object { @@ -538,7 +538,7 @@ Object { "userFragment": null, "userMessage": null, }, - "id": "course-v1:edX+DemoX+Demo_Course_1", + "id": "course-v1:edX+DemoX+Demo_Course", "isEnrolled": false, "isMasquerading": false, "isSelfPaced": false, @@ -551,32 +551,32 @@ Object { Object { "slug": "outline", "title": "Course", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/course/", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/course/", }, Object { "slug": "discussion", "title": "Discussion", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/discussion/forum/", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/discussion/forum/", }, Object { "slug": "wiki", "title": "Wiki", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/course_wiki", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/course_wiki", }, Object { "slug": "progress", "title": "Progress", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/progress", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/progress", }, Object { "slug": "instructor", "title": "Instructor", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/instructor", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/instructor", }, Object { "slug": "dates", "title": "Dates", - "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/dates", + "url": "http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/dates", }, ], "title": "Demonstration Course", @@ -590,7 +590,7 @@ Object { }, }, "progress": Object { - "course-v1:edX+DemoX+Demo_Course_1": Object { + "course-v1:edX+DemoX+Demo_Course": Object { "accessExpiration": null, "certificateData": Object {}, "completionSummary": Object { @@ -604,7 +604,7 @@ Object { "percent": 1, "visiblePercent": 1, }, - "courseId": "course-v1:edX+DemoX+Demo_Course_1", + "courseId": "course-v1:edX+DemoX+Demo_Course", "creditCourseRequirements": null, "end": "3027-03-31T00:00:00Z", "enrollmentMode": "audit", @@ -626,7 +626,7 @@ Object { }, }, "hasScheduledContent": false, - "id": "course-v1:edX+DemoX+Demo_Course_1", + "id": "course-v1:edX+DemoX+Demo_Course", "sectionScores": Array [ Object { "displayName": "First section", diff --git a/src/course-home/dates-tab/DatesTab.test.jsx b/src/course-home/dates-tab/DatesTab.test.jsx index d9c00dd8..85880557 100644 --- a/src/course-home/dates-tab/DatesTab.test.jsx +++ b/src/course-home/dates-tab/DatesTab.test.jsx @@ -51,7 +51,7 @@ describe('DatesTab', () => { courseMetadataUrl = appendBrowserTimezoneToUrl(courseMetadataUrl); function setMetadata(attributes, options) { - courseMetadata = Factory.build('courseHomeMetadata', { id: courseId, ...attributes }, options); + courseMetadata = Factory.build('courseHomeMetadata', attributes, options); axiosMock.onGet(courseMetadataUrl).reply(200, courseMetadata); } diff --git a/src/course-home/outline-tab/OutlineTab.test.jsx b/src/course-home/outline-tab/OutlineTab.test.jsx index 53167318..5fc5b99d 100644 --- a/src/course-home/outline-tab/OutlineTab.test.jsx +++ b/src/course-home/outline-tab/OutlineTab.test.jsx @@ -28,7 +28,7 @@ jest.mock('@edx/frontend-platform/analytics'); describe('Outline Tab', () => { let axiosMock; - const courseId = 'course-v1:edX+Test+run'; + const courseId = 'course-v1:edX+DemoX+Demo_Course'; let courseMetadataUrl = `${getConfig().LMS_BASE_URL}/api/course_home/course_metadata/${courseId}`; courseMetadataUrl = appendBrowserTimezoneToUrl(courseMetadataUrl); const enrollmentUrl = `${getConfig().LMS_BASE_URL}/api/enrollment/v1/enrollment`; @@ -38,11 +38,11 @@ describe('Outline Tab', () => { const proctoringInfoUrl = `${getConfig().LMS_BASE_URL}/api/edx_proctoring/v1/user_onboarding/status?is_learning_mfe=true&course_id=${encodeURIComponent(courseId)}&username=MockUser`; const store = initializeStore(); - const defaultMetadata = Factory.build('courseHomeMetadata', { id: courseId }); + const defaultMetadata = Factory.build('courseHomeMetadata'); const defaultTabData = Factory.build('outlineTabData'); function setMetadata(attributes, options) { - const courseMetadata = Factory.build('courseHomeMetadata', { id: courseId, ...attributes }, options); + const courseMetadata = Factory.build('courseHomeMetadata', attributes, options); axiosMock.onGet(courseMetadataUrl).reply(200, courseMetadata); } @@ -785,7 +785,7 @@ describe('Outline Tab', () => { expect(sendTrackEvent).toHaveBeenCalledTimes(1); expect(sendTrackEvent).toHaveBeenCalledWith('edx.ui.lms.course_outline.certificate_alert_request_cert_button.clicked', { - courserun_key: 'course-v1:edX+Test+run', + courserun_key: courseId, is_staff: false, org_key: 'edX', }); @@ -829,7 +829,7 @@ describe('Outline Tab', () => { expect(sendTrackEvent).toHaveBeenCalledTimes(1); expect(sendTrackEvent).toHaveBeenCalledWith('edx.ui.lms.course_outline.certificate_alert_downloadable_button.clicked', { - courserun_key: 'course-v1:edX+Test+run', + courserun_key: courseId, is_staff: false, org_key: 'edX', }); @@ -873,7 +873,7 @@ describe('Outline Tab', () => { expect(sendTrackEvent).toHaveBeenCalledTimes(1); expect(sendTrackEvent).toHaveBeenCalledWith('edx.ui.lms.course_outline.certificate_alert_unverified_button.clicked', { - courserun_key: 'course-v1:edX+Test+run', + courserun_key: courseId, is_staff: false, org_key: 'edX', }); diff --git a/src/course-home/progress-tab/ProgressTab.test.jsx b/src/course-home/progress-tab/ProgressTab.test.jsx index fa6c38e5..e3824fa7 100644 --- a/src/course-home/progress-tab/ProgressTab.test.jsx +++ b/src/course-home/progress-tab/ProgressTab.test.jsx @@ -21,18 +21,18 @@ jest.mock('@edx/frontend-platform/analytics'); describe('Progress Tab', () => { let axiosMock; - const courseId = 'course-v1:edX+Test+run'; + const store = initializeStore(); + const defaultMetadata = Factory.build('courseHomeMetadata'); + const defaultTabData = Factory.build('progressTabData'); + + const courseId = defaultMetadata.id; let courseMetadataUrl = `${getConfig().LMS_BASE_URL}/api/course_home/course_metadata/${courseId}`; courseMetadataUrl = appendBrowserTimezoneToUrl(courseMetadataUrl); const progressUrl = new RegExp(`${getConfig().LMS_BASE_URL}/api/course_home/progress/*`); const masqueradeUrl = `${getConfig().LMS_BASE_URL}/courses/${courseId}/masquerade`; - const store = initializeStore(); - const defaultMetadata = Factory.build('courseHomeMetadata', { id: courseId }); - const defaultTabData = Factory.build('progressTabData'); - function setMetadata(attributes, options) { - const courseMetadata = Factory.build('courseHomeMetadata', { id: courseId, ...attributes }, options); + const courseMetadata = Factory.build('courseHomeMetadata', attributes, options); axiosMock.onGet(courseMetadataUrl).reply(200, courseMetadata); } diff --git a/src/courseware/CoursewareContainer.test.jsx b/src/courseware/CoursewareContainer.test.jsx index 465266d2..05d65daf 100644 --- a/src/courseware/CoursewareContainer.test.jsx +++ b/src/courseware/CoursewareContainer.test.jsx @@ -425,7 +425,6 @@ describe('CoursewareContainer', () => { error_code: errorCode, additional_context_user_message: 'uhoh oh no', // only used by audit_expired }, - id: courseMetadata.id, }); const courseId = courseMetadata.id; diff --git a/src/courseware/course/NotificationTray.test.jsx b/src/courseware/course/NotificationTray.test.jsx index 6d688bd4..12a1d07f 100644 --- a/src/courseware/course/NotificationTray.test.jsx +++ b/src/courseware/course/NotificationTray.test.jsx @@ -22,14 +22,12 @@ describe('NotificationTray', () => { let axiosMock; let store; - const courseId = 'course-v1:edX+DemoX+Demo_Course'; - - const defaultMetadata = Factory.build('courseMetadata', { id: courseId }); + const defaultMetadata = Factory.build('courseMetadata'); let courseMetadataUrl = `${getConfig().LMS_BASE_URL}/api/courseware/course/${defaultMetadata.id}`; courseMetadataUrl = appendBrowserTimezoneToUrl(courseMetadataUrl); function setMetadata(attributes, options) { - const courseMetadata = Factory.build('courseMetadata', { id: courseId, ...attributes }, options); + const courseMetadata = Factory.build('courseMetadata', attributes, options); axiosMock.onGet(courseMetadataUrl).reply(200, courseMetadata); } diff --git a/src/courseware/course/sequence/Sequence.test.jsx b/src/courseware/course/sequence/Sequence.test.jsx index 7e89e829..de4761a5 100644 --- a/src/courseware/course/sequence/Sequence.test.jsx +++ b/src/courseware/course/sequence/Sequence.test.jsx @@ -108,7 +108,7 @@ describe('Sequence', () => { expect(screen.queryByText('The due date for this assignment has passed.')).toBeInTheDocument(); }); expect(screen.getByRole('link', { name: 'progress page' })) - .toHaveAttribute('href', 'http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course_1/progress'); + .toHaveAttribute('href', 'http://localhost:18000/courses/course-v1:edX+DemoX+Demo_Course/progress'); // No normal content or navigation should be rendered. Just the above alert. expect(screen.queryAllByRole('button').length).toEqual(0); diff --git a/src/courseware/course/sequence/honor-code/HonorCode.jsx b/src/courseware/course/sequence/honor-code/HonorCode.jsx index c819f3d0..0866d295 100644 --- a/src/courseware/course/sequence/honor-code/HonorCode.jsx +++ b/src/courseware/course/sequence/honor-code/HonorCode.jsx @@ -12,7 +12,10 @@ import messages from './messages'; function HonorCode({ intl, courseId }) { const dispatch = useDispatch(); - const coursewareMetaData = useModel('courseHomeMeta', courseId); + const { + isMasquerading, + username, + } = useModel('courseHomeMeta', courseId); const authUser = getAuthenticatedUser(); const siteName = getConfig().SITE_NAME; const honorCodeUrl = `${getConfig().TERMS_OF_SERVICE_URL}#honor-code`; @@ -26,7 +29,7 @@ function HonorCode({ intl, courseId }) { // Otherwise, even for staff users, we want to record the signature. saveIntegritySignature( courseId, - coursewareMetaData.isMasquerading && coursewareMetaData.username !== authUser.username, + isMasquerading && username !== authUser.username, ), ); diff --git a/src/courseware/data/thunks.js b/src/courseware/data/thunks.js index 6fbd80ca..0e746c33 100644 --- a/src/courseware/data/thunks.js +++ b/src/courseware/data/thunks.js @@ -204,7 +204,9 @@ export function fetchCourse(courseId) { if (!fetchedMetadata) { logError(courseMetadataResult.reason); } - + if (!fetchedCourseHomeMetadata) { + logError(courseHomeMetadataResult.reason); + } if (fetchedMetadata && fetchedCourseHomeMetadata) { if (courseHomeMetadataResult.value.courseAccess.hasAccess && fetchedBlocks) { // User has access diff --git a/src/product-tours/ProductTours.test.jsx b/src/product-tours/ProductTours.test.jsx index 9f5149ac..561f3791 100644 --- a/src/product-tours/ProductTours.test.jsx +++ b/src/product-tours/ProductTours.test.jsx @@ -32,10 +32,10 @@ const popperMock = jest.spyOn(popper, 'createPopper'); describe('Course Home Tours', () => { let axiosMock; - const courseId = 'course-v1:edX+Test+run'; + const courseId = 'course-v1:edX+DemoX+Demo_Course'; let courseMetadataUrl = `${getConfig().LMS_BASE_URL}/api/course_home/course_metadata/${courseId}`; courseMetadataUrl = appendBrowserTimezoneToUrl(courseMetadataUrl); - const defaultMetadata = Factory.build('courseHomeMetadata', { id: courseId }); + const defaultMetadata = Factory.build('courseHomeMetadata'); const outlineUrl = `${getConfig().LMS_BASE_URL}/api/course_home/outline/${courseId}`; const tourDataUrl = `${getConfig().LMS_BASE_URL}/api/user_tours/v1/MockUser`; @@ -45,7 +45,7 @@ describe('Course Home Tours', () => { const defaultTabData = Factory.build('outlineTabData'); function setMetadata(attributes, options) { - const courseMetadata = Factory.build('courseHomeMetadata', { id: courseId, ...attributes }, options); + const courseMetadata = Factory.build('courseHomeMetadata', attributes, options); axiosMock.onGet(courseMetadataUrl).reply(200, courseMetadata); } @@ -272,7 +272,7 @@ describe('Courseware Tour', () => { const courseMetadataUrl = appendBrowserTimezoneToUrl(`${getConfig().LMS_BASE_URL}/api/courseware/course/${courseId}`); axiosMock.onGet(courseMetadataUrl).reply(200, defaultCourseMetadata); - const defaultCourseHomeMetadata = Factory.build('courseHomeMetadata', { id: courseId, courseId }); + const defaultCourseHomeMetadata = Factory.build('courseHomeMetadata'); const courseHomeMetadataUrl = appendBrowserTimezoneToUrl(`${getConfig().LMS_BASE_URL}/api/course_home/course_metadata/${courseId}`); axiosMock.onGet(courseHomeMetadataUrl).reply(200, defaultCourseHomeMetadata); diff --git a/src/setupTest.js b/src/setupTest.js index c38ddbd3..63bb0e10 100755 --- a/src/setupTest.js +++ b/src/setupTest.js @@ -31,7 +31,7 @@ class MockLoggingService { logInfo = jest.fn(infoString => console.log(infoString)); // eslint-disable-next-line no-console - logError = jest.fn(infoString => console.log(infoString)); + logError = jest.fn(errorString => console.log(errorString)); } window.getComputedStyle = jest.fn(() => ({ diff --git a/src/shared/data/__factories__/courseMetadataBase.factory.js b/src/shared/data/__factories__/courseMetadataBase.factory.js index 440a470e..b379dee8 100644 --- a/src/shared/data/__factories__/courseMetadataBase.factory.js +++ b/src/shared/data/__factories__/courseMetadataBase.factory.js @@ -7,7 +7,7 @@ import './tab.factory'; export default new Factory() .option('host') .attrs({ - id: 'course-v1:edX+DemoX+Demo_Course_1', + id: 'course-v1:edX+DemoX+Demo_Course', is_staff: false, original_user_is_staff: false, number: 'DemoX', diff --git a/src/shared/streak-celebration/StreakCelebrationModal.jsx b/src/shared/streak-celebration/StreakCelebrationModal.jsx index edc01ff8..fd14d2a7 100644 --- a/src/shared/streak-celebration/StreakCelebrationModal.jsx +++ b/src/shared/streak-celebration/StreakCelebrationModal.jsx @@ -155,7 +155,7 @@ function StreakModal({ title={title} onClose={() => { closeStreakCelebration(); - recordModalClosing('courseHomeMeta', celebrations, org, courseId, dispatch); + recordModalClosing(celebrations, org, courseId, dispatch); }} isOpen={isStreakCelebrationOpen} isFullscreenScroll diff --git a/src/shared/streak-celebration/StreakCelebrationModal.test.jsx b/src/shared/streak-celebration/StreakCelebrationModal.test.jsx index 0ac9782d..9528ab35 100644 --- a/src/shared/streak-celebration/StreakCelebrationModal.test.jsx +++ b/src/shared/streak-celebration/StreakCelebrationModal.test.jsx @@ -23,7 +23,7 @@ describe('Loaded Tab Page', () => { let axiosMock; const calculateUrl = `${getConfig().ECOMMERCE_BASE_URL}/api/v2/baskets/calculate/?code=ZGY11119949&sku=8CF08E5&username=MockUser`; const courseMetadata = Factory.build('courseMetadata', { celebrations: { streak_length_to_celebrate: 3 } }); - const courseHomeMetadata = Factory.build('courseHomeMetadata', { id: courseMetadata.id, courseId: courseMetadata.courseId }); + const courseHomeMetadata = Factory.build('courseHomeMetadata'); function setDiscount(percent) { mockData.streakDiscountCouponEnabled = true; diff --git a/src/shared/streak-celebration/utils.jsx b/src/shared/streak-celebration/utils.jsx index 026d2565..a96b4fbf 100644 --- a/src/shared/streak-celebration/utils.jsx +++ b/src/shared/streak-celebration/utils.jsx @@ -13,10 +13,10 @@ function recordStreakCelebration(org, courseId) { }); } -function recordModalClosing(metadataModel, celebrations, org, courseId, dispatch) { +function recordModalClosing(celebrations, org, courseId, dispatch) { // Ensure we only celebrate each streak once dispatch(updateModel({ - modelType: metadataModel, + modelType: 'courseHomeMeta', model: { id: courseId, celebrations: { ...celebrations, streakLengthToCelebrate: null }, diff --git a/src/tab-page/LoadedTabPage.test.jsx b/src/tab-page/LoadedTabPage.test.jsx index ac3bdaac..54d59c3b 100644 --- a/src/tab-page/LoadedTabPage.test.jsx +++ b/src/tab-page/LoadedTabPage.test.jsx @@ -25,12 +25,7 @@ describe('Loaded Tab Page', () => { it('shows Instructor Toolbar if original user is staff', async () => { const courseMetadata = Factory.build('courseMetadata', { original_user_is_staff: true }); - const courseHomeMetadata = Factory.build('courseHomeMetadata', { - courseId: courseMetadata.id, - // need to synchronize the id with the courseMetadata because it is autoincremented by courseMetadataBase - id: courseMetadata.id, - original_user_is_staff: true, - }); + const courseHomeMetadata = Factory.build('courseHomeMetadata', { original_user_is_staff: true }); const testStore = await initializeTestStore( { courseMetadata,