xref: /openbmc/webui-vue/tests/unit/AppHeader.spec.js (revision 98059c92dfc1b6f30ffbe02f4ae01e7cba30f8e9)
1*98059c92SSukanya Pandeyimport { mount } from '@vue/test-utils';
2*98059c92SSukanya Pandeyimport Vue from 'vue';
3*98059c92SSukanya Pandeyimport AppHeader from '@/components/AppHeader';
4*98059c92SSukanya Pandeyimport $store from '@/store';
5*98059c92SSukanya Pandeyimport { BootstrapVue } from 'bootstrap-vue';
6*98059c92SSukanya Pandey
7*98059c92SSukanya Pandeydescribe('AppHeader.vue', () => {
8*98059c92SSukanya Pandey  let wrapper;
9*98059c92SSukanya Pandey  let spy;
10*98059c92SSukanya Pandey  Vue.use(BootstrapVue);
11*98059c92SSukanya Pandey
12*98059c92SSukanya Pandey  wrapper = mount(AppHeader, {
13*98059c92SSukanya Pandey    mocks: {
14*98059c92SSukanya Pandey      $t: key => key,
15*98059c92SSukanya Pandey      $store
16*98059c92SSukanya Pandey    }
17*98059c92SSukanya Pandey  });
18*98059c92SSukanya Pandey
19*98059c92SSukanya Pandey  beforeEach(() => {
20*98059c92SSukanya Pandey    spy = sinon.spy($store.dispatch);
21*98059c92SSukanya Pandey  });
22*98059c92SSukanya Pandey
23*98059c92SSukanya Pandey  describe('Component exists', () => {
24*98059c92SSukanya Pandey    it('should check if AppHeader exists', async () => {
25*98059c92SSukanya Pandey      expect(wrapper.exists());
26*98059c92SSukanya Pandey    });
27*98059c92SSukanya Pandey  });
28*98059c92SSukanya Pandey
29*98059c92SSukanya Pandey  describe('AppHeader methods', () => {
30*98059c92SSukanya Pandey    it('should call getHostInfo and dispatch global/getHostStatus', async () => {
31*98059c92SSukanya Pandey      wrapper.vm.getHostInfo();
32*98059c92SSukanya Pandey      spy('global/getHostStatus');
33*98059c92SSukanya Pandey      expect(spy).to.have.been.calledWith('global/getHostStatus');
34*98059c92SSukanya Pandey    });
35*98059c92SSukanya Pandey
36*98059c92SSukanya Pandey    it('should call getEvents and dispatch eventLog/getEventLogData', async () => {
37*98059c92SSukanya Pandey      wrapper.vm.getEvents();
38*98059c92SSukanya Pandey      spy('eventLog/getEventLogData');
39*98059c92SSukanya Pandey      expect(spy).to.have.been.calledWith('eventLog/getEventLogData');
40*98059c92SSukanya Pandey    });
41*98059c92SSukanya Pandey
42*98059c92SSukanya Pandey    it('should call refresh and emit refresh', async () => {
43*98059c92SSukanya Pandey      spy = sinon.spy(wrapper.vm.$emit);
44*98059c92SSukanya Pandey      wrapper.vm.refresh();
45*98059c92SSukanya Pandey      spy('refresh');
46*98059c92SSukanya Pandey      expect(spy).to.have.been.calledWith('refresh');
47*98059c92SSukanya Pandey    });
48*98059c92SSukanya Pandey
49*98059c92SSukanya Pandey    it('should call logout and dispatch authentication/logout', async () => {
50*98059c92SSukanya Pandey      wrapper.vm.logout();
51*98059c92SSukanya Pandey      spy('authentication/logout');
52*98059c92SSukanya Pandey      expect(spy).to.have.been.calledWith('authentication/logout');
53*98059c92SSukanya Pandey    });
54*98059c92SSukanya Pandey
55*98059c92SSukanya Pandey    it('should call toggleNavigation and dispatch toggle:navigation', async () => {
56*98059c92SSukanya Pandey      spy = sinon.spy(wrapper.vm.$root.$emit);
57*98059c92SSukanya Pandey      wrapper.vm.toggleNavigation();
58*98059c92SSukanya Pandey      spy('toggle:navigation');
59*98059c92SSukanya Pandey      expect(spy).to.have.been.calledWith('toggle:navigation');
60*98059c92SSukanya Pandey    });
61*98059c92SSukanya Pandey  });
62*98059c92SSukanya Pandey});
63