[CORD-1043] Registering reducers on the graph
Change-Id: I5804025f25733b5b5da1fd95725db3467a65abef
diff --git a/src/app/service-graph/services/graph.extender.spec.ts b/src/app/service-graph/services/graph.extender.spec.ts
new file mode 100644
index 0000000..28ab96e
--- /dev/null
+++ b/src/app/service-graph/services/graph.extender.spec.ts
@@ -0,0 +1,47 @@
+import * as angular from 'angular';
+import 'angular-mocks';
+import 'angular-ui-router';
+import {IXosServiceGraphExtender, XosServiceGraphExtender} from './graph.extender';
+
+let service: IXosServiceGraphExtender, registerSpy;
+
+const reducer = (graph) => {
+ return graph;
+};
+
+describe('The XosServiceGraphExtender service', () => {
+
+ beforeEach(() => {
+ angular.module('xosServiceGraphExtender', [])
+ .service('XosServiceGraphExtender', XosServiceGraphExtender);
+
+ angular.mock.module('xosServiceGraphExtender');
+ });
+
+ beforeEach(angular.mock.inject((
+ XosServiceGraphExtender: IXosServiceGraphExtender,
+ ) => {
+ service = XosServiceGraphExtender;
+
+ registerSpy = spyOn(service, 'register').and.callThrough();
+ }));
+
+ it('should register a reducer for the coarse service graph', () => {
+ service.register('coarse', 'testCoarse', reducer);
+ expect(registerSpy).toHaveBeenCalled();
+ const coarseReducers = service.getCoarse();
+ expect(coarseReducers).toHaveLength(1);
+ expect(coarseReducers[0].name).toEqual('testCoarse');
+ expect(typeof coarseReducers[0].reducer).toEqual('function');
+ });
+
+ it('should register a reducer for the fine-grained service graph', () => {
+ service.register('finegrained', 'testFinegrained', reducer);
+ expect(registerSpy).toHaveBeenCalled();
+ const coarseReducers = service.getFinegrained();
+ expect(coarseReducers).toHaveLength(1);
+ expect(coarseReducers[0].name).toEqual('testFinegrained');
+ expect(typeof coarseReducers[0].reducer).toEqual('function');
+ });
+
+});