Remove old class when status chip status is updated The change view renders status chips in dom-repeat, which, by default, will reuse and reconfigure instances when the data changes. However, status chips only added classes when their status was configured, and did not remove classes. As a result, a reused chip could contain classes from other statuses. With this change, the chip removes the previous class when the status is updated. Bug: Issue 7592 Change-Id: I89354790307fddf5262d0407b3ecc60124df7a5b
diff --git a/polygerrit-ui/app/elements/shared/gr-change-status/gr-change-status_test.html b/polygerrit-ui/app/elements/shared/gr-change-status/gr-change-status_test.html index 82aeec9..2a4f80c 100644 --- a/polygerrit-ui/app/elements/shared/gr-change-status/gr-change-status_test.html +++ b/polygerrit-ui/app/elements/shared/gr-change-status/gr-change-status_test.html
@@ -79,5 +79,15 @@ assert.isDefined(element.tooltipText); assert.isTrue(element.classList.contains('private')); }); + + test('updating status removes the previous class', () => { + element.status = 'Private'; + assert.isTrue(element.classList.contains('private')); + assert.isFalse(element.classList.contains('wip')); + + element.status = 'WIP'; + assert.isFalse(element.classList.contains('private')); + assert.isTrue(element.classList.contains('wip')); + }); }); </script>