diff --git a/src/app/extender/services/onboard.service.spec.ts b/src/app/extender/services/onboard.service.spec.ts
new file mode 100644
index 0000000..f9373c9
--- /dev/null
+++ b/src/app/extender/services/onboard.service.spec.ts
@@ -0,0 +1,69 @@
+import * as angular from 'angular';
+import 'angular-mocks';
+import 'angular-resource';
+import {Subject} from 'rxjs';
+import {XosOnboarder, IXosOnboarder} from './onboard.service';
+import {IWSEventService} from '../../datasources/websocket/global';
+
+let service, $ocLazyLoad;
+
+const subject = new Subject();
+
+const MockWs: IWSEventService = {
+  list() {
+    return subject.asObservable();
+  }
+};
+
+const MockPromise = {
+  then: (cb) => {
+    cb('done');
+    return MockPromise;
+  },
+  catch: (cb) => {
+    cb('err');
+    return MockPromise;
+  }
+};
+
+const MockLoad = {
+  load: () => {
+    return MockPromise;
+  }
+};
+
+describe('The XosOnboarder service', () => {
+
+  beforeEach(() => {
+
+    angular
+      .module('XosOnboarder', [])
+      .value('WebSocket', MockWs)
+      .value('$ocLazyLoad', MockLoad)
+      .service('XosOnboarder', XosOnboarder);
+
+    angular.mock.module('XosOnboarder');
+  });
+
+  beforeEach(angular.mock.inject((
+    XosOnboarder: IXosOnboarder,
+    _$ocLazyLoad_: any
+  ) => {
+    $ocLazyLoad = _$ocLazyLoad_;
+    spyOn($ocLazyLoad, 'load').and.callThrough();
+    service = XosOnboarder;
+  }));
+
+  describe('when receive an event', () => {
+    it('should use $ocLazyLoad to add modules to the app', () => {
+      subject.next({
+        msg: {
+          app: 'sample',
+          files: ['vendor.js', 'app.js']
+        }
+      });
+      expect($ocLazyLoad.load).toHaveBeenCalledWith('vendor.js');
+      expect($ocLazyLoad.load).toHaveBeenCalledWith('app.js');
+    });
+  });
+});
