Merge "Update check from new value instead of merging into old object"
diff --git a/gr-checks/gr-checks-view.js b/gr-checks/gr-checks-view.js
index 4329b5f..8c92bb4 100644
--- a/gr-checks/gr-checks-view.js
+++ b/gr-checks/gr-checks-view.js
@@ -249,10 +249,8 @@
     },
 
     /**
-     * Merge new checks into old checks to maintain showCheckMessage
-     * property
+     * Explicity add showCheckMessage to maintain it
      * Loop over checks to make sure no new checks are missed
-     * Merge new check object into prev check
      * Remove any check that is not returned the next time
      * Ensure message is updated
      */
@@ -263,7 +261,7 @@
                 c => c.checker_uuid === check.checker_uuid
             );
             if (!prevCheck) return Object.assign({}, check);
-            return Object.assign({}, prevCheck, check,
+            return Object.assign({}, check,
                 {showCheckMessage: prevCheck.showCheckMessage});
           });
     },
diff --git a/gr-checks/gr-checks-view_test.html b/gr-checks/gr-checks-view_test.html
index e088828..dce5364 100644
--- a/gr-checks/gr-checks-view_test.html
+++ b/gr-checks/gr-checks-view_test.html
@@ -318,6 +318,17 @@
         element._checks[1].showCheckMessage = undefined;
       });
 
+
+      test('url is not set if new check has no url', () => {
+        const NEW_CHECKS = [Object.assign({}, CHECK1),
+          Object.assign({}, CHECK2)];
+        delete NEW_CHECKS[0]['url'];
+        delete NEW_CHECKS[1]['url'];
+        const UPDATED_CHECKS = element._updateChecks(NEW_CHECKS);
+        assert.isNotOk(UPDATED_CHECKS[0].url);
+        assert.isNotOk(UPDATED_CHECKS[1].url);
+      });
+
       test('message is not shown if new check has no message', () => {
         const NEW_CHECKS = [Object.assign({}, CHECK1),
           Object.assign({}, CHECK2)];