diff options
Diffstat (limited to 'spec/frontend/shared/popover_spec.js')
-rw-r--r-- | spec/frontend/shared/popover_spec.js | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/spec/frontend/shared/popover_spec.js b/spec/frontend/shared/popover_spec.js deleted file mode 100644 index 59b0b3b006c..00000000000 --- a/spec/frontend/shared/popover_spec.js +++ /dev/null @@ -1,166 +0,0 @@ -import $ from 'jquery'; -import { togglePopover, mouseleave, mouseenter } from '~/shared/popover'; - -describe('popover', () => { - describe('togglePopover', () => { - describe('togglePopover(true)', () => { - it('returns true when popover is shown', () => { - const context = { - hasClass: () => false, - popover: () => {}, - toggleClass: () => {}, - }; - - expect(togglePopover.call(context, true)).toEqual(true); - }); - - it('returns false when popover is already shown', () => { - const context = { - hasClass: () => true, - }; - - expect(togglePopover.call(context, true)).toEqual(false); - }); - - it('shows popover', (done) => { - const context = { - hasClass: () => false, - popover: () => {}, - toggleClass: () => {}, - }; - - jest.spyOn(context, 'popover').mockImplementation((method) => { - expect(method).toEqual('show'); - done(); - }); - - togglePopover.call(context, true); - }); - - it('adds disable-animation and js-popover-show class', (done) => { - const context = { - hasClass: () => false, - popover: () => {}, - toggleClass: () => {}, - }; - - jest.spyOn(context, 'toggleClass').mockImplementation((classNames, show) => { - expect(classNames).toEqual('disable-animation js-popover-show'); - expect(show).toEqual(true); - done(); - }); - - togglePopover.call(context, true); - }); - }); - - describe('togglePopover(false)', () => { - it('returns true when popover is hidden', () => { - const context = { - hasClass: () => true, - popover: () => {}, - toggleClass: () => {}, - }; - - expect(togglePopover.call(context, false)).toEqual(true); - }); - - it('returns false when popover is already hidden', () => { - const context = { - hasClass: () => false, - }; - - expect(togglePopover.call(context, false)).toEqual(false); - }); - - it('hides popover', (done) => { - const context = { - hasClass: () => true, - popover: () => {}, - toggleClass: () => {}, - }; - - jest.spyOn(context, 'popover').mockImplementation((method) => { - expect(method).toEqual('hide'); - done(); - }); - - togglePopover.call(context, false); - }); - - it('removes disable-animation and js-popover-show class', (done) => { - const context = { - hasClass: () => true, - popover: () => {}, - toggleClass: () => {}, - }; - - jest.spyOn(context, 'toggleClass').mockImplementation((classNames, show) => { - expect(classNames).toEqual('disable-animation js-popover-show'); - expect(show).toEqual(false); - done(); - }); - - togglePopover.call(context, false); - }); - }); - }); - - describe('mouseleave', () => { - it('calls hide popover if .popover:hover is false', () => { - const fakeJquery = { - length: 0, - }; - - jest - .spyOn($.fn, 'init') - .mockImplementation((selector) => (selector === '.popover:hover' ? fakeJquery : $.fn)); - jest.spyOn(togglePopover, 'call').mockImplementation(() => {}); - mouseleave(); - - expect(togglePopover.call).toHaveBeenCalledWith(expect.any(Object), false); - }); - - it('does not call hide popover if .popover:hover is true', () => { - const fakeJquery = { - length: 1, - }; - - jest - .spyOn($.fn, 'init') - .mockImplementation((selector) => (selector === '.popover:hover' ? fakeJquery : $.fn)); - jest.spyOn(togglePopover, 'call').mockImplementation(() => {}); - mouseleave(); - - expect(togglePopover.call).not.toHaveBeenCalledWith(false); - }); - }); - - describe('mouseenter', () => { - const context = {}; - - it('shows popover', () => { - jest.spyOn(togglePopover, 'call').mockReturnValue(false); - mouseenter.call(context); - - expect(togglePopover.call).toHaveBeenCalledWith(expect.any(Object), true); - }); - - it('registers mouseleave event if popover is showed', (done) => { - jest.spyOn(togglePopover, 'call').mockReturnValue(true); - jest.spyOn($.fn, 'on').mockImplementation((eventName) => { - expect(eventName).toEqual('mouseleave'); - done(); - }); - mouseenter.call(context); - }); - - it('does not register mouseleave event if popover is not showed', () => { - jest.spyOn(togglePopover, 'call').mockReturnValue(false); - const spy = jest.spyOn($.fn, 'on').mockImplementation(() => {}); - mouseenter.call(context); - - expect(spy).not.toHaveBeenCalled(); - }); - }); -}); |