Skip to content

Commit b760584

Browse files
fix: base bradcrumb item with no link set (#32)
1 parent a0dc22c commit b760584

5 files changed

Lines changed: 29 additions & 9 deletions

File tree

src/authz-module/index.scss

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@
33
.authz-libraries {
44
--height-action-divider: 30px;
55

6-
.pgn__breadcrumb li:first-child a {
7-
color: var(--pgn-color-breadcrumb-active);
8-
text-decoration: none;
9-
}
10-
116
hr {
127
border-top: var(--pgn-size-border-width) solid var(--pgn-color-border);
138
width: 100%;

src/authz-module/libraries-manager/LibrariesTeamManager.test.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,4 +191,12 @@ describe('LibrariesTeamManager', () => {
191191
expect(readPublicToggle).toBeInTheDocument();
192192
expect(readPublicToggle).toBeDisabled();
193193
});
194+
195+
it('renders correct navigation link label and URL on breadcrumb', () => {
196+
renderTeamManager();
197+
const navLink = screen.getByRole('link', { name: 'Manage Access' });
198+
expect(navLink).toBeInTheDocument();
199+
// TODO: Update expected URL when dedicated Manage Access page is created
200+
expect(navLink).toHaveAttribute('href', '/authz/libraries/lib-001');
201+
});
194202
});

src/authz-module/libraries-manager/LibrariesTeamManager.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
} from '@openedx/paragon';
66
import { useLibrary } from '@src/authz-module/data/hooks';
77
import { useLocation } from 'react-router-dom';
8+
import { ROUTES } from '@src/authz-module/constants';
89
import TeamTable from './components/TeamTable';
910
import AuthZLayout from '../components/AuthZLayout';
1011
import RoleCard from '../components/RoleCard';
@@ -23,8 +24,9 @@ const LibrariesTeamManager = () => {
2324
libraryId, canManageTeam, roles, permissions, resources,
2425
} = useLibraryAuthZ();
2526
const { data: library } = useLibrary(libraryId);
26-
const rootBradecrumb = intl.formatMessage(messages['library.authz.breadcrumb.root']) || '';
27+
const rootBreadcrumb = intl.formatMessage(messages['library.authz.breadcrumb.root']) || '';
2728
const pageTitle = intl.formatMessage(messages['library.authz.manage.page.title']);
29+
const teamMembersPath = `/authz${ROUTES.LIBRARIES_TEAM_PATH.replace(':libraryId', libraryId)}`;
2830

2931
const [libraryPermissionsByRole, libraryPermissionsByResource] = useMemo(() => {
3032
if (!roles && !permissions && !resources) { return [null, null]; }
@@ -42,7 +44,9 @@ const LibrariesTeamManager = () => {
4244
<div className="authz-libraries">
4345
<AuthZLayout
4446
context={{ id: libraryId, title: library.title, org: library.org }}
45-
navLinks={[{ label: rootBradecrumb }]}
47+
// Temporarily setting '/authz/libraries/:libraryId' as the URL for Manage Access breadcrumb for now as
48+
// currently we do not have a dedicated page. TODO: Update when such page is created.
49+
navLinks={[{ label: rootBreadcrumb, to: teamMembersPath }]}
4650
activeLabel={pageTitle}
4751
pageTitle={pageTitle}
4852
pageSubtitle={libraryId}

src/authz-module/libraries-manager/LibrariesUserManager.test.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,17 @@ describe('LibrariesUserManager', () => {
151151
expect(screen.getByText('Assign Role')).toBeInTheDocument();
152152
});
153153

154+
it('renders correct navigation link label and URL on breadcrumb', () => {
155+
renderComponent();
156+
const navLinkManageAccess = screen.getByRole('link', { name: 'Manage Access' });
157+
expect(navLinkManageAccess).toBeInTheDocument();
158+
// TODO: Update expected URL when dedicated Manage Access page is created
159+
expect(navLinkManageAccess).toHaveAttribute('href', '/authz/libraries/lib:123');
160+
const navLinkLibraryTeamManagement = screen.getByRole('link', { name: 'Library Team Management' });
161+
expect(navLinkLibraryTeamManagement).toBeInTheDocument();
162+
expect(navLinkLibraryTeamManagement).toHaveAttribute('href', '/authz/libraries/lib:123');
163+
});
164+
154165
describe('Revoking User Role Flow', () => {
155166
it('opens confirmation modal when delete role button is clicked', async () => {
156167
const user = userEvent.setup();

src/authz-module/libraries-manager/LibrariesUserManager.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const LibrariesUserManager = () => {
2222
const {
2323
libraryId, permissions, roles, resources, canManageTeam,
2424
} = useLibraryAuthZ();
25-
const teamMembersPath = `/authz/${ROUTES.LIBRARIES_TEAM_PATH.replace(':libraryId', libraryId)}`;
25+
const teamMembersPath = `/authz${ROUTES.LIBRARIES_TEAM_PATH.replace(':libraryId', libraryId)}`;
2626

2727
useEffect(() => {
2828
if (!canManageTeam) {
@@ -147,7 +147,9 @@ const LibrariesUserManager = () => {
147147

148148
<AuthZLayout
149149
context={{ id: libraryId, title: library.title, org: library.org }}
150-
navLinks={[{ label: rootBreadcrumb }, { label: pageManageTitle, to: teamMembersPath }]}
150+
// Temporarily setting '/authz/libraries/:libraryId' as the URL for Manage Access breadcrumb for now as
151+
// currently we do not have a dedicated page. TODO: Update when such page is created.
152+
navLinks={[{ label: rootBreadcrumb, to: teamMembersPath }, { label: pageManageTitle, to: teamMembersPath }]}
151153
activeLabel={user?.username || ''}
152154
pageTitle={user?.username || ''}
153155
pageSubtitle={<p>{user?.email}</p>}

0 commit comments

Comments
 (0)