From 130e0444c6e5498ea95d38dd96bf758a724e2345 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 9 Dec 2021 06:11:13 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .../action_buttons/remove_member_button_spec.js | 19 +++++++++++-- .../action_buttons/user_action_buttons_spec.js | 31 +++++++++++++++++++++- .../components/table/member_action_buttons_spec.js | 1 + 3 files changed, 48 insertions(+), 3 deletions(-) (limited to 'spec/frontend/members') diff --git a/spec/frontend/members/components/action_buttons/remove_member_button_spec.js b/spec/frontend/members/components/action_buttons/remove_member_button_spec.js index 7eb0ea37fe6..1a031cc56d6 100644 --- a/spec/frontend/members/components/action_buttons/remove_member_button_spec.js +++ b/spec/frontend/members/components/action_buttons/remove_member_button_spec.js @@ -54,6 +54,8 @@ describe('RemoveMemberButton', () => { }); }; + const findButton = () => wrapper.findComponent(GlButton); + beforeEach(() => { createComponent(); }); @@ -66,7 +68,6 @@ describe('RemoveMemberButton', () => { expect(wrapper.attributes()).toMatchObject({ 'aria-label': 'Remove member', title: 'Remove member', - icon: 'remove', }); }); @@ -75,8 +76,22 @@ describe('RemoveMemberButton', () => { }); it('calls Vuex action to show `remove member` modal when clicked', () => { - wrapper.findComponent(GlButton).vm.$emit('click'); + findButton().vm.$emit('click'); expect(actions.showRemoveMemberModal).toHaveBeenCalledWith(expect.any(Object), modalData); }); + + describe('button optional properties', () => { + it('has default value for category and text', () => { + createComponent(); + expect(findButton().props('category')).toBe('secondary'); + expect(findButton().text()).toBe(''); + }); + + it('allow changing value of button category and text', () => { + createComponent({ buttonCategory: 'primary', buttonText: 'Decline request' }); + expect(findButton().props('category')).toBe('primary'); + expect(findButton().text()).toBe('Decline request'); + }); + }); }); diff --git a/spec/frontend/members/components/action_buttons/user_action_buttons_spec.js b/spec/frontend/members/components/action_buttons/user_action_buttons_spec.js index 10e451376c8..356df7e7b11 100644 --- a/spec/frontend/members/components/action_buttons/user_action_buttons_spec.js +++ b/spec/frontend/members/components/action_buttons/user_action_buttons_spec.js @@ -13,6 +13,7 @@ describe('UserActionButtons', () => { propsData: { member, isCurrentUser: false, + isInvitedUser: false, ...propsData, }, }); @@ -45,7 +46,9 @@ describe('UserActionButtons', () => { title: 'Remove member', isAccessRequest: false, isInvite: false, - icon: 'remove', + icon: '', + buttonCategory: 'secondary', + buttonText: 'Remove user', userDeletionObstacles: { name: member.user.name, obstacles: parseUserDeletionObstacles(member.user), @@ -129,4 +132,30 @@ describe('UserActionButtons', () => { expect(findRemoveMemberButton().props().memberType).toBe('ProjectMember'); }); }); + + describe('isInvitedUser', () => { + it.each` + isInvitedUser | icon | buttonText | buttonCategory + ${true} | ${'remove'} | ${null} | ${'primary'} + ${false} | ${''} | ${'Remove user'} | ${'secondary'} + `( + 'passes the correct props to remove-member-button when isInvitedUser is $isInvitedUser', + ({ isInvitedUser, icon, buttonText, buttonCategory }) => { + createComponent({ + isInvitedUser, + permissions: { + canRemove: true, + }, + }); + + expect(findRemoveMemberButton().props()).toEqual( + expect.objectContaining({ + icon, + buttonText, + buttonCategory, + }), + ); + }, + ); + }); }); diff --git a/spec/frontend/members/components/table/member_action_buttons_spec.js b/spec/frontend/members/components/table/member_action_buttons_spec.js index 546d09732d6..1379b2d26ce 100644 --- a/spec/frontend/members/components/table/member_action_buttons_spec.js +++ b/spec/frontend/members/components/table/member_action_buttons_spec.js @@ -14,6 +14,7 @@ describe('MemberActionButtons', () => { wrapper = shallowMount(MemberActionButtons, { propsData: { isCurrentUser: false, + isInvitedUser: false, permissions: { canRemove: true, }, -- cgit v1.2.3