1*aeb19816SDamian Celicoimport { mount, createLocalVue, createWrapper } from '@vue/test-utils'; 298059c92SSukanya Pandeyimport AppNavigation from '@/components/AppNavigation'; 398059c92SSukanya Pandeyimport Vue from 'vue'; 4*aeb19816SDamian Celicoimport Vuex from 'vuex'; 5fba4d625SSukanya Pandeyimport VueRouter from 'vue-router'; 698059c92SSukanya Pandeyimport { BootstrapVue } from 'bootstrap-vue'; 798059c92SSukanya Pandey 8*aeb19816SDamian Celicoconst localVue = createLocalVue(); 9*aeb19816SDamian CelicolocalVue.use(Vuex); 10*aeb19816SDamian Celico 1198059c92SSukanya Pandeydescribe('AppNavigation.vue', () => { 1298059c92SSukanya Pandey let wrapper; 13*aeb19816SDamian Celico const router = new VueRouter(); 14*aeb19816SDamian Celico const actions = { 15*aeb19816SDamian Celico 'global/userPrivilege': jest.fn(), 16*aeb19816SDamian Celico }; 17*aeb19816SDamian Celico const store = new Vuex.Store({ actions }); 1898059c92SSukanya Pandey Vue.use(BootstrapVue); 19fba4d625SSukanya Pandey Vue.use(VueRouter); 2098059c92SSukanya Pandey 2198059c92SSukanya Pandey wrapper = mount(AppNavigation, { 22*aeb19816SDamian Celico store, 23fba4d625SSukanya Pandey router, 2498059c92SSukanya Pandey mocks: { 25602e98aaSDerick Montague $t: (key) => key, 26602e98aaSDerick Montague }, 2798059c92SSukanya Pandey }); 2898059c92SSukanya Pandey 29ad2ceb6dSDerick Montague it('should exist', async () => { 30ad2ceb6dSDerick Montague expect(wrapper.exists()).toBe(true); 3198059c92SSukanya Pandey }); 3298059c92SSukanya Pandey 33ad2ceb6dSDerick Montague it('should render correctly', () => { 34ad2ceb6dSDerick Montague expect(wrapper.element).toMatchSnapshot(); 35ad2ceb6dSDerick Montague }); 36ad2ceb6dSDerick Montague 37ad2ceb6dSDerick Montague it('should render with nav-container open', () => { 3898059c92SSukanya Pandey wrapper.vm.isNavigationOpen = true; 39ad2ceb6dSDerick Montague expect(wrapper.element).toMatchSnapshot(); 4098059c92SSukanya Pandey }); 4198059c92SSukanya Pandey 42edb8a774SSukanya Pandey it('Nav Overlay click should emit change-is-navigation-open event', async () => { 43ad2ceb6dSDerick Montague const rootWrapper = createWrapper(wrapper.vm.$root); 44ad2ceb6dSDerick Montague const navOverlay = wrapper.find('#nav-overlay'); 45ad2ceb6dSDerick Montague navOverlay.trigger('click'); 46ad2ceb6dSDerick Montague await wrapper.vm.$nextTick(); 47edb8a774SSukanya Pandey expect(rootWrapper.emitted('change-is-navigation-open')).toBeTruthy(); 48ad2ceb6dSDerick Montague }); 49ad2ceb6dSDerick Montague 50edb8a774SSukanya Pandey it('toggle-navigation event should toggle isNavigation data prop value', async () => { 51ad2ceb6dSDerick Montague const rootWrapper = createWrapper(wrapper.vm.$root); 5298059c92SSukanya Pandey wrapper.vm.isNavigationOpen = false; 53edb8a774SSukanya Pandey rootWrapper.vm.$emit('toggle-navigation'); 54ad2ceb6dSDerick Montague expect(wrapper.vm.isNavigationOpen).toBe(true); 55edb8a774SSukanya Pandey rootWrapper.vm.$emit('toggle-navigation'); 56ad2ceb6dSDerick Montague expect(wrapper.vm.isNavigationOpen).toBe(false); 5798059c92SSukanya Pandey }); 5898059c92SSukanya Pandey}); 59