diff --git a/package.json b/package.json index 6d63ee2..3c38f6a 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "dependencies": { "@angular-redux/form": "^6.3.0", "@angular-redux/router": "^6.3.0", - "@angular-redux/store": "^6.4.1", + "@angular-redux/store": "6.4.5", "@angular/common": "^4.1.0", "@angular/compiler": "^4.1.0", "@angular/core": "^4.1.0", diff --git a/src/app/store/module.spec.ts b/src/app/store/module.spec.ts new file mode 100644 index 0000000..d3d328c --- /dev/null +++ b/src/app/store/module.spec.ts @@ -0,0 +1,34 @@ +import { NgRedux, DevToolsExtension } from '@angular-redux/store'; +import { NgReduxTestingModule, MockNgRedux } from '@angular-redux/store/testing'; +import { TestBed, async, getTestBed } from '@angular/core/testing'; +import { StoreModule } from './module'; +import { IAppState } from './model'; +import { RootEpics } from './epics'; + +describe('Store Module', () => { + let mockNgRedux: NgRedux; + let devTools: DevToolsExtension; + let mockEpics: RootEpics; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [ NgReduxTestingModule ], + }).compileComponents().then(() => { + const testbed = getTestBed(); + + mockEpics = { + createEpics() { return [] } + } as RootEpics; + + devTools = testbed.get(DevToolsExtension); + mockNgRedux = MockNgRedux.getInstance(); + }); + })); + + it('should configure the store when the module is loaded', async(() => { + const configureSpy = spyOn(MockNgRedux.getInstance(), 'configureStore'); + const instance = new StoreModule(mockNgRedux, devTools, null, mockEpics); + + expect(configureSpy).toHaveBeenCalled(); + })); +}); diff --git a/src/app/store/module.ts b/src/app/store/module.ts index 2151439..dfafdf9 100644 --- a/src/app/store/module.ts +++ b/src/app/store/module.ts @@ -38,7 +38,9 @@ export class StoreModule { devTools.isEnabled() ? [ devTools.enhancer() ] : []); // Enable syncing of Angular router state with our Redux store. - ngReduxRouter.initialize(); + if (ngReduxRouter) { + ngReduxRouter.initialize(); + } // Enable syncing of Angular form state with our Redux store. provideReduxForms(store);