File tree Expand file tree Collapse file tree 3 files changed +25
-3
lines changed
Expand file tree Collapse file tree 3 files changed +25
-3
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ import {
2121 useCanUserRequestSubsidyForCourse ,
2222 useCourseEnrollmentUrl ,
2323 useUserHasSubsidyRequestForCourse ,
24+ useUserHasLearnerCreditRequestForCourse ,
2425 useUserSubsidyApplicableToCourse ,
2526} from '../../data/hooks' ;
2627import { determineEnrollmentType } from '../../enrollment/utils' ;
@@ -84,6 +85,7 @@ const CourseRunCard = ({
8485 const { userSubsidyApplicableToCourse } = useUserSubsidyApplicableToCourse ( ) ;
8586
8687 const userHasSubsidyRequestForCourse = useUserHasSubsidyRequestForCourse ( courseKey ) ;
88+ const userHasLearnerCreditRequest = useUserHasLearnerCreditRequestForCourse ( courseKey , [ 'requested' ] ) ;
8789
8890 const sku = useMemo (
8991 ( ) => findHighestLevelSku ( { seats, courseEntitlements } ) ,
@@ -104,6 +106,7 @@ const CourseRunCard = ({
104106 const enrollmentType = determineEnrollmentType ( {
105107 subsidyData : { userSubsidyApplicableToCourse } ,
106108 userHasSubsidyRequestForCourse,
109+ userHasLearnerCreditRequest,
107110 isUserEnrolled,
108111 isEnrollable,
109112 isCourseStarted,
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ describe('determineEnrollmentType', () => {
2222 isCourseStarted : true ,
2323 subsidyData : { userSubsidyApplicableToCourse : null } ,
2424 userHasSubsidyRequestForCourse : false ,
25+ userHasLearnerCreditRequest : false ,
2526 } ;
2627
2728 test ( 'resolves user-enrolled, course-started to "to courseware page" type' , ( ) => {
@@ -94,6 +95,20 @@ describe('determineEnrollmentType', () => {
9495 expect ( determineEnrollmentType ( args ) ) . toBe ( HIDE_BUTTON ) ;
9596 } ) ;
9697
98+ test ( 'prioritizes direct subsidy over a requestable one' , ( ) => {
99+ const args = {
100+ ...baseArgs ,
101+ subsidyData : {
102+ ...baseArgs . subsidyData ,
103+ userSubsidyApplicableToCourse : { subsidyType : LICENSE_SUBSIDY_TYPE } ,
104+ } ,
105+ userCanRequestSubsidyForCourse : true ,
106+ userHasSubsidyRequestForCourse : false ,
107+ userHasLearnerCreditRequest : false ,
108+ } ;
109+ expect ( determineEnrollmentType ( args ) ) . toBe ( TO_DATASHARING_CONSENT ) ;
110+ } ) ;
111+
97112 test . each ( [
98113 { hasSubsidyData : true } ,
99114 { hasSubsidyData : false } ,
Original file line number Diff line number Diff line change @@ -55,16 +55,20 @@ export function determineEnrollmentType({
5555 isEnrollable,
5656 isCourseStarted,
5757 userHasSubsidyRequestForCourse,
58+ userHasLearnerCreditRequest,
5859 isExecutiveEducation2UCourse,
5960 userCanRequestSubsidyForCourse,
6061} ) {
6162 if ( isUserEnrolled ) {
6263 return isCourseStarted ? TO_COURSEWARE_PAGE : VIEW_ON_DASHBOARD ;
6364 }
6465
65- // Hide enroll button if learner can request a subsidy for the course, or
66- // already has an pending subsidy request for the course.
67- if ( userHasSubsidyRequestForCourse || userCanRequestSubsidyForCourse ) {
66+ // Hide enroll button if learner can request a subsidy for the course (and has no direct subsidy),
67+ // or already has a pending subsidy request for the course.
68+ if (
69+ ( userCanRequestSubsidyForCourse && ! userSubsidyApplicableToCourse )
70+ || userHasLearnerCreditRequest || userHasSubsidyRequestForCourse
71+ ) {
6872 return HIDE_BUTTON ;
6973 }
7074
You can’t perform that action at this time.
0 commit comments