diff options
Diffstat (limited to 'spec/frontend/vue_shared/components/user_popover/user_popover_spec.js')
-rw-r--r-- | spec/frontend/vue_shared/components/user_popover/user_popover_spec.js | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/spec/frontend/vue_shared/components/user_popover/user_popover_spec.js b/spec/frontend/vue_shared/components/user_popover/user_popover_spec.js index 41181ab9a68..0457044f985 100644 --- a/spec/frontend/vue_shared/components/user_popover/user_popover_spec.js +++ b/spec/frontend/vue_shared/components/user_popover/user_popover_spec.js @@ -31,6 +31,7 @@ const DEFAULT_PROPS = { name: 'Administrator', location: 'Vienna', localTime: '2:30 PM', + webUrl: '/root', bot: false, bio: null, workInformation: null, @@ -71,11 +72,11 @@ describe('User Popover Component', () => { }); }; - const createWrapper = (props = {}) => { + const createWrapper = (props = {}, target = findTarget()) => { wrapper = mountExtended(UserPopover, { propsData: { ...DEFAULT_PROPS, - target: findTarget(), + target, ...props, }, }); @@ -518,4 +519,35 @@ describe('User Popover Component', () => { expect(findToggleFollowButton().exists()).toBe(false); }); }); + + describe('when current user is assignee/reviewer in a Merge Request', () => { + const { id, username, webUrl } = DEFAULT_PROPS.user; + const target = document.createElement('a'); + target.setAttribute('href', webUrl); + target.classList.add('js-user-link'); + target.dataset.currentUserId = id; + target.dataset.currentUsername = username; + + it('renders popover with warning when user unable to merge', () => { + target.dataset.cannotMerge = 'true'; + + createWrapper({}, target); + + const cannotMergeWarning = wrapper.findByTestId('cannot-merge'); + + expect(cannotMergeWarning.exists()).toBe(true); + expect(cannotMergeWarning.text()).toContain('Cannot merge'); + expect(cannotMergeWarning.findComponent(GlIcon).props('name')).toBe('warning-solid'); + }); + + it('renders popover without any warning when user is able to merge', () => { + delete target.dataset.cannotMerge; + + createWrapper({}, target); + + const cannotMergeWarning = wrapper.findByTestId('cannot-merge'); + + expect(cannotMergeWarning.exists()).toBe(false); + }); + }); }); |