diff options
author | Jacques Erasmus <jerasmus@gitlab.com> | 2020-02-07 05:14:59 +0300 |
---|---|---|
committer | Evan Read <eread@gitlab.com> | 2020-02-07 05:14:59 +0300 |
commit | 654d129d594807e8ffd3cde05bd75b83e201f422 (patch) | |
tree | c0a708ede0c5b7d376a7cae4e2375ed385f3267e /spec/frontend | |
parent | 590d7eb66699d45d0bc791884663fefe399f6852 (diff) |
Move specs `spec/javascripts/` -> `specs/frontend/`
Moved specs from `spec/javascripts/` to `specs/frontend/`
Diffstat (limited to 'spec/frontend')
-rw-r--r-- | spec/frontend/default/components/navigation_toggle_spec.js | 29 | ||||
-rw-r--r-- | spec/frontend/shared/components/banner_spec.js | 35 |
2 files changed, 64 insertions, 0 deletions
diff --git a/spec/frontend/default/components/navigation_toggle_spec.js b/spec/frontend/default/components/navigation_toggle_spec.js new file mode 100644 index 00000000..730dbae0 --- /dev/null +++ b/spec/frontend/default/components/navigation_toggle_spec.js @@ -0,0 +1,29 @@ +import { mount } from '@vue/test-utils'; +import NavigationToggle from '../../../../content/frontend/default/components/navigation_toggle.vue'; + +describe('component: Navigation Toggle', () => { + let wrapper; + + beforeEach(() => { + const propsData = { targetSelector: '.some-selector' }; + wrapper = mount(NavigationToggle, { propsData }); + }); + + it('renders a toggle button', () => { + expect(wrapper.exists('.nav-toggle')).toBe(true); + }); + + it('renders a toggle label', () => { + expect(wrapper.find('.label').text()).toEqual('Collapse sidebar'); + }); + + it('renders two arrow icons', () => { + expect(wrapper.findAll('.arrow').length).toEqual(2); + }); + + it('toggles the navigation when the navigation toggle is clicked', () => { + wrapper.setMethods({ toggle: jest.fn() }); + wrapper.find('.nav-toggle').trigger('click'); + expect(wrapper.vm.toggle).toHaveBeenCalled(); + }); +}); diff --git a/spec/frontend/shared/components/banner_spec.js b/spec/frontend/shared/components/banner_spec.js new file mode 100644 index 00000000..1de635b4 --- /dev/null +++ b/spec/frontend/shared/components/banner_spec.js @@ -0,0 +1,35 @@ +import { mount } from '@vue/test-utils'; +import Banner from '../../../../content/frontend/shared/components/banner.vue'; + +const propsData = { text: 'Some text', show: true }; + +describe('component: Banner', () => { + let wrapper; + + beforeEach(() => { + wrapper = mount(Banner, { propsData }); + }); + + it('renders a banner', () => { + expect(wrapper.exists('.banner')).toBe(true); + }); + + it('renders the correct banner text', () => { + const bannerText = wrapper.find('span'); + expect(bannerText.text()).toEqual(propsData.text); + }); + + it('renders a close button', () => { + expect(wrapper.exists('.btn-close')).toBe(true); + }); + + it('emits a toggle event on mount', () => { + expect(wrapper.emitted('toggle')[0]).toEqual([true]); + }); + + it('emits a toggle event when the close button is clicked', () => { + const closeBtn = wrapper.find('.btn-close'); + closeBtn.trigger('click'); + expect(wrapper.emitted('toggle')[1]).toEqual([false]); + }); +}); |