Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.js36
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);
+ });
+ });
});