1- import { screen } from '@testing-library/react' ;
1+ import { fireEvent , screen } from '@testing-library/react' ;
22import { renderWrapper } from '@src/setupTest' ;
33import { initializeMockApp } from '@edx/frontend-platform/testing' ;
44import { useLibrary } from '@src/authz-module/data/hooks' ;
@@ -29,6 +29,17 @@ jest.mock('./components/AddNewTeamMemberModal', () => ({
2929 AddNewTeamMemberTrigger : ( ) => < div data-testid = "add-team-member-trigger" > MockAddNewTeamMemberTrigger</ div > ,
3030} ) ) ;
3131
32+ jest . mock ( '../components/RoleCard' , ( ) => ( {
33+ __esModule : true ,
34+ default : ( { title, description, permissions } : { title : string , description : string , permissions : any [ ] } ) => (
35+ < div data-testid = "role-card" >
36+ < div > { title } </ div >
37+ < div > { description } </ div >
38+ < div > { permissions . length } permissions</ div >
39+ </ div >
40+ ) ,
41+ } ) ) ;
42+
3243describe ( 'LibrariesTeamManager' , ( ) => {
3344 beforeEach ( ( ) => {
3445 initializeMockApp ( {
@@ -41,8 +52,19 @@ describe('LibrariesTeamManager', () => {
4152 libraryName : 'Mock Library' ,
4253 libraryOrg : 'MockOrg' ,
4354 username : 'mockuser' ,
44- roles : [ 'admin' ] ,
45- permissions : [ ] ,
55+ roles : [
56+ {
57+ name : 'Instructor' ,
58+ description : 'Can manage content.' ,
59+ userCount : 3 ,
60+ permissions : [ 'view' , 'edit' ] ,
61+ } ,
62+ ] ,
63+ permissions : [
64+ { key : 'view_library' , label : 'view' , resource : 'library' } ,
65+ { key : 'edit_library' , name : 'edit' , resource : 'library' } ,
66+ ] ,
67+ resources : [ { key : 'library' , displayName : 'Library' } ] ,
4668 canManageTeam : true ,
4769 } ) ;
4870
@@ -72,4 +94,19 @@ describe('LibrariesTeamManager', () => {
7294 // AddNewTeamMemberTrigger is rendered
7395 expect ( screen . getByTestId ( 'add-team-member-trigger' ) ) . toBeInTheDocument ( ) ;
7496 } ) ;
97+
98+ it ( 'renders role cards when "Roles" tab is selected' , async ( ) => {
99+ renderWrapper ( < LibrariesTeamManager /> ) ;
100+
101+ // Click on "Roles" tab
102+ const rolesTab = await screen . findByRole ( 'tab' , { name : / r o l e s / i } ) ;
103+ fireEvent . click ( rolesTab ) ;
104+
105+ const roleCards = await screen . findAllByTestId ( 'role-card' ) ;
106+
107+ expect ( roleCards . length ) . toBeGreaterThan ( 0 ) ;
108+ expect ( screen . getByText ( 'Instructor' ) ) . toBeInTheDocument ( ) ;
109+ expect ( screen . getByText ( / C a n m a n a g e c o n t e n t / i) ) . toBeInTheDocument ( ) ;
110+ expect ( screen . getByText ( / 1 p e r m i s s i o n s / i) ) . toBeInTheDocument ( ) ;
111+ } ) ;
75112} ) ;
0 commit comments