diff options
author | Kasper Nilsson <kaspern@google.com> | 2018-11-14 23:17:41 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-11-14 23:17:41 +0000 |
commit | c06672a670c93737879016b6511b88539e396952 (patch) | |
tree | 2c6d9619a1e22395fe57f39a5eec36f8db388cb8 | |
parent | d28e5a1947d75f1dc99a10db4570911891c8618c (diff) | |
parent | 188e072a12c26401f60a6c6a8d589c142951a060 (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.js | 22 | ||||
-rw-r--r-- | polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html | 26 |
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 => { |