11import { isClientRoute , isCourseNavigationRoute } from './utils' ;
22import * as runtime from '../../../runtime' ;
3+ import * as provides from '../../provides' ;
34
45jest . mock ( '../../../runtime' ) ;
6+ jest . mock ( '../../provides' ) ;
57
68const mockGetActiveRoles = runtime . getActiveRoles as jest . MockedFunction < typeof runtime . getActiveRoles > ;
7- const mockGetProvidedData = runtime . getProvidedData as jest . MockedFunction < typeof runtime . getProvidedData > ;
9+ const mockGetProvidedRoles = provides . getProvidesAsRoles as jest . MockedFunction < typeof provides . getProvidesAsRoles > ;
810const mockGetUrlByRouteRole = runtime . getUrlByRouteRole as jest . MockedFunction < typeof runtime . getUrlByRouteRole > ;
911
1012describe ( 'isCourseNavigationRoute' , ( ) => {
1113 it ( 'returns true when a provided role is active' , ( ) => {
12- mockGetProvidedData . mockReturnValue ( [
13- { courseNavigationRoles : [ 'org.openedx.frontend.role.instructor' ] } ,
14- ] ) ;
14+ mockGetProvidedRoles . mockReturnValue ( [ 'org.openedx.frontend.role.instructor' ] ) ;
1515 mockGetActiveRoles . mockReturnValue ( [ 'org.openedx.frontend.role.instructor' ] ) ;
1616
1717 expect ( isCourseNavigationRoute ( ) ) . toBe ( true ) ;
1818 } ) ;
1919
2020 it ( 'returns false when no provided roles are active' , ( ) => {
21- mockGetProvidedData . mockReturnValue ( [
22- { courseNavigationRoles : [ 'org.openedx.frontend.role.instructor' ] } ,
23- ] ) ;
21+ mockGetProvidedRoles . mockReturnValue ( [ 'org.openedx.frontend.role.instructor' ] ) ;
2422 mockGetActiveRoles . mockReturnValue ( [ 'org.openedx.frontend.role.learning' ] ) ;
2523
2624 expect ( isCourseNavigationRoute ( ) ) . toBe ( false ) ;
2725 } ) ;
2826
2927 it ( 'returns false when no providers exist' , ( ) => {
30- mockGetProvidedData . mockReturnValue ( [ ] ) ;
28+ mockGetProvidedRoles . mockReturnValue ( [ ] ) ;
3129 mockGetActiveRoles . mockReturnValue ( [ 'org.openedx.frontend.role.instructor' ] ) ;
3230
3331 expect ( isCourseNavigationRoute ( ) ) . toBe ( false ) ;
@@ -36,45 +34,35 @@ describe('isCourseNavigationRoute', () => {
3634
3735describe ( 'isClientRoute' , ( ) => {
3836 it ( 'matches a pathname under a static route path' , ( ) => {
39- mockGetProvidedData . mockReturnValue ( [
40- { courseNavigationRoles : [ 'org.openedx.frontend.role.learning' ] } ,
41- ] ) ;
37+ mockGetProvidedRoles . mockReturnValue ( [ 'org.openedx.frontend.role.learning' ] ) ;
4238 mockGetUrlByRouteRole . mockReturnValue ( '/course' ) ;
4339
4440 expect ( isClientRoute ( '/course/outline' ) ) . toBe ( true ) ;
4541 } ) ;
4642
4743 it ( 'matches a pathname under a parameterized route path' , ( ) => {
48- mockGetProvidedData . mockReturnValue ( [
49- { courseNavigationRoles : [ 'org.openedx.frontend.role.instructor' ] } ,
50- ] ) ;
44+ mockGetProvidedRoles . mockReturnValue ( [ 'org.openedx.frontend.role.instructor' ] ) ;
5145 mockGetUrlByRouteRole . mockReturnValue ( '/instructor-dashboard/:courseId' ) ;
5246
5347 expect ( isClientRoute ( '/instructor-dashboard/course-v1:edX+DemoX+Demo' ) ) . toBe ( true ) ;
5448 } ) ;
5549
5650 it ( 'does not match a pathname outside the route prefix' , ( ) => {
57- mockGetProvidedData . mockReturnValue ( [
58- { courseNavigationRoles : [ 'org.openedx.frontend.role.instructor' ] } ,
59- ] ) ;
51+ mockGetProvidedRoles . mockReturnValue ( [ 'org.openedx.frontend.role.instructor' ] ) ;
6052 mockGetUrlByRouteRole . mockReturnValue ( '/instructor-dashboard/:courseId' ) ;
6153
6254 expect ( isClientRoute ( '/courses/some-course/instructor' ) ) . toBe ( false ) ;
6355 } ) ;
6456
6557 it ( 'returns false for external routes' , ( ) => {
66- mockGetProvidedData . mockReturnValue ( [
67- { courseNavigationRoles : [ 'org.openedx.frontend.role.learning' ] } ,
68- ] ) ;
58+ mockGetProvidedRoles . mockReturnValue ( [ 'org.openedx.frontend.role.learning' ] ) ;
6959 mockGetUrlByRouteRole . mockReturnValue ( 'https://external.example.com/course' ) ;
7060
7161 expect ( isClientRoute ( '/course/outline' ) ) . toBe ( false ) ;
7262 } ) ;
7363
7464 it ( 'returns false when role has no matching route' , ( ) => {
75- mockGetProvidedData . mockReturnValue ( [
76- { courseNavigationRoles : [ 'org.openedx.frontend.role.learning' ] } ,
77- ] ) ;
65+ mockGetProvidedRoles . mockReturnValue ( [ 'org.openedx.frontend.role.learning' ] ) ;
7866 mockGetUrlByRouteRole . mockReturnValue ( null ) ;
7967
8068 expect ( isClientRoute ( '/course/outline' ) ) . toBe ( false ) ;
0 commit comments