Commit 9edb5d47 authored by Phil Hughes's avatar Phil Hughes

Merge branch '60241-merge-request-popover-doesn-t-go-away-on-mouse-leave' into 'master'

Resolve "Merge Request popover doesn't go away on mouse leave"

Closes #60241

See merge request gitlab-org/gitlab-ce!27143
parents 7728212b 2ea409f6
...@@ -54,9 +54,13 @@ export default elements => { ...@@ -54,9 +54,13 @@ export default elements => {
const apolloProvider = new VueApollo({ const apolloProvider = new VueApollo({
defaultClient: createDefaultClient(), defaultClient: createDefaultClient(),
}); });
const listenerAddedAttr = 'data-mr-listener-added';
mrLinks.forEach(el => { mrLinks.forEach(el => {
el.addEventListener('mouseenter', handleMRPopoverMount(apolloProvider)); if (!el.getAttribute(listenerAddedAttr)) {
el.addEventListener('mouseenter', handleMRPopoverMount(apolloProvider));
el.setAttribute(listenerAddedAttr, true);
}
}); });
} }
}; };
---
title: Fix bug where MR popover doesn't go away on mouse leave
merge_request:
author:
type: fixed
import * as createDefaultClient from '~/lib/graphql';
import { setHTMLFixture } from '../helpers/fixtures';
import initMRPopovers from '~/mr_popover/index';
createDefaultClient.default = jest.fn();
describe('initMRPopovers', () => {
let mr1;
let mr2;
beforeEach(() => {
setHTMLFixture(`
<div id="one" class="gfm-merge_request">MR1</div>
<div id="two" class="gfm-merge_request">MR2</div>
`);
mr1 = document.querySelector('#one');
mr2 = document.querySelector('#two');
mr1.addEventListener = jest.fn();
mr2.addEventListener = jest.fn();
});
it('does not add the same event listener twice', () => {
initMRPopovers([mr1, mr1, mr2]);
expect(mr1.addEventListener).toHaveBeenCalledTimes(1);
expect(mr2.addEventListener).toHaveBeenCalledTimes(1);
});
});
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