diff --git a/src/authz-module/audit-user/index.test.tsx b/src/authz-module/audit-user/index.test.tsx index 68af229a..fac9921c 100644 --- a/src/authz-module/audit-user/index.test.tsx +++ b/src/authz-module/audit-user/index.test.tsx @@ -496,4 +496,75 @@ describe('AuditUserPage', () => { expect(screen.getByText(/this is the user's only role/i)).toBeInTheDocument(); }); }); + + it('handles undefined data from useUserAssignedRoles with default destructuring', async () => { + (useUserAccount as jest.Mock).mockReturnValue({ + data: mockUser, + isLoading: false, + isError: false, + error: null, + }); + + (useUserAssignedRoles as jest.Mock).mockReturnValue({ + data: undefined, // This triggers the default destructuring assignment + isLoading: false, + isError: false, + error: null, + }); + + renderWithRouter(); + + await waitFor(() => { + expect(screen.getByText('johndoe', { selector: 'li[aria-current="page"]' })).toBeInTheDocument(); + expect(screen.getByRole('table')).toBeInTheDocument(); + }); + }); + + it('navigates to home when user not found and isErrorUser is false', async () => { + (useUserAccount as jest.Mock).mockReturnValue({ + data: null, + isLoading: false, + isError: false, + error: null, + }); + + (useUserAssignedRoles as jest.Mock).mockReturnValue({ + data: mockAssignments, + isLoading: false, + isError: false, + error: null, + }); + + renderWithRouter(); + + await waitFor(() => { + expect(screen.getByText('Home Page')).toBeInTheDocument(); + }); + }); + + it('navigates to home when user not found and error is 404', async () => { + (useUserAccount as jest.Mock).mockReturnValue({ + data: null, + isLoading: false, + isError: true, + error: { + customAttributes: { + httpErrorStatus: 404, + }, + }, + }); + + (useUserAssignedRoles as jest.Mock).mockReturnValue({ + data: mockAssignments, + isLoading: false, + isError: false, + error: null, + }); + + renderWithRouter(); + + await waitFor(() => { + expect(screen.getByText('Home Page')).toBeInTheDocument(); + }); + }); }); diff --git a/src/authz-module/audit-user/index.tsx b/src/authz-module/audit-user/index.tsx index a084d609..d5f45567 100644 --- a/src/authz-module/audit-user/index.tsx +++ b/src/authz-module/audit-user/index.tsx @@ -42,7 +42,9 @@ const AuditUserPage = () => { isLoading: isLoadingUser, data: user, isError: isErrorUser, error: errorUser, } = useUserAccount(username); const { querySettings, handleTableFetch } = useQuerySettings(); - const { isLoading: isLoadingUserAssignments, data: { results: userAssignments, count } = { results: [], count: 0 } } = useUserAssignedRoles(username ?? '', querySettings); + const { + isLoading: isLoadingUserAssignments, data: { results: userAssignments, count } = { results: [], count: 0 }, + } = useUserAssignedRoles(username, querySettings); const [roleToDelete, setRoleToDelete] = useState(null); const [showConfirmDeletionModal, setShowConfirmDeletionModal] = useState(false); const { diff --git a/src/authz-module/role-assignation-wizard/components/SelectUsersAndRoleStep.tsx b/src/authz-module/role-assignation-wizard/components/SelectUsersAndRoleStep.tsx index 6ee4dd2c..78021c4c 100644 --- a/src/authz-module/role-assignation-wizard/components/SelectUsersAndRoleStep.tsx +++ b/src/authz-module/role-assignation-wizard/components/SelectUsersAndRoleStep.tsx @@ -107,7 +107,7 @@ const SelectUsersAndRoleStep = ({ )} > -
{radioContent}
+
{radioContent}
); }