Commit 5601765b authored by Ammar Alakkad's avatar Ammar Alakkad

Hide details for invited members in seats usage

Changelog: other
EE: true
parent a61c457d
...@@ -112,6 +112,9 @@ export default { ...@@ -112,6 +112,9 @@ export default {
isProjectInvite(item) { isProjectInvite(item) {
return item.user.membership_type === 'project_invite'; return item.user.membership_type === 'project_invite';
}, },
shouldShowDetails(item) {
return !this.isGroupInvite(item) && !this.isProjectInvite(item);
},
}, },
i18n: { i18n: {
emailNotVisibleTooltipText: s__( emailNotVisibleTooltipText: s__(
...@@ -172,8 +175,9 @@ export default { ...@@ -172,8 +175,9 @@ export default {
:empty-text="emptyText" :empty-text="emptyText"
> >
<template #cell(user)="{ item, toggleDetails, detailsShowing }"> <template #cell(user)="{ item, toggleDetails, detailsShowing }">
<div class="gl-display-flex"> <div class="gl-display-flex" :data-testid="`seat-cell-${item.user.id}`">
<gl-button <gl-button
v-if="shouldShowDetails(item)"
variant="link" variant="link"
class="gl-mr-2" class="gl-mr-2"
:aria-label="s__('Billing|Toggle seat details')" :aria-label="s__('Billing|Toggle seat details')"
......
...@@ -212,6 +212,33 @@ describe('Subscription Seats', () => { ...@@ -212,6 +212,33 @@ describe('Subscription Seats', () => {
}, },
); );
}); });
describe('members details', () => {
it.each`
membershipType | shouldShowDetails
${'project_invite'} | ${false}
${'group_invite'} | ${false}
${'project_member'} | ${true}
${'group_member'} | ${true}
`(
'when membershipType is $membershipType, shouldShowDetails should be $shouldShowDetails',
({ membershipType, shouldShowDetails }) => {
const seatCells = findTable().findAll('[data-testid*="seat-cell-"]');
seatCells.wrappers.forEach((seatCellWrapper) => {
const currentMember = mockTableItems.find(
(item) => seatCellWrapper.attributes('data-testid') === `seat-cell-${item.user.id}`,
);
if (membershipType === currentMember.user.membership_type) {
expect(
seatCellWrapper.find('[data-testid="toggle-seat-usage-details"]').exists(),
).toBe(shouldShowDetails);
}
});
},
);
});
}); });
describe('is loading', () => { describe('is loading', () => {
......
...@@ -25,7 +25,7 @@ export const mockDataSeats = { ...@@ -25,7 +25,7 @@ export const mockDataSeats = {
web_url: 'path/to/agustin_walker', web_url: 'path/to/agustin_walker',
email: 'agustin_walker@email.com', email: 'agustin_walker@email.com',
last_activity_on: '2020-03-01', last_activity_on: '2020-03-01',
membership_type: 'group_member', membership_type: 'project_member',
removable: true, removable: true,
}, },
{ {
...@@ -92,7 +92,7 @@ export const mockTableItems = [ ...@@ -92,7 +92,7 @@ export const mockTableItems = [
username: '@lester.orn', username: '@lester.orn',
web_url: 'path/to/agustin_walker', web_url: 'path/to/agustin_walker',
last_activity_on: '2020-03-01', last_activity_on: '2020-03-01',
membership_type: 'group_member', membership_type: 'project_member',
removable: true, removable: true,
}, },
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment