Skip to content
代码片段 群组 项目
未验证 提交 f8bb6dd1 编辑于 作者: Peter Hegman's avatar Peter Hegman 提交者: GitLab
浏览文件

Fix leave action label for project members

Should say `Leave project` instead of `Leave group`

Changelog: fixed
上级 7dbf13be
No related branches found
No related tags found
无相关合并请求
......@@ -5,6 +5,7 @@ export const I18N = {
disableTwoFactor: s__('Members|Disable two-factor authentication'),
editPermissions: s__('Members|Edit permissions'),
leaveGroup: __('Leave group'),
leaveProject: __('Leave project'),
removeMember: __('Remove member'),
confirmDisableTwoFactor: s__(
'Members|Are you sure you want to disable the two-factor authentication for %{userName}?',
......
......@@ -7,7 +7,7 @@ import {
MEMBER_MODEL_TYPE_PROJECT_MEMBER,
} from '~/members/constants';
import { I18N } from './constants';
import LeaveGroupDropdownItem from './leave_group_dropdown_item.vue';
import LeaveDropdownItem from './leave_dropdown_item.vue';
import RemoveMemberDropdownItem from './remove_member_dropdown_item.vue';
export default {
......@@ -21,7 +21,7 @@ export default {
),
LdapOverrideDropdownItem: () =>
import('ee_component/members/components/action_dropdowns/ldap_override_dropdown_item.vue'),
LeaveGroupDropdownItem,
LeaveDropdownItem,
RemoveMemberDropdownItem,
BanMemberDropdownItem: () =>
import('ee_component/members/components/action_dropdowns/ban_member_dropdown_item.vue'),
......@@ -88,6 +88,11 @@ export default {
showLeaveOrRemove() {
return this.permissions.canRemove || this.permissions.canRemoveBlockedByLastOwner;
},
leaveDropdownItemText() {
return this.member.type === MEMBER_MODEL_TYPE_PROJECT_MEMBER
? this.$options.i18n.leaveProject
: this.$options.i18n.leaveGroup;
},
showLdapOverride() {
return this.permissions.canOverride && !this.member.isOverridden;
},
......@@ -119,9 +124,9 @@ export default {
</disable-two-factor-dropdown-item>
<template v-if="showLeaveOrRemove">
<leave-group-dropdown-item v-if="isCurrentUser" :member="member" :permissions="permissions">{{
$options.i18n.leaveGroup
}}</leave-group-dropdown-item>
<leave-dropdown-item v-if="isCurrentUser" :member="member" :permissions="permissions">{{
leaveDropdownItemText
}}</leave-dropdown-item>
<remove-member-dropdown-item
v-else
......
......@@ -18,9 +18,9 @@
visit project_project_members_path(project)
end
def leave_group
def leave_project
show_actions_for_username(user)
click_button _('Leave group')
click_button _('Leave project')
within_modal do
click_button _('Leave')
......@@ -28,7 +28,7 @@ def leave_group
end
it 'user is removed from project' do
leave_group
leave_project
expect(project.users.exists?(user.id)).to be_falsey
end
......@@ -38,7 +38,7 @@ def leave_group
let!(:non_matching_protected_branch) { create(:protected_branch, authorize_user_to_push: other_user, authorize_user_to_merge: other_user, project: project) }
it 'user leaves project' do
leave_group
leave_project
expect(project.users.exists?(user.id)).to be_falsey
expect(matching_protected_branch.push_access_levels.where(user: user)).not_to exist
......
......@@ -165,7 +165,7 @@
expect(find_member_row(current_user)).to have_content('Developer')
show_actions_for_username(current_user)
click_button _('Leave group')
click_button _('Leave project')
within_modal do
click_button _('Leave')
......
import { GlDisclosureDropdownItem } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
import LeaveGroupDropdownItem from '~/members/components/action_dropdowns/leave_group_dropdown_item.vue';
import LeaveGroupDropdownItem from '~/members/components/action_dropdowns/leave_dropdown_item.vue';
import LeaveModal from '~/members/components/modals/leave_modal.vue';
import { LEAVE_MODAL_ID } from '~/members/constants';
import { member, permissions } from '../../mock_data';
......
import { shallowMount } from '@vue/test-utils';
import { sprintf } from '~/locale';
import { createMockDirective, getBinding } from 'helpers/vue_mock_directive';
import LeaveGroupDropdownItem from '~/members/components/action_dropdowns/leave_group_dropdown_item.vue';
import LeaveDropdownItem from '~/members/components/action_dropdowns/leave_dropdown_item.vue';
import RemoveMemberDropdownItem from '~/members/components/action_dropdowns/remove_member_dropdown_item.vue';
import UserActionDropdown from '~/members/components/action_dropdowns/user_action_dropdown.vue';
import { I18N } from '~/members/components/action_dropdowns/constants';
......@@ -90,17 +90,42 @@ describe('UserActionDropdown', () => {
});
describe('when member is the current user', () => {
it('renders leave dropdown with correct text', () => {
createComponent({
isCurrentUser: true,
permissions: {
canRemove: true,
},
describe('when member is a group member', () => {
beforeEach(() => {
createComponent({
isCurrentUser: true,
permissions: {
canRemove: true,
},
});
});
const leaveGroupDropdownItem = wrapper.findComponent(LeaveGroupDropdownItem);
expect(leaveGroupDropdownItem.exists()).toBe(true);
expect(leaveGroupDropdownItem.html()).toContain(I18N.leaveGroup);
it('renders leave dropdown with correct text', () => {
const leaveDropdownItem = wrapper.findComponent(LeaveDropdownItem);
expect(leaveDropdownItem.exists()).toBe(true);
expect(leaveDropdownItem.html()).toContain(I18N.leaveGroup);
});
});
describe('when member is a project member', () => {
beforeEach(() => {
createComponent({
member: {
...member,
type: MEMBER_MODEL_TYPE_PROJECT_MEMBER,
},
isCurrentUser: true,
permissions: {
canRemove: true,
},
});
});
it('renders leave dropdown with correct text', () => {
const leaveDropdownItem = wrapper.findComponent(LeaveDropdownItem);
expect(leaveDropdownItem.exists()).toBe(true);
expect(leaveDropdownItem.html()).toContain(I18N.leaveProject);
});
});
});
});
......@@ -166,7 +191,7 @@ describe('UserActionDropdown', () => {
permissions,
});
expect(wrapper.findComponent(LeaveGroupDropdownItem).props()).toEqual({
expect(wrapper.findComponent(LeaveDropdownItem).props()).toEqual({
member,
permissions,
});
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册