CORD-772 Loading external app when a new XosComponent of that kind is created and injecting loaded components at boot

Change-Id: I4f70d3b1e48b63eab3b8f8d2ca3f5b049b468f4c
diff --git a/src/app/extender/services/onboard.service.spec.ts b/src/app/extender/services/onboard.service.spec.ts
index f9373c9..375aadb 100644
--- a/src/app/extender/services/onboard.service.spec.ts
+++ b/src/app/extender/services/onboard.service.spec.ts
@@ -5,7 +5,7 @@
 import {XosOnboarder, IXosOnboarder} from './onboard.service';
 import {IWSEventService} from '../../datasources/websocket/global';
 
-let service, $ocLazyLoad;
+let service, $ocLazyLoad, $timeout;
 
 const subject = new Subject();
 
@@ -32,6 +32,16 @@
   }
 };
 
+const MockModelStore = {
+  query: () => {
+    return {
+      subscribe: () => {
+        return;
+      }
+    };
+  }
+};
+
 describe('The XosOnboarder service', () => {
 
   beforeEach(() => {
@@ -40,6 +50,7 @@
       .module('XosOnboarder', [])
       .value('WebSocket', MockWs)
       .value('$ocLazyLoad', MockLoad)
+      .value('ModelStore', MockModelStore)
       .service('XosOnboarder', XosOnboarder);
 
     angular.mock.module('XosOnboarder');
@@ -47,21 +58,28 @@
 
   beforeEach(angular.mock.inject((
     XosOnboarder: IXosOnboarder,
-    _$ocLazyLoad_: any
+    _$ocLazyLoad_: any,
+    _$timeout_: ng.ITimeoutService
   ) => {
     $ocLazyLoad = _$ocLazyLoad_;
     spyOn($ocLazyLoad, 'load').and.callThrough();
     service = XosOnboarder;
+    $timeout = _$timeout_;
   }));
 
   describe('when receive an event', () => {
     it('should use $ocLazyLoad to add modules to the app', () => {
       subject.next({
+        model: 'XOSComponent',
         msg: {
           app: 'sample',
-          files: ['vendor.js', 'app.js']
+          object: {
+            extra: '["vendor.js", "app.js"]',
+            name: 'sample app'
+          }
         }
       });
+      $timeout.flush();
       expect($ocLazyLoad.load).toHaveBeenCalledWith('vendor.js');
       expect($ocLazyLoad.load).toHaveBeenCalledWith('app.js');
     });