42 lines
1.6 KiB
JavaScript
42 lines
1.6 KiB
JavaScript
import Vue from 'vue';
|
|
import SidebarBundleDomContentLoaded from '~/sidebar/sidebar_bundle';
|
|
import SidebarTimeTracking from '~/sidebar/components/time_tracking/sidebar_time_tracking';
|
|
import SidebarMediator from '~/sidebar/sidebar_mediator';
|
|
import SidebarService from '~/sidebar/services/sidebar_service';
|
|
import SidebarStore from '~/sidebar/stores/sidebar_store';
|
|
import Mock from './mock_data';
|
|
|
|
describe('sidebar bundle', () => {
|
|
gl.sidebarOptions = Mock.mediator;
|
|
|
|
beforeEach(() => {
|
|
spyOn(SidebarTimeTracking.methods, 'listenForSlashCommands').and.callFake(() => { });
|
|
preloadFixtures('issues/open-issue.html.raw');
|
|
Vue.http.interceptors.push(Mock.sidebarMockInterceptor);
|
|
loadFixtures('issues/open-issue.html.raw');
|
|
spyOn(Vue.prototype, '$mount');
|
|
SidebarBundleDomContentLoaded();
|
|
this.mediator = new SidebarMediator();
|
|
});
|
|
|
|
afterEach(() => {
|
|
SidebarService.singleton = null;
|
|
SidebarStore.singleton = null;
|
|
SidebarMediator.singleton = null;
|
|
});
|
|
|
|
it('the mediator should be already defined with some data', () => {
|
|
SidebarBundleDomContentLoaded();
|
|
|
|
expect(this.mediator.store).toBeDefined();
|
|
expect(this.mediator.service).toBeDefined();
|
|
expect(this.mediator.store.currentUser).toEqual(Mock.mediator.currentUser);
|
|
expect(this.mediator.store.rootPath).toEqual(Mock.mediator.rootPath);
|
|
expect(this.mediator.store.endPoint).toEqual(Mock.mediator.endPoint);
|
|
expect(this.mediator.store.editable).toEqual(Mock.mediator.editable);
|
|
});
|
|
|
|
it('the sidebar time tracking and assignees components to have been mounted', () => {
|
|
expect(Vue.prototype.$mount).toHaveBeenCalledTimes(2);
|
|
});
|
|
});
|