diff --git a/src/app/shared/menu/menu.service.spec.ts b/src/app/shared/menu/menu.service.spec.ts index 6d33abf8a7..35d0994821 100644 --- a/src/app/shared/menu/menu.service.spec.ts +++ b/src/app/shared/menu/menu.service.spec.ts @@ -1,41 +1,43 @@ -import * as ngrx from '@ngrx/store'; -import { Store } from '@ngrx/store'; import { async, TestBed } from '@angular/core/testing'; -import { MenuService } from './menu.service'; -import { cold, hot } from 'jasmine-marbles'; -import { MenuID } from './initial-menus-state'; + import { of as observableOf } from 'rxjs'; +import * as ngrx from '@ngrx/store'; +import { Store, StoreModule } from '@ngrx/store'; +import { provideMockStore } from '@ngrx/store/testing'; +import { cold, hot } from 'jasmine-marbles'; + +import { MenuService } from './menu.service'; +import { MenuID } from './initial-menus-state'; import { ActivateMenuSectionAction, AddMenuSectionAction, - CollapseMenuAction, CollapseMenuPreviewAction, DeactivateMenuSectionAction, - ExpandMenuAction, ExpandMenuPreviewAction, HideMenuAction, - RemoveMenuSectionAction, ShowMenuAction, ToggleActiveMenuSectionAction, ToggleMenuAction + CollapseMenuAction, + CollapseMenuPreviewAction, + DeactivateMenuSectionAction, + ExpandMenuAction, + ExpandMenuPreviewAction, + HideMenuAction, + RemoveMenuSectionAction, + ShowMenuAction, + ToggleActiveMenuSectionAction, + ToggleMenuAction } from './menu.actions'; -import { MenuSection } from './menu.reducer'; +import { MenuSection, menusReducer } from './menu.reducer'; describe('MenuService', () => { let service: MenuService; let selectSpy; - let store; + let store: any; let fakeMenu; let visibleSection1; let visibleSection2; let hiddenSection3; let subSection4; let topSections; + let initialState; function init() { - store = Object.assign(observableOf({}), { - dispatch: () => {/***/ - } - }) as any; - fakeMenu = { - id: MenuID.ADMIN, - collapsed: true, - visible: false, - previewCollapsed: true - } as any; + visibleSection1 = { id: 'section', visible: true, @@ -61,35 +63,44 @@ describe('MenuService', () => { section_3: hiddenSection3, section_4: subSection4 }; + + fakeMenu = { + id: MenuID.ADMIN, + collapsed: true, + visible: false, + sections: topSections, + previewCollapsed: true + } as any; + + initialState = { + menus: { + 'admin-sidebar' : fakeMenu + } + }; + } beforeEach(async(() => { init(); TestBed.configureTestingModule({ + imports: [ + StoreModule.forRoot({ menus: menusReducer }) + ], providers: [ - { provide: Store, useValue: store }, + provideMockStore({ initialState }), { provide: MenuService, useValue: service } ] }).compileComponents(); })); beforeEach(() => { + store = TestBed.get(Store); service = new MenuService(store); - selectSpy = spyOnProperty(ngrx, 'select'); + selectSpy = spyOnProperty(ngrx, 'select').and.callThrough(); spyOn(store, 'dispatch'); }); describe('getMenu', () => { - beforeEach(() => { - selectSpy.and.callFake(() => { - return () => { - return () => hot('a', { - a: fakeMenu - } - ); - }; - }); - }); it('should return the menu', () => { const result = service.getMenu(MenuID.ADMIN); @@ -226,19 +237,9 @@ describe('MenuService', () => { }); describe('getMenuSection', () => { - beforeEach(() => { - selectSpy.and.callFake(() => { - return () => { - return () => hot('a', { - a: hiddenSection3 - } - ); - }; - }); - }); - it('should return false', () => { + it('should return menu section', () => { - const result = service.getMenuSection(MenuID.ADMIN, 'fakeId'); + const result = service.getMenuSection(MenuID.ADMIN, 'section_3'); const expected = cold('b', { b: hiddenSection3 }); diff --git a/src/app/shared/menu/menu.service.ts b/src/app/shared/menu/menu.service.ts index 7d3bad4b78..95611daa21 100644 --- a/src/app/shared/menu/menu.service.ts +++ b/src/app/shared/menu/menu.service.ts @@ -52,7 +52,7 @@ const getSubSectionsFromSectionSelector = (id: string): MemoizedSelector) { + constructor(private store: Store) { } /**