[CORD-1858] Avoid event duplication and skipping notification for parent models

Change-Id: I8815de31b0adb731226ae26bedbe3598bde04aca
(cherry picked from commit 31daa80018ef5014691dd49d9ad71f8c5638d416)
diff --git a/src/app/core/header/header.spec.ts b/src/app/core/header/header.spec.ts
index 13f8b5b..eb236b1 100644
--- a/src/app/core/header/header.spec.ts
+++ b/src/app/core/header/header.spec.ts
@@ -51,11 +51,26 @@
 const infoNotification = {
   model: 'TestModel',
   msg: {
-    changed_fields: ['backend_status'],
+    changed_fields: ['backend_status', 'backend_code'],
     pk: 1,
     object: {
       name: 'TestName',
-      backend_status: '0 - In Progress'
+      backend_status: 'In Progress',
+      backend_code: 0
+    }
+  }
+};
+
+const noNotification = {
+  model: 'TestModel',
+  skip_notification: true,
+  msg: {
+    changed_fields: ['backend_status', 'backend_code'],
+    pk: 1,
+    object: {
+      name: 'TestName',
+      backend_status: 'In Progress',
+      backend_code: 0
     }
   }
 };
@@ -74,6 +89,9 @@
       .value('toastrConfig', MockToastrConfig)
       .value('AuthService', MockAuth)
       .value('XosNavigationService', {})
+      .value('ConfigHelpers', {
+        stateWithParamsForJs: () => null
+      })
       .value('XosKeyboardShortcut', MockXosKeyboardShortcut)
       .value('StyleConfig', {
         logo: 'cord-logo.png',
@@ -92,6 +110,7 @@
 
     // clear notifications
     isolatedScope.notifications = [];
+    MockToastr.info.calls.reset();
   }));
 
   it('should render the appropriate logo', () => {
@@ -116,6 +135,8 @@
   });
 
   it('should configure toastr', () => {
+    delete MockToastrConfig['onTap'];
+
     expect(MockToastrConfig).toEqual({
       newestOnTop: false,
       positionClass: 'toast-top-right',
@@ -129,7 +150,14 @@
     sendEvent(infoNotification);
     scope.$digest();
 
-    expect(MockToastr.info).toHaveBeenCalledWith('Synchronization started for: TestName', 'TestModel');
+    expect(MockToastr.info).toHaveBeenCalledWith('Synchronization started for: TestName', 'TestModel', {extraData: {dest: null}});
+  });
+
+  it('should not display a toastr for a new event that use skip_notification', () => {
+    sendEvent(noNotification);
+    scope.$digest();
+
+    expect(MockToastr.info).not.toHaveBeenCalled();
   });
 
   // TODO test error and success toaster call