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' ;
@@ -24,6 +24,17 @@ jest.mock('./components/TeamTable', () => ({
2424 default : ( ) => < div data-testid = "team-table" > MockTeamTable</ div > ,
2525} ) ) ;
2626
27+ jest . mock ( '../components/RoleCard' , ( ) => ( {
28+ __esModule : true ,
29+ default : ( { title, description, permissions } : { title : string , description : string , permissions : any [ ] } ) => (
30+ < div data-testid = "role-card" >
31+ < div > { title } </ div >
32+ < div > { description } </ div >
33+ < div > { permissions . length } permissions</ div >
34+ </ div >
35+ ) ,
36+ } ) ) ;
37+
2738describe ( 'LibrariesTeamManager' , ( ) => {
2839 beforeEach ( ( ) => {
2940 initializeMockApp ( {
@@ -36,8 +47,19 @@ describe('LibrariesTeamManager', () => {
3647 libraryName : 'Mock Library' ,
3748 libraryOrg : 'MockOrg' ,
3849 username : 'mockuser' ,
39- roles : [ 'admin' ] ,
40- permissions : [ ] ,
50+ roles : [
51+ {
52+ name : 'Instructor' ,
53+ description : 'Can manage content.' ,
54+ userCount : 3 ,
55+ permissions : [ 'view' , 'edit' ] ,
56+ } ,
57+ ] ,
58+ permissions : [
59+ { key : 'view_library' , label : 'view' , resource : 'library' } ,
60+ { key : 'edit_library' , name : 'edit' , resource : 'library' } ,
61+ ] ,
62+ resources : [ { key : 'library' , displayName : 'Library' } ] ,
4163 canManageTeam : true ,
4264 } ) ;
4365
@@ -64,4 +86,19 @@ describe('LibrariesTeamManager', () => {
6486 // TeamTable is rendered
6587 expect ( screen . getByTestId ( 'team-table' ) ) . toBeInTheDocument ( ) ;
6688 } ) ;
89+
90+ it ( 'renders role cards when "Roles" tab is selected' , async ( ) => {
91+ renderWrapper ( < LibrariesTeamManager /> ) ;
92+
93+ // Click on "Roles" tab
94+ const rolesTab = await screen . findByRole ( 'tab' , { name : / r o l e s / i } ) ;
95+ fireEvent . click ( rolesTab ) ;
96+
97+ const roleCards = await screen . findAllByTestId ( 'role-card' ) ;
98+
99+ expect ( roleCards . length ) . toBeGreaterThan ( 0 ) ;
100+ expect ( screen . getByText ( 'Instructor' ) ) . toBeInTheDocument ( ) ;
101+ expect ( screen . getByText ( / C a n m a n a g e c o n t e n t / i) ) . toBeInTheDocument ( ) ;
102+ expect ( screen . getByText ( / 1 p e r m i s s i o n s / i) ) . toBeInTheDocument ( ) ;
103+ } ) ;
67104} ) ;
0 commit comments