Merge branch '55209-tool-tip-hides-menu-item' into 'master'

Resolve "Tool Tip Hides Menu Item"

Closes #55209

See merge request gitlab-org/gitlab-ce!24285
This commit is contained in:
Phil Hughes 2019-02-12 11:31:37 +00:00
commit 3537f12fc8
3 changed files with 33 additions and 8 deletions

View File

@ -126,6 +126,11 @@ export default {
onResolve() {
this.$emit('handleResolve');
},
closeTooltip() {
this.$nextTick(() => {
this.$root.$emit('bv::hide::tooltip');
});
},
},
};
</script>
@ -202,6 +207,7 @@ export default {
title="More actions"
class="note-action-button more-actions-toggle btn btn-transparent"
data-toggle="dropdown"
@click="closeTooltip"
>
<icon css-classes="icon" name="ellipsis_v" />
</button>

View File

@ -0,0 +1,5 @@
---
title: Close More Actions tooltip when menu opens
merge_request: 24285
author:
type: fixed

View File

@ -1,5 +1,5 @@
import Vue from 'vue';
import { shallowMount, createLocalVue } from '@vue/test-utils';
import { shallowMount, createLocalVue, createWrapper } from '@vue/test-utils';
import createStore from '~/notes/stores';
import noteActions from '~/notes/components/note_actions.vue';
import { TEST_HOST } from 'spec/test_constants';
@ -10,7 +10,7 @@ describe('noteActions', () => {
let store;
let props;
const createWrapper = propsData => {
const shallowMountNoteActions = propsData => {
const localVue = createLocalVue();
return shallowMount(noteActions, {
store,
@ -44,7 +44,7 @@ describe('noteActions', () => {
beforeEach(() => {
store.dispatch('setUserData', userDataMock);
wrapper = createWrapper(props);
wrapper = shallowMountNoteActions(props);
});
it('should render access level badge', () => {
@ -90,13 +90,27 @@ describe('noteActions', () => {
it('should be possible to delete comment', () => {
expect(wrapper.find('.js-note-delete').exists()).toBe(true);
});
it('closes tooltip when dropdown opens', done => {
wrapper.find('.more-actions-toggle').trigger('click');
const rootWrapper = createWrapper(wrapper.vm.$root);
Vue.nextTick()
.then(() => {
const emitted = Object.keys(rootWrapper.emitted());
expect(emitted).toEqual(['bv::hide::tooltip']);
done();
})
.catch(done.fail);
});
});
});
describe('user is not logged in', () => {
beforeEach(() => {
store.dispatch('setUserData', {});
wrapper = createWrapper({
wrapper = shallowMountNoteActions({
...props,
canDelete: false,
canEdit: false,
@ -127,7 +141,7 @@ describe('noteActions', () => {
describe('for showReply = true', () => {
beforeEach(() => {
wrapper = createWrapper({
wrapper = shallowMountNoteActions({
...props,
showReply: true,
});
@ -142,7 +156,7 @@ describe('noteActions', () => {
describe('for showReply = false', () => {
beforeEach(() => {
wrapper = createWrapper({
wrapper = shallowMountNoteActions({
...props,
showReply: false,
});
@ -169,7 +183,7 @@ describe('noteActions', () => {
describe('for showReply = true', () => {
beforeEach(() => {
wrapper = createWrapper({
wrapper = shallowMountNoteActions({
...props,
showReply: true,
});
@ -184,7 +198,7 @@ describe('noteActions', () => {
describe('for showReply = false', () => {
beforeEach(() => {
wrapper = createWrapper({
wrapper = shallowMountNoteActions({
...props,
showReply: false,
});