diff --git a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.jsx b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.jsx index 8dc3cbe..bb33419 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.jsx +++ b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.jsx @@ -11,10 +11,11 @@ import messages from './messages'; export const ApprovedContent = ({ cardId }) => { const { providerStatusUrl: href, providerName } = reduxHooks.useCardCreditData(cardId); + const { isMasquerading } = reduxHooks.useMasqueradeData(); const { formatMessage } = useIntl(); return ( ({ reduxHooks: { useCardCreditData: jest.fn(), + useMasqueradeData: jest.fn(), }, })); jest.mock('./components/CreditContent', () => 'CreditContent'); @@ -22,6 +23,7 @@ const credit = { providerName: 'test-credit-provider-name', }; reduxHooks.useCardCreditData.mockReturnValue(credit); +reduxHooks.useMasqueradeData.mockReturnValue({ isMasquerading: false }); describe('ApprovedContent component', () => { beforeEach(() => { @@ -44,6 +46,9 @@ describe('ApprovedContent component', () => { test('action.message is formatted viewCredit message', () => { expect(component.props().action.message).toEqual(formatMessage(messages.viewCredit)); }); + test('action.disabled is false', () => { + expect(component.props().action.disabled).toEqual(false); + }); test('message is formatted approved message', () => { expect(component.props().message).toEqual(formatMessage( messages.approved, diff --git a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.jsx b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.jsx index 8f3d641..082e914 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.jsx +++ b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.jsx @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { useIntl } from '@edx/frontend-platform/i18n'; +import { reduxHooks } from 'hooks'; import CreditContent from './components/CreditContent'; import ProviderLink from './components/ProviderLink'; import hooks from './hooks'; @@ -12,11 +13,13 @@ import messages from './messages'; export const MustRequestContent = ({ cardId }) => { const { formatMessage } = useIntl(); const { requestData, createCreditRequest } = hooks.useCreditRequestData(cardId); + const { isMasquerading } = reduxHooks.useMasqueradeData(); return ( ), diff --git a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.test.jsx b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.test.jsx index 663e69f..2642d52 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.test.jsx +++ b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.test.jsx @@ -3,6 +3,7 @@ import { shallow } from 'enzyme'; import { formatMessage } from 'testUtils'; +import { reduxHooks } from 'hooks'; import messages from './messages'; import hooks from './hooks'; import ProviderLink from './components/ProviderLink'; @@ -11,6 +12,9 @@ import MustRequestContent from './MustRequestContent'; jest.mock('./hooks', () => ({ useCreditRequestData: jest.fn(), })); +jest.mock('hooks', () => ({ + reduxHooks: { useMasqueradeData: jest.fn() }, +})); jest.mock('./components/CreditContent', () => 'CreditContent'); jest.mock('./components/ProviderLink', () => 'ProviderLink'); @@ -20,7 +24,11 @@ let component; const cardId = 'test-card-id'; const requestData = { test: 'requestData' }; const createCreditRequest = jest.fn().mockName('createCreditRequest'); -hooks.useCreditRequestData.mockReturnValue({ requestData, createCreditRequest }); +hooks.useCreditRequestData.mockReturnValue({ + requestData, + createCreditRequest, +}); +reduxHooks.useMasqueradeData.mockReturnValue({ isMasquerading: false }); const render = () => { el = shallow(); @@ -43,13 +51,18 @@ describe('MustRequestContent component', () => { expect(component.props().action.onClick).toEqual(createCreditRequest); }); test('action.message is formatted requestCredit message', () => { - expect(component.props().action.message).toEqual(formatMessage(messages.requestCredit)); + expect(component.props().action.message).toEqual( + formatMessage(messages.requestCredit), + ); + }); + test('action.disabled is false', () => { + expect(component.props().action.disabled).toEqual(false); }); test('message is formatted mustRequest message', () => { expect(component.props().message).toEqual( formatMessage(messages.mustRequest, { - linkToProviderSite: (), - requestCredit: ({formatMessage(messages.requestCredit)}), + linkToProviderSite: , + requestCredit: {formatMessage(messages.requestCredit)}, }), ); }); diff --git a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.jsx b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.jsx index 1cfe552..b7b44dc 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.jsx +++ b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.jsx @@ -9,12 +9,14 @@ import messages from './messages'; export const PendingContent = ({ cardId }) => { const { providerStatusUrl: href, providerName } = reduxHooks.useCardCreditData(cardId); + const { isMasquerading } = reduxHooks.useMasqueradeData(); const { formatMessage } = useIntl(); return ( diff --git a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.test.jsx b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.test.jsx index ca9ba13..431d0a0 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.test.jsx +++ b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.test.jsx @@ -7,7 +7,9 @@ import { reduxHooks } from 'hooks'; import messages from './messages'; import PendingContent from './PendingContent'; -jest.mock('hooks', () => ({ reduxHooks: { useCardCreditData: jest.fn() } })); +jest.mock('hooks', () => ({ + reduxHooks: { useCardCreditData: jest.fn(), useMasqueradeData: jest.fn() }, +})); jest.mock('./components/CreditContent', () => 'CreditContent'); jest.mock('./components/ProviderLink', () => 'ProviderLink'); @@ -17,7 +19,11 @@ let component; const cardId = 'test-card-id'; const providerName = 'test-credit-provider-name'; const providerStatusUrl = 'test-credit-provider-status-url'; -reduxHooks.useCardCreditData.mockReturnValue({ providerName, providerStatusUrl }); +reduxHooks.useCardCreditData.mockReturnValue({ + providerName, + providerStatusUrl, +}); +reduxHooks.useMasqueradeData.mockReturnValue({ isMasquerading: false }); const render = () => { el = shallow(); @@ -40,7 +46,12 @@ describe('PendingContent component', () => { expect(component.props().action.href).toEqual(providerStatusUrl); }); test('action.message is formatted requestCredit message', () => { - expect(component.props().action.message).toEqual(formatMessage(messages.viewDetails)); + expect(component.props().action.message).toEqual( + formatMessage(messages.viewDetails), + ); + }); + test('action.disabled is false', () => { + expect(component.props().action.disabled).toEqual(false); }); test('message is formatted pending message', () => { expect(component.props().message).toEqual( diff --git a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditContent.jsx b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditContent.jsx index 802abe5..965ac4f 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditContent.jsx +++ b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditContent.jsx @@ -13,7 +13,9 @@ export const CreditContent = ({ action, message, requestData }) => (