@@ -3,104 +3,31 @@ import {
33 getPermissions ,
44 getResourceTypes ,
55 RESOURCE_TYPES ,
6- RoleOperationErrorStatus ,
7- ROUTES ,
8- libraryRolesMetadata ,
96 courseRolesMetadata ,
10- libraryPermissions ,
11- libraryResourceTypes ,
12- CONTENT_LIBRARY_PERMISSIONS ,
13- COURSE_PERMISSIONS ,
147} from './constants' ;
158
16- describe ( 'ROUTES' , ( ) => {
17- it ( 'defines the expected paths' , ( ) => {
18- expect ( ROUTES . LIBRARIES_TEAM_PATH ) . toBe ( '/libraries/:libraryId' ) ;
19- expect ( ROUTES . LIBRARIES_USER_PATH ) . toBe ( '/libraries/:libraryId/:username' ) ;
20- expect ( ROUTES . ASSIGN_ROLE_WIZARD_PATH ) . toBe ( '/assign-role' ) ;
21- } ) ;
22- } ) ;
23-
24- describe ( 'RoleOperationErrorStatus' , ( ) => {
25- it ( 'has expected enum values' , ( ) => {
26- expect ( RoleOperationErrorStatus . USER_NOT_FOUND ) . toBe ( 'user_not_found' ) ;
27- expect ( RoleOperationErrorStatus . USER_ALREADY_HAS_ROLE ) . toBe ( 'user_already_has_role' ) ;
28- expect ( RoleOperationErrorStatus . USER_DOES_NOT_HAVE_ROLE ) . toBe ( 'user_does_not_have_role' ) ;
29- expect ( RoleOperationErrorStatus . ROLE_ASSIGNMENT_ERROR ) . toBe ( 'role_assignment_error' ) ;
30- expect ( RoleOperationErrorStatus . ROLE_REMOVAL_ERROR ) . toBe ( 'role_removal_error' ) ;
31- } ) ;
32- } ) ;
33-
349describe ( 'getRolesMetadata' , ( ) => {
35- it ( 'returns library roles for LIBRARY resource type' , ( ) => {
36- expect ( getRolesMetadata ( RESOURCE_TYPES . LIBRARY ) ) . toEqual ( libraryRolesMetadata ) ;
37- expect ( getRolesMetadata ( RESOURCE_TYPES . LIBRARY ) ) . toHaveLength ( 4 ) ;
38- } ) ;
39-
40- it ( 'returns course roles for COURSE resource type' , ( ) => {
41- expect ( getRolesMetadata ( RESOURCE_TYPES . COURSE ) ) . toEqual ( courseRolesMetadata ) ;
42- expect ( getRolesMetadata ( RESOURCE_TYPES . COURSE ) ) . toHaveLength ( 4 ) ;
43- } ) ;
44-
4510 it ( 'returns empty array for unknown resource type' , ( ) => {
4611 // @ts -expect-error testing invalid input
4712 expect ( getRolesMetadata ( 'unknown' ) ) . toEqual ( [ ] ) ;
4813 } ) ;
4914} ) ;
5015
5116describe ( 'getPermissions' , ( ) => {
52- it ( 'returns library permissions for LIBRARY resource type' , ( ) => {
53- expect ( getPermissions ( RESOURCE_TYPES . LIBRARY ) ) . toEqual ( libraryPermissions ) ;
54- expect ( getPermissions ( RESOURCE_TYPES . LIBRARY ) . length ) . toBeGreaterThan ( 0 ) ;
55- } ) ;
56-
57- it ( 'returns empty array for COURSE resource type' , ( ) => {
58- expect ( getPermissions ( RESOURCE_TYPES . COURSE ) ) . toEqual ( [ ] ) ;
17+ it ( 'returns empty array for unknown resource type' , ( ) => {
18+ // @ts -expect-error testing invalid input
19+ expect ( getPermissions ( 'unknown' ) ) . toEqual ( [ ] ) ;
5920 } ) ;
6021} ) ;
6122
6223describe ( 'getResourceTypes' , ( ) => {
63- it ( 'returns library resource types for LIBRARY resource type' , ( ) => {
64- expect ( getResourceTypes ( RESOURCE_TYPES . LIBRARY ) ) . toEqual ( libraryResourceTypes ) ;
65- expect ( getResourceTypes ( RESOURCE_TYPES . LIBRARY ) ) . toHaveLength ( 4 ) ;
66- } ) ;
67-
68- it ( 'returns empty array for COURSE resource type' , ( ) => {
69- expect ( getResourceTypes ( RESOURCE_TYPES . COURSE ) ) . toEqual ( [ ] ) ;
70- } ) ;
71- } ) ;
72-
73- describe ( 'libraryRolesMetadata' , ( ) => {
74- it ( 'includes all expected library roles' , ( ) => {
75- const roles = libraryRolesMetadata . map ( ( r ) => r . role ) ;
76- expect ( roles ) . toContain ( 'library_admin' ) ;
77- expect ( roles ) . toContain ( 'library_author' ) ;
78- expect ( roles ) . toContain ( 'library_contributor' ) ;
79- expect ( roles ) . toContain ( 'library_user' ) ;
80- } ) ;
81-
82- it ( 'all library roles have contextType "library"' , ( ) => {
83- libraryRolesMetadata . forEach ( ( r ) => {
84- expect ( r . contextType ) . toBe ( 'library' ) ;
85- } ) ;
24+ it ( 'returns empty array for unknown resource type' , ( ) => {
25+ // @ts -expect-error testing invalid input
26+ expect ( getResourceTypes ( 'unknown' ) ) . toEqual ( [ ] ) ;
8627 } ) ;
8728} ) ;
8829
8930describe ( 'courseRolesMetadata' , ( ) => {
90- it ( 'includes expected course roles' , ( ) => {
91- const roles = courseRolesMetadata . map ( ( r ) => r . role ) ;
92- expect ( roles ) . toContain ( 'course_admin' ) ;
93- expect ( roles ) . toContain ( 'course_staff' ) ;
94- expect ( roles ) . toContain ( 'course_editor' ) ;
95- expect ( roles ) . toContain ( 'course_auditor' ) ;
96- } ) ;
97-
98- it ( 'all course roles have contextType "course"' , ( ) => {
99- courseRolesMetadata . forEach ( ( r ) => {
100- expect ( r . contextType ) . toBe ( 'course' ) ;
101- } ) ;
102- } ) ;
103-
10431 it ( 'course_editor and course_auditor are disabled' , ( ) => {
10532 const editor = courseRolesMetadata . find ( ( r ) => r . role === 'course_editor' ) ;
10633 const auditor = courseRolesMetadata . find ( ( r ) => r . role === 'course_auditor' ) ;
@@ -115,83 +42,3 @@ describe('courseRolesMetadata', () => {
11542 expect ( staff ?. disabled ) . toBeUndefined ( ) ;
11643 } ) ;
11744} ) ;
118-
119- describe ( 'CONTENT_LIBRARY_PERMISSIONS' , ( ) => {
120- it ( 'defines all expected permission keys' , ( ) => {
121- expect ( CONTENT_LIBRARY_PERMISSIONS . DELETE_LIBRARY ) . toBe ( 'content_libraries.delete_library' ) ;
122- expect ( CONTENT_LIBRARY_PERMISSIONS . MANAGE_LIBRARY_TAGS ) . toBe ( 'content_libraries.manage_library_tags' ) ;
123- expect ( CONTENT_LIBRARY_PERMISSIONS . VIEW_LIBRARY ) . toBe ( 'content_libraries.view_library' ) ;
124- expect ( CONTENT_LIBRARY_PERMISSIONS . EDIT_LIBRARY_CONTENT ) . toBe ( 'content_libraries.edit_library_content' ) ;
125- expect ( CONTENT_LIBRARY_PERMISSIONS . PUBLISH_LIBRARY_CONTENT ) . toBe ( 'content_libraries.publish_library_content' ) ;
126- expect ( CONTENT_LIBRARY_PERMISSIONS . REUSE_LIBRARY_CONTENT ) . toBe ( 'content_libraries.reuse_library_content' ) ;
127- expect ( CONTENT_LIBRARY_PERMISSIONS . CREATE_LIBRARY_COLLECTION ) . toBe ( 'content_libraries.create_library_collection' ) ;
128- expect ( CONTENT_LIBRARY_PERMISSIONS . EDIT_LIBRARY_COLLECTION ) . toBe ( 'content_libraries.edit_library_collection' ) ;
129- expect ( CONTENT_LIBRARY_PERMISSIONS . DELETE_LIBRARY_COLLECTION ) . toBe ( 'content_libraries.delete_library_collection' ) ;
130- expect ( CONTENT_LIBRARY_PERMISSIONS . MANAGE_LIBRARY_TEAM ) . toBe ( 'content_libraries.manage_library_team' ) ;
131- expect ( CONTENT_LIBRARY_PERMISSIONS . VIEW_LIBRARY_TEAM ) . toBe ( 'content_libraries.view_library_team' ) ;
132- } ) ;
133- } ) ;
134-
135- describe ( 'COURSE_PERMISSIONS' , ( ) => {
136- it ( 'defines view permissions' , ( ) => {
137- expect ( COURSE_PERMISSIONS . VIEW_COURSE ) . toBe ( 'courses.view_course' ) ;
138- expect ( COURSE_PERMISSIONS . VIEW_COURSE_UPDATES ) . toBe ( 'courses.view_course_updates' ) ;
139- expect ( COURSE_PERMISSIONS . VIEW_PAGES_AND_RESOURCES ) . toBe ( 'courses.view_pages_and_resources' ) ;
140- expect ( COURSE_PERMISSIONS . VIEW_FILES ) . toBe ( 'courses.view_files' ) ;
141- expect ( COURSE_PERMISSIONS . VIEW_GRADING_SETTINGS ) . toBe ( 'courses.view_grading_settings' ) ;
142- expect ( COURSE_PERMISSIONS . VIEW_CHECKLISTS ) . toBe ( 'courses.view_checklists' ) ;
143- expect ( COURSE_PERMISSIONS . VIEW_COURSE_TEAM ) . toBe ( 'courses.view_course_team' ) ;
144- expect ( COURSE_PERMISSIONS . VIEW_SCHEDULE_AND_DETAILS ) . toBe ( 'courses.view_schedule_and_details' ) ;
145- } ) ;
146-
147- it ( 'defines edit permissions' , ( ) => {
148- expect ( COURSE_PERMISSIONS . EDIT_COURSE_CONTENT ) . toBe ( 'courses.edit_course_content' ) ;
149- expect ( COURSE_PERMISSIONS . MANAGE_LIBRARY_UPDATES ) . toBe ( 'courses.manage_library_updates' ) ;
150- expect ( COURSE_PERMISSIONS . MANAGE_COURSE_UPDATES ) . toBe ( 'courses.manage_course_updates' ) ;
151- expect ( COURSE_PERMISSIONS . MANAGE_PAGES_AND_RESOURCES ) . toBe ( 'courses.manage_pages_and_resources' ) ;
152- expect ( COURSE_PERMISSIONS . CREATE_FILES ) . toBe ( 'courses.create_files' ) ;
153- expect ( COURSE_PERMISSIONS . EDIT_FILES ) . toBe ( 'courses.edit_files' ) ;
154- expect ( COURSE_PERMISSIONS . EDIT_GRADING_SETTINGS ) . toBe ( 'courses.edit_grading_settings' ) ;
155- expect ( COURSE_PERMISSIONS . MANAGE_GROUP_CONFIGURATIONS ) . toBe ( 'courses.manage_group_configurations' ) ;
156- expect ( COURSE_PERMISSIONS . EDIT_DETAILS ) . toBe ( 'courses.edit_details' ) ;
157- expect ( COURSE_PERMISSIONS . MANAGE_TAGS ) . toBe ( 'courses.manage_tags' ) ;
158- } ) ;
159-
160- it ( 'defines publish and lifecycle permissions' , ( ) => {
161- expect ( COURSE_PERMISSIONS . PUBLISH_COURSE_CONTENT ) . toBe ( 'courses.publish_course_content' ) ;
162- expect ( COURSE_PERMISSIONS . DELETE_FILES ) . toBe ( 'courses.delete_files' ) ;
163- expect ( COURSE_PERMISSIONS . EDIT_SCHEDULE ) . toBe ( 'courses.edit_schedule' ) ;
164- expect ( COURSE_PERMISSIONS . MANAGE_ADVANCED_SETTINGS ) . toBe ( 'courses.manage_advanced_settings' ) ;
165- expect ( COURSE_PERMISSIONS . MANAGE_CERTIFICATES ) . toBe ( 'courses.manage_certificates' ) ;
166- expect ( COURSE_PERMISSIONS . IMPORT_COURSE ) . toBe ( 'courses.import_course' ) ;
167- expect ( COURSE_PERMISSIONS . EXPORT_COURSE ) . toBe ( 'courses.export_course' ) ;
168- expect ( COURSE_PERMISSIONS . EXPORT_TAGS ) . toBe ( 'courses.export_tags' ) ;
169- } ) ;
170-
171- it ( 'defines team and taxonomy permissions' , ( ) => {
172- expect ( COURSE_PERMISSIONS . MANAGE_COURSE_TEAM ) . toBe ( 'courses.manage_course_team' ) ;
173- expect ( COURSE_PERMISSIONS . MANAGE_TAXONOMIES ) . toBe ( 'courses.manage_taxonomies' ) ;
174- } ) ;
175-
176- it ( 'defines legacy role permissions' , ( ) => {
177- expect ( COURSE_PERMISSIONS . LEGACY_STAFF_ROLE_PERMISSIONS ) . toBe ( 'courses.legacy_staff_role_permissions' ) ;
178- expect ( COURSE_PERMISSIONS . LEGACY_INSTRUCTOR_ROLE_PERMISSIONS ) . toBe ( 'courses.legacy_instructor_role_permissions' ) ;
179- expect ( COURSE_PERMISSIONS . LEGACY_LIMITED_STAFF_ROLE_PERMISSIONS ) . toBe ( 'courses.legacy_limited_staff_role_permissions' ) ;
180- expect ( COURSE_PERMISSIONS . LEGACY_DATA_RESEARCHER_PERMISSIONS ) . toBe ( 'courses.legacy_data_researcher_permissions' ) ;
181- expect ( COURSE_PERMISSIONS . LEGACY_BETA_TESTER_PERMISSIONS ) . toBe ( 'courses.legacy_beta_tester_permissions' ) ;
182- } ) ;
183- } ) ;
184-
185- describe ( 'getPermissions default case' , ( ) => {
186- it ( 'returns empty array for unknown resource type' , ( ) => {
187- // @ts -expect-error testing invalid input
188- expect ( getPermissions ( 'unknown' ) ) . toEqual ( [ ] ) ;
189- } ) ;
190- } ) ;
191-
192- describe ( 'getResourceTypes default case' , ( ) => {
193- it ( 'returns empty array for unknown resource type' , ( ) => {
194- // @ts -expect-error testing invalid input
195- expect ( getResourceTypes ( 'unknown' ) ) . toEqual ( [ ] ) ;
196- } ) ;
197- } ) ;
0 commit comments