diff --git a/src/components/EditSections/EditUserRoles/EditUserRoles.test.js b/src/components/EditSections/EditUserRoles/EditUserRoles.test.js index 3dfa5bc7b..fdd6a98cb 100644 --- a/src/components/EditSections/EditUserRoles/EditUserRoles.test.js +++ b/src/components/EditSections/EditUserRoles/EditUserRoles.test.js @@ -4,8 +4,10 @@ import { cleanup, waitFor } from '@folio/jest-config-stripes/testing-library/rea import userEvent from '@folio/jest-config-stripes/testing-library/user-event'; import renderWithRouter from 'helpers/renderWithRouter'; import { + IfPermission, useStripes, } from '@folio/stripes/core'; +import '__mock__/stripesCore.mock'; import { Form } from 'react-final-form'; import EditUserRoles from './EditUserRoles'; @@ -19,6 +21,7 @@ jest.mock('../../../hooks', () => ({ jest.mock('@folio/stripes/core', () => ({ ...jest.requireActual('@folio/stripes/core'), useStripes: jest.fn(), + IfPermission: jest.fn() })); jest.unmock('@folio/stripes/components'); @@ -95,6 +98,7 @@ describe('EditUserRoles Component', () => { beforeEach(() => { useStripes.mockClear().mockReturnValue(STRIPES); useAllRolesData.mockClear().mockReturnValue(mockAllRolesData); + IfPermission.mockImplementation(({ children }) => children); }); afterEach(cleanup); @@ -106,6 +110,22 @@ describe('EditUserRoles Component', () => { expect(queryByText('simple role')).not.toBeInTheDocument(); }); + it('hides the roles accordion when user doesn\'t have view roles permission', () => { + IfPermission.mockImplementation(({ perm, children }) => (perm !== 'ui-authorization-roles.users.settings.view' ? children : null)); + const { queryByText } = renderEditRolesAccordion(propsData); + + expect(queryByText('ui-users.roles.userRoles')).not.toBeInTheDocument(); + }); + + it('hides the add role button when user doesn\'t have manage roles permission', () => { + IfPermission.mockImplementation(({ perm, children }) => (perm !== 'ui-authorization-roles.users.settings.manage' ? children : null)); + const { getByText, queryByText } = renderEditRolesAccordion(propsData); + + expect(getByText('test role')).toBeInTheDocument(); + expect(getByText('admin role')).toBeInTheDocument(); + expect(queryByText('ui-users.roles.addRoles')).not.toBeInTheDocument(); + }); + it('calls delete user role function', async () => { const id = `clickable-remove-user-role-${mockAllRolesData.data.roles[0].id}`; renderEditRolesAccordion(propsData);