Fix #4208: Owner of a team should be able to delete a user (#4253)

This commit is contained in:
darth-coder00 2022-04-20 02:19:29 +05:30 committed by GitHub
parent f5cbcd0ef0
commit 0639bdc083
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 1 deletions

View File

@ -11,7 +11,7 @@
* limitations under the License.
*/
import { findByTestId, render } from '@testing-library/react';
import { findByTestId, fireEvent, render } from '@testing-library/react';
import React from 'react';
import { MemoryRouter } from 'react-router-dom';
import UserCard from './UserCard';
@ -101,4 +101,25 @@ describe('Test userCard component', () => {
expect(svgIcon).toBeInTheDocument();
expect(datasetLink).toBeInTheDocument();
});
it('If isOwner is passed it should allow delete action', async () => {
const { container } = render(
<UserCard
isActionVisible
isOwner
item={mockItem}
onRemove={mockRemove}
/>,
{
wrapper: MemoryRouter,
}
);
const remove = await findByTestId(container, 'remove');
fireEvent.click(remove);
expect(remove).toBeInTheDocument();
expect(mockRemove).toBeCalled();
});
});

View File

@ -42,6 +42,7 @@ interface Props {
isIconVisible?: boolean;
isDataset?: boolean;
isCheckBoxes?: boolean;
isOwner?: boolean;
onSelect?: (value: string) => void;
onRemove?: (value: string) => void;
}
@ -52,6 +53,7 @@ const UserCard = ({
isIconVisible = false,
isDataset = false,
isCheckBoxes = false,
isOwner = false,
onSelect,
onRemove,
}: Props) => {
@ -202,6 +204,7 @@ const UserCard = ({
) : (
<NonAdminAction
html={<>You do not have permission to update the team.</>}
isOwner={isOwner}
permission={Operation.UpdateTeam}
position="bottom">
<span
@ -209,6 +212,7 @@ const UserCard = ({
'tw-opacity-40':
!isAdminUser &&
!isAuthDisabled &&
!isOwner &&
!userPermissions[Operation.UpdateTeam],
})}
data-testid="remove"

View File

@ -439,6 +439,7 @@ const TeamsPage = () => {
<p>There are no users added yet.</p>
{isAdminUser ||
isAuthDisabled ||
isOwner() ||
userPermissions[Operation.UpdateTeam] ? (
<>
<p>Would like to start adding some?</p>
@ -476,6 +477,7 @@ const TeamsPage = () => {
<UserCard
isActionVisible
isIconVisible
isOwner={isOwner()}
item={User}
key={index}
onRemove={deleteUserHandler}