From 98059c92dfc1b6f30ffbe02f4ae01e7cba30f8e9 Mon Sep 17 00:00:00 2001 From: Sukanya Pandey Date: Thu, 26 Mar 2020 17:10:32 +0530 Subject: Add spec files for the components - AppHeader.js - AppNavigation.js Signed-off-by: Sukanya Pandey Change-Id: I55bbd16349dcf134b68fe33ba7cc26f29a98cfc7 --- tests/unit/AppHeader.spec.js | 62 ++++++++++++++++++++++++++++++++++++++++ tests/unit/AppNavigation.spec.js | 37 ++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 tests/unit/AppHeader.spec.js create mode 100644 tests/unit/AppNavigation.spec.js (limited to 'tests') diff --git a/tests/unit/AppHeader.spec.js b/tests/unit/AppHeader.spec.js new file mode 100644 index 00000000..6dea960b --- /dev/null +++ b/tests/unit/AppHeader.spec.js @@ -0,0 +1,62 @@ +import { mount } from '@vue/test-utils'; +import Vue from 'vue'; +import AppHeader from '@/components/AppHeader'; +import $store from '@/store'; +import { BootstrapVue } from 'bootstrap-vue'; + +describe('AppHeader.vue', () => { + let wrapper; + let spy; + Vue.use(BootstrapVue); + + wrapper = mount(AppHeader, { + mocks: { + $t: key => key, + $store + } + }); + + beforeEach(() => { + spy = sinon.spy($store.dispatch); + }); + + describe('Component exists', () => { + it('should check if AppHeader exists', async () => { + expect(wrapper.exists()); + }); + }); + + describe('AppHeader methods', () => { + it('should call getHostInfo and dispatch global/getHostStatus', async () => { + wrapper.vm.getHostInfo(); + spy('global/getHostStatus'); + expect(spy).to.have.been.calledWith('global/getHostStatus'); + }); + + it('should call getEvents and dispatch eventLog/getEventLogData', async () => { + wrapper.vm.getEvents(); + spy('eventLog/getEventLogData'); + expect(spy).to.have.been.calledWith('eventLog/getEventLogData'); + }); + + it('should call refresh and emit refresh', async () => { + spy = sinon.spy(wrapper.vm.$emit); + wrapper.vm.refresh(); + spy('refresh'); + expect(spy).to.have.been.calledWith('refresh'); + }); + + it('should call logout and dispatch authentication/logout', async () => { + wrapper.vm.logout(); + spy('authentication/logout'); + expect(spy).to.have.been.calledWith('authentication/logout'); + }); + + it('should call toggleNavigation and dispatch toggle:navigation', async () => { + spy = sinon.spy(wrapper.vm.$root.$emit); + wrapper.vm.toggleNavigation(); + spy('toggle:navigation'); + expect(spy).to.have.been.calledWith('toggle:navigation'); + }); + }); +}); diff --git a/tests/unit/AppNavigation.spec.js b/tests/unit/AppNavigation.spec.js new file mode 100644 index 00000000..3424f698 --- /dev/null +++ b/tests/unit/AppNavigation.spec.js @@ -0,0 +1,37 @@ +import { mount } from '@vue/test-utils'; +import AppNavigation from '@/components/AppNavigation'; +import Vue from 'vue'; +import { BootstrapVue } from 'bootstrap-vue'; + +describe('AppNavigation.vue', () => { + let wrapper; + Vue.use(BootstrapVue); + + wrapper = mount(AppNavigation, { + mocks: { + $t: key => key + } + }); + + describe('Component exists', () => { + it('should check if AppNavigation exists', async () => { + expect(wrapper.exists()); + }); + }); + + describe('Methods', () => { + describe('toggleIsOpen method', () => { + it('should call toggleIsOpen and toggle isNavigationOpen to false', async () => { + wrapper.vm.isNavigationOpen = true; + wrapper.vm.toggleIsOpen(); + expect(wrapper.vm.isNavigationOpen).to.be.false; + }); + + it('should call toggleIsOpen and toggle isNavigationOpen to true', async () => { + wrapper.vm.isNavigationOpen = false; + wrapper.vm.toggleIsOpen(); + expect(wrapper.vm.isNavigationOpen).to.be.true; + }); + }); + }); +}); -- cgit v1.2.3