Reset state flags on loadData calls
In some cases, bound values were setting the flags tracking changes in
gr-account-info. Resetting the flags when loadData is called ensures no
false positives occur.
In addition, upgrades the _usernameChanged logic to compare to the
existing account username value, as opposed to just setting the flag to
true on any modification.
Bug: Issue 7893
Change-Id: I75a3cda93bb065a7b9640d4b40905a5e21042bb5
diff --git a/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info_test.html b/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info_test.html
index d27d153..82997a5 100644
--- a/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info_test.html
+++ b/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info_test.html
@@ -311,5 +311,23 @@
});
});
});
+
+ test('_usernameChanged compares usernames with loose equality', () => {
+ element._account = {};
+ element._username = '';
+ element._hasUsernameChange = false;
+ element._loading = false;
+ // _usernameChanged is an observer, but call it here after setting
+ // _hasUsernameChange in the test to force recomputation.
+ element._usernameChanged();
+ flushAsynchronousOperations();
+
+ assert.isFalse(element._hasUsernameChange);
+
+ element.set('_username', 'test');
+ flushAsynchronousOperations();
+
+ assert.isTrue(element._hasUsernameChange);
+ });
});
</script>