diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-11 12:08:44 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-11 12:08:44 +0300 |
commit | 6b5f961bef87c70effe57b14d41f9ed882b5d296 (patch) | |
tree | cbdcfbcd679f4560916bdd9a3d9bb5686668d45e /spec/frontend/tooltips | |
parent | 79b32f05d4c0e6cedcf14d48bef24fd68e33a7f6 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/tooltips')
-rw-r--r-- | spec/frontend/tooltips/components/tooltips_spec.js | 44 | ||||
-rw-r--r-- | spec/frontend/tooltips/index_spec.js | 39 |
2 files changed, 81 insertions, 2 deletions
diff --git a/spec/frontend/tooltips/components/tooltips_spec.js b/spec/frontend/tooltips/components/tooltips_spec.js index 1a97c7c9111..0edc5248629 100644 --- a/spec/frontend/tooltips/components/tooltips_spec.js +++ b/spec/frontend/tooltips/components/tooltips_spec.js @@ -120,7 +120,7 @@ describe('tooltips/components/tooltips.vue', () => { wrapper.vm.addTooltips([target, createTooltipTarget()]); await wrapper.vm.$nextTick(); - wrapper.vm.dispose([target]); + wrapper.vm.dispose(target); await wrapper.vm.$nextTick(); expect(allTooltips()).toHaveLength(1); @@ -148,6 +148,48 @@ describe('tooltips/components/tooltips.vue', () => { }); }); + describe('triggerEvent', () => { + it('triggers a bootstrap-vue tooltip global event for the tooltip specified', async () => { + const target = createTooltipTarget(); + const event = 'hide'; + + buildWrapper(); + + wrapper.vm.addTooltips([target]); + + await wrapper.vm.$nextTick(); + + wrapper.vm.triggerEvent(target, event); + + expect(wrapper.find(GlTooltip).emitted(event)).toHaveLength(1); + }); + }); + + describe('fixTitle', () => { + it('updates tooltip content with the latest value the target title property', async () => { + const target = createTooltipTarget(); + const currentTitle = 'title'; + const newTitle = 'new title'; + + target.setAttribute('title', currentTitle); + + buildWrapper(); + + wrapper.vm.addTooltips([target]); + + await wrapper.vm.$nextTick(); + + expect(wrapper.find(GlTooltip).text()).toBe(currentTitle); + + target.setAttribute('title', newTitle); + wrapper.vm.fixTitle(target); + + await wrapper.vm.$nextTick(); + + expect(wrapper.find(GlTooltip).text()).toBe(newTitle); + }); + }); + it('disconnects mutation observer on beforeDestroy', () => { buildWrapper(); wrapper.vm.addTooltips([createTooltipTarget()]); diff --git a/spec/frontend/tooltips/index_spec.js b/spec/frontend/tooltips/index_spec.js index a304ffce0a5..2b75707caed 100644 --- a/spec/frontend/tooltips/index_spec.js +++ b/spec/frontend/tooltips/index_spec.js @@ -1,4 +1,4 @@ -import { initTooltips, dispose, destroy } from '~/tooltips'; +import { initTooltips, dispose, destroy, hide, show, enable, disable, fixTitle } from '~/tooltips'; describe('tooltips/index.js', () => { let tooltipsApp; @@ -80,4 +80,41 @@ describe('tooltips/index.js', () => { expect(document.querySelector('.gl-tooltip')).toBe(null); }); }); + + it.each` + methodName | method | event + ${'enable'} | ${enable} | ${'enable'} + ${'disable'} | ${disable} | ${'disable'} + ${'hide'} | ${hide} | ${'close'} + ${'show'} | ${show} | ${'open'} + `( + '$methodName calls triggerEvent in tooltip app with $event event', + async ({ method, event }) => { + const target = createTooltipTarget(); + + buildTooltipsApp(); + + await tooltipsApp.$nextTick(); + + jest.spyOn(tooltipsApp, 'triggerEvent'); + + method([target]); + + expect(tooltipsApp.triggerEvent).toHaveBeenCalledWith(target, event); + }, + ); + + it('fixTitle calls fixTitle in tooltip app with the target specified', async () => { + const target = createTooltipTarget(); + + buildTooltipsApp(); + + await tooltipsApp.$nextTick(); + + jest.spyOn(tooltipsApp, 'fixTitle'); + + fixTitle([target]); + + expect(tooltipsApp.fixTitle).toHaveBeenCalledWith(target); + }); }); |