diff --git a/src/containers/CourseCard/components/Banners/EntitlementBanner.jsx b/src/containers/CourseCard/components/Banners/EntitlementBanner.jsx index 7f38de2..60d4e99 100644 --- a/src/containers/CourseCard/components/Banners/EntitlementBanner.jsx +++ b/src/containers/CourseCard/components/Banners/EntitlementBanner.jsx @@ -1,5 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; +import { useDispatch } from 'react-redux'; + import { useIntl } from '@edx/frontend-platform/i18n'; import { Button, MailtoLink } from '@edx/paragon'; @@ -7,10 +9,10 @@ import { hooks as appHooks } from 'data/redux'; import { dateFormatter } from 'utils'; import Banner from 'components/Banner'; -import useSelectSessionModalData from 'containers/SelectSessionModal/hooks'; import messages from './messages'; export const EntitlementBanner = ({ cardId }) => { + const dispatch = useDispatch(); const { isEntitlement, hasSessions, @@ -20,7 +22,7 @@ export const EntitlementBanner = ({ cardId }) => { isExpired, } = appHooks.useCardEntitlementsData(cardId); const { supportEmail } = appHooks.usePlatformSettingsData(); - const { openSessionModal } = useSelectSessionModalData({ cardId }); + const openSessionModal = appHooks.useUpdateSelectSessionModalCallback(dispatch, cardId); const { formatDate, formatMessage } = useIntl(); if (!isEntitlement) { @@ -42,7 +44,7 @@ export const EntitlementBanner = ({ cardId }) => { {formatMessage(messages.entitlementsExpiringSoon, { changeDeadline: dateFormatter(formatDate, changeDeadline), selectSessionButton: ( - ), diff --git a/src/containers/CourseCard/components/Banners/EntitlementBanner.test.jsx b/src/containers/CourseCard/components/Banners/EntitlementBanner.test.jsx index 132f066..6c89d90 100644 --- a/src/containers/CourseCard/components/Banners/EntitlementBanner.test.jsx +++ b/src/containers/CourseCard/components/Banners/EntitlementBanner.test.jsx @@ -1,5 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { useDispatch } from 'react-redux'; import { hooks as appHooks } from 'data/redux'; import EntitlementBanner from './EntitlementBanner'; @@ -9,11 +10,11 @@ jest.mock('data/redux', () => ({ hooks: { usePlatformSettingsData: jest.fn(), useCardEntitlementsData: jest.fn(), + useUpdateSelectSessionModalCallback: jest.fn( + (_, cardId) => jest.fn().mockName(`updateSelectSessionModalCallback(${cardId})`), + ), }, })); -jest.mock('containers/SelectSessionModal/hooks', () => () => ({ - openSessionModal: (cardId) => jest.fn().mockName(`useSelectSessionModalData.openSessionModal(${cardId})`), -})); const cardId = 'my-test-course-number'; @@ -35,10 +36,13 @@ const render = (overrides = {}) => { el = shallow(); }; +const dispatch = useDispatch(); + describe('EntitlementBanner', () => { it('initializes data with course number from entitlements', () => { render(); expect(appHooks.useCardEntitlementsData).toHaveBeenCalledWith(cardId); + expect(appHooks.useUpdateSelectSessionModalCallback).toHaveBeenCalledWith(dispatch, cardId); }); test('no display if not an entitlement', () => { render({ entitlements: { isEntitlement: false } }); diff --git a/src/containers/CourseCard/components/Banners/__snapshots__/EntitlementBanner.test.jsx.snap b/src/containers/CourseCard/components/Banners/__snapshots__/EntitlementBanner.test.jsx.snap index 743cfe3..a577329 100644 --- a/src/containers/CourseCard/components/Banners/__snapshots__/EntitlementBanner.test.jsx.snap +++ b/src/containers/CourseCard/components/Banners/__snapshots__/EntitlementBanner.test.jsx.snap @@ -15,7 +15,7 @@ exports[`EntitlementBanner snapshot: expiration warning 1`] = ` "changeDeadline": "11/11/2022", "selectSessionButton":