[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