From eb032078e44393a07752cc390aaa0ca785c3b954 Mon Sep 17 00:00:00 2001 From: Jacques Erasmus Date: Fri, 22 Nov 2019 07:14:03 +0000 Subject: Add Jest as a frontend testing framework Added Jest as a frontend testing framework --- .../navigation_toggle/navigation_toggle_spec.js | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 spec/javascripts/components/navigation_toggle/navigation_toggle_spec.js (limited to 'spec') diff --git a/spec/javascripts/components/navigation_toggle/navigation_toggle_spec.js b/spec/javascripts/components/navigation_toggle/navigation_toggle_spec.js new file mode 100644 index 00000000..de77854b --- /dev/null +++ b/spec/javascripts/components/navigation_toggle/navigation_toggle_spec.js @@ -0,0 +1,29 @@ +import { mount } from '@vue/test-utils'; +import NavigationToggle from '~/components/navigation_toggle/navigation_toggle.vue'; + +describe('component: Navigation Toggle', function () { + let wrapper; + + beforeEach(() => { + let 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(); + }); +}); -- cgit v1.2.3