Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 1 | import { shallowMount, createLocalVue, createWrapper } from '@vue/test-utils'; |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 2 | import Vue from 'vue'; |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 3 | import Vuex from 'vuex'; |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 4 | import AppHeader from '@/components/AppHeader'; |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 5 | |
| 6 | // Silencing warnings about undefined Bootsrap-vue components |
| 7 | Vue.config.silent = true; |
| 8 | const localVue = createLocalVue(); |
| 9 | localVue.use(Vuex); |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 10 | |
| 11 | describe('AppHeader.vue', () => { |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 12 | const actions = { |
| 13 | 'global/getHostStatus': sinon.spy(), |
| 14 | 'eventLog/getEventLogData': sinon.spy() |
| 15 | }; |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 16 | |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 17 | const store = new Vuex.Store({ actions }); |
| 18 | const wrapper = shallowMount(AppHeader, { |
| 19 | store, |
| 20 | localVue, |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 21 | mocks: { |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 22 | $t: key => key |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 23 | } |
| 24 | }); |
| 25 | |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 26 | // Reset spy for each test. Otherwise mutiple actions |
| 27 | // are dispatched in each test |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 28 | beforeEach(() => { |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 29 | store.dispatch = sinon.spy(); |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 30 | }); |
| 31 | |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 32 | describe('UI', () => { |
| 33 | it('should check if AppHeader exists', () => { |
| 34 | expect(wrapper.exists()).to.be.true; |
| 35 | }); |
| 36 | |
| 37 | it('should check if the skip navigation link exists', () => { |
| 38 | expect(wrapper.get('.link-skip-nav').exists()).to.be.true; |
| 39 | }); |
| 40 | |
| 41 | it('refresh button click should emit refresh event', async () => { |
| 42 | wrapper.get('#app-header-refresh').trigger('click'); |
| 43 | await wrapper.vm.$nextTick(); |
| 44 | expect(wrapper.emitted().refresh).to.exist; |
| 45 | }); |
| 46 | |
| 47 | it('nav-trigger button click should emit toggle:navigation event', async () => { |
| 48 | const rootWrapper = createWrapper(wrapper.vm.$root); |
| 49 | wrapper.get('#app-header-trigger').trigger('click'); |
| 50 | await wrapper.vm.$nextTick(); |
| 51 | expect(rootWrapper.emitted()['toggle:navigation']).to.exist; |
| 52 | }); |
| 53 | |
| 54 | it('logout button should dispatch authentication/logout', async () => { |
| 55 | wrapper.get('#app-header-logout').trigger('click'); |
| 56 | await wrapper.vm.$nextTick(); |
| 57 | expect(store.dispatch).calledWith('authentication/logout'); |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 58 | }); |
| 59 | }); |
| 60 | |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 61 | describe('Methods', () => { |
| 62 | it('getHostInfo should dispatch global/getHostStatus', () => { |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 63 | wrapper.vm.getHostInfo(); |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 64 | expect(store.dispatch).calledWith('global/getHostStatus'); |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 65 | }); |
| 66 | |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 67 | it('getEvents should dispatch eventLog/getEventLogData', () => { |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 68 | wrapper.vm.getEvents(); |
Derick Montague | 6859203 | 2020-04-04 14:02:34 -0500 | [diff] [blame] | 69 | expect(store.dispatch).calledWith('eventLog/getEventLogData'); |
Sukanya Pandey | 98059c9 | 2020-03-26 17:10:32 +0530 | [diff] [blame] | 70 | }); |
| 71 | }); |
| 72 | }); |