summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKasper Nilsson <kaspern@google.com>2018-11-14 23:17:41 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-11-14 23:17:41 +0000
commitc06672a670c93737879016b6511b88539e396952 (patch)
tree2c6d9619a1e22395fe57f39a5eec36f8db388cb8
parentd28e5a1947d75f1dc99a10db4570911891c8618c (diff)
parent188e072a12c26401f60a6c6a8d589c142951a060 (diff)
Merge "Fix some reviewers emails showing as undefined" into stable-2.16
-rw-r--r--polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js22
-rw-r--r--polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html26
2 files changed, 43 insertions, 5 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
index 86e3903934..715ddc05ea 100644
--- a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
+++ b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
@@ -126,13 +126,15 @@
let name;
let value;
const generateStatusStr = function(account) {
- return account.status ? ' (' + account.status + ')' : '';
+ return account.status ? '(' + account.status + ')' : '';
};
if (reviewer.account) {
// Reviewer is an account suggestion from getChangeSuggestedReviewers.
const reviewerName = this._accountOrAnon(reviewer.account);
- name = reviewerName + ' <' + reviewer.account.email + '>' +
- generateStatusStr(reviewer.account);
+ const reviewerEmail = this._reviewerEmail(reviewer.account.email);
+ const reviewerStatus = generateStatusStr(reviewer.account);
+ name = [reviewerName, reviewerEmail, reviewerStatus]
+ .filter(p => p.length > 0).join(' ');
value = reviewer;
} else if (reviewer.group) {
// Reviewer is a group suggestion from getChangeSuggestedReviewers.
@@ -141,8 +143,10 @@
} else if (reviewer._account_id) {
// Reviewer is an account suggestion from getSuggestedAccounts.
const reviewerName = this._accountOrAnon(reviewer);
- name = reviewerName + ' <' + reviewer.email + '>' +
- generateStatusStr(reviewer);
+ const reviewerEmail = this._reviewerEmail(reviewer.email);
+ const reviewerStatus = generateStatusStr(reviewer);
+ name = [reviewerName, reviewerEmail, reviewerStatus]
+ .filter(p => p.length > 0).join(' ');
value = {account: reviewer, count: 1};
}
return {name, value};
@@ -168,5 +172,13 @@
.map(this._makeSuggestion.bind(this));
});
},
+
+ _reviewerEmail(email) {
+ if (typeof email !== 'undefined') {
+ return '<' + email + '>';
+ }
+
+ return '';
+ },
});
})();
diff --git a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
index 03a0be85fc..20d127d030 100644
--- a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
+++ b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
@@ -56,6 +56,15 @@ limitations under the License.
status: opt_status,
};
};
+ let _nextAccountId3 = 0;
+ const makeAccount3 = function(opt_status) {
+ const accountId3 = ++_nextAccountId3;
+ return {
+ _account_id: accountId3,
+ name: 'name ' + accountId3,
+ status: opt_status,
+ };
+ };
let owner;
let existingReviewer1;
@@ -115,6 +124,7 @@ limitations under the License.
test('_makeSuggestion formats account or group accordingly', () => {
let account = makeAccount();
const account2 = makeAccount2();
+ const account3 = makeAccount3();
let suggestion = element._makeSuggestion({account});
assert.deepEqual(suggestion, {
name: account.name + ' <' + account.email + '>',
@@ -154,6 +164,22 @@ limitations under the License.
name: account.name + ' <' + account.email + '> (OOO)',
value: {account, count: 1},
});
+
+ sandbox.stub(element, '_reviewerEmail',
+ () => { return ''; });
+
+ suggestion = element._makeSuggestion(account3);
+ assert.deepEqual(suggestion, {
+ name: account3.name,
+ value: {account: account3, count: 1},
+ });
+ });
+
+ test('_reviewerEmail', () => {
+ assert.equal(
+ element._reviewerEmail('email@gerritreview.com'),
+ '<email@gerritreview.com>');
+ assert.equal(element._reviewerEmail(undefined), '');
});
test('_getReviewerSuggestions excludes owner+reviewers', done => {