File tree Expand file tree Collapse file tree 3 files changed +39
-4
lines changed
src/containers/CourseCard/components/CourseCardBanners Expand file tree Collapse file tree 3 files changed +39
-4
lines changed Original file line number Diff line number Diff line change @@ -18,7 +18,12 @@ export const CourseBanner = ({ cardId }) => {
1818 const { formatMessage } = useIntl ( ) ;
1919 const formatDate = utilHooks . useFormatDate ( ) ;
2020
21- const { hasUnmetPrerequisites, isStaff, isTooEarly } = coursewareAccess ;
21+ const {
22+ hasUnmetPrerequisites,
23+ isStaff,
24+ isTooEarly,
25+ hasUnmetPrerequisitesList,
26+ } = coursewareAccess ;
2227
2328 if ( isVerified ) { return null ; }
2429
@@ -44,7 +49,15 @@ export const CourseBanner = ({ cardId }) => {
4449 ) }
4550
4651 { ( ! isStaff && hasUnmetPrerequisites ) && (
47- < Banner > { formatMessage ( messages . prerequisitesNotMet ) } </ Banner >
52+ < Banner >
53+ { formatMessage ( messages . prerequisitesNotMet ) }
54+ { hasUnmetPrerequisitesList . length > 0 && hasUnmetPrerequisitesList . map ( ( prerequisite , index ) => (
55+ < >
56+ < span > { index > 0 ? ', ' : ' ' } </ span >
57+ < a href = { prerequisite . about_url } > { prerequisite . display } </ a >
58+ </ >
59+ ) ) }
60+ </ Banner >
4861 ) }
4962 </ >
5063 ) ;
Original file line number Diff line number Diff line change @@ -71,9 +71,31 @@ describe('CourseBanner', () => {
7171 } ) ;
7272 describe ( 'unmet prerequisites' , ( ) => {
7373 it ( 'should display correct message' , ( ) => {
74- renderCourseBanner ( { enrollment : { coursewareAccess : { hasUnmetPrerequisites : true } } } ) ;
74+ renderCourseBanner ( {
75+ enrollment : {
76+ coursewareAccess : {
77+ hasUnmetPrerequisites : true ,
78+ hasUnmetPrerequisitesList : [
79+ {
80+ display : 'Prereq Course 1' ,
81+ about_url : 'https://example.com/about-1' ,
82+ } ,
83+ {
84+ display : 'Prereq Course 2' ,
85+ about_url : 'https://example.com/about-2' ,
86+ } ,
87+ ] ,
88+ } ,
89+ } ,
90+ } ) ;
7591 const preReqText = screen . getByText ( formatMessage ( messages . prerequisitesNotMet ) ) ;
7692 expect ( preReqText ) . toBeInTheDocument ( ) ;
93+ const preReqList1 = screen . getByText ( 'Prereq Course 1' ) ;
94+ const preReqList2 = screen . getByText ( 'Prereq Course 2' ) ;
95+ expect ( preReqList1 ) . toBeInTheDocument ( ) ;
96+ expect ( preReqList2 ) . toBeInTheDocument ( ) ;
97+ expect ( preReqList1 ) . toHaveAttribute ( 'href' , 'https://example.com/about-1' ) ;
98+ expect ( preReqList2 ) . toHaveAttribute ( 'href' , 'https://example.com/about-2' ) ;
7799 } ) ;
78100 } ) ;
79101 describe ( 'too early' , ( ) => {
Original file line number Diff line number Diff line change @@ -94,7 +94,7 @@ const messages = defineMessages({
9494 prerequisitesNotMet : {
9595 id : 'learner-dash.courseCard.banners.prerequisitesNotMet' ,
9696 description : 'Message to learners with unmet prerequisites' ,
97- defaultMessage : 'You can\'t access this course just yet because you have not met the pre-requisites. ' ,
97+ defaultMessage : 'You can\'t access this course just yet because you have not met the following pre-requisites: ' ,
9898 } ,
9999 courseHasNotStarted : {
100100 id : 'learner-dash.courseCard.banners.courseHasNotStarted' ,
You can’t perform that action at this time.
0 commit comments