diff --git a/tests/unit/AppHeader.spec.js b/tests/unit/AppHeader.spec.js
new file mode 100644
index 0000000..6dea960
--- /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');
+    });
+  });
+});
