fix: begin button disable when audit access expire

This commit is contained in:
Leangseu Kim
2023-03-21 15:10:19 -04:00
committed by leangseu-edx
parent 9a5ac5ddf7
commit 5724d051b2
2 changed files with 8 additions and 3 deletions

View File

@@ -11,7 +11,7 @@ import messages from './messages';
export const BeginCourseButton = ({ cardId }) => {
const { formatMessage } = useIntl();
const { homeUrl } = reduxHooks.useCardCourseRunData(cardId);
const { hasAccess } = reduxHooks.useCardEnrollmentData(cardId);
const { hasAccess, isAudit, isAuditAccessExpired } = reduxHooks.useCardEnrollmentData(cardId);
const { isMasquerading } = reduxHooks.useMasqueradeData();
const handleClick = reduxHooks.useTrackCourseEvent(
track.course.enterCourseClicked,
@@ -20,7 +20,7 @@ export const BeginCourseButton = ({ cardId }) => {
);
return (
<ActionButton
disabled={isMasquerading || !hasAccess}
disabled={isMasquerading || !hasAccess || (isAudit && isAuditAccessExpired)}
as="a"
href="#"
onClick={handleClick}

View File

@@ -14,7 +14,7 @@ jest.mock('tracking', () => ({
jest.mock('hooks', () => ({
reduxHooks: {
useCardCourseRunData: jest.fn(() => ({ homeUrl: 'home-url' })),
useCardEnrollmentData: jest.fn(() => ({ hasAccess: true })),
useCardEnrollmentData: jest.fn(() => ({ hasAccess: true, isAudit: false, isAuditAccessExpired: false })),
useMasqueradeData: jest.fn(() => ({ isMasquerading: false })),
useTrackCourseEvent: jest.fn(
(eventName, cardId, upgradeUrl) => ({ trackCourseEvent: { eventName, cardId, upgradeUrl } }),
@@ -66,6 +66,11 @@ describe('BeginCourseButton', () => {
wrapper = shallow(<BeginCourseButton {...props} />);
expect(wrapper.prop(htmlProps.disabled)).toEqual(true);
});
test('audit access expired', () => {
reduxHooks.useCardEnrollmentData.mockReturnValueOnce({ isAudit: true, isAuditAccessExpired: true });
wrapper = shallow(<BeginCourseButton {...props} />);
expect(wrapper.prop(htmlProps.disabled)).toEqual(true);
});
});
});
});