Merge "Fix some reviewers emails showing as undefined"

This commit is contained in:
Kasper Nilsson
2018-11-14 21:03:16 +00:00
committed by Gerrit Code Review
2 changed files with 43 additions and 5 deletions

View File

@@ -126,13 +126,15 @@
let name; let name;
let value; let value;
const generateStatusStr = function(account) { const generateStatusStr = function(account) {
return account.status ? ' (' + account.status + ')' : ''; return account.status ? '(' + account.status + ')' : '';
}; };
if (reviewer.account) { if (reviewer.account) {
// Reviewer is an account suggestion from getChangeSuggestedReviewers. // Reviewer is an account suggestion from getChangeSuggestedReviewers.
const reviewerName = this._accountOrAnon(reviewer.account); const reviewerName = this._accountOrAnon(reviewer.account);
name = reviewerName + ' <' + reviewer.account.email + '>' + const reviewerEmail = this._reviewerEmail(reviewer.account.email);
generateStatusStr(reviewer.account); const reviewerStatus = generateStatusStr(reviewer.account);
name = [reviewerName, reviewerEmail, reviewerStatus]
.filter(p => p.length > 0).join(' ');
value = reviewer; value = reviewer;
} else if (reviewer.group) { } else if (reviewer.group) {
// Reviewer is a group suggestion from getChangeSuggestedReviewers. // Reviewer is a group suggestion from getChangeSuggestedReviewers.
@@ -141,8 +143,10 @@
} else if (reviewer._account_id) { } else if (reviewer._account_id) {
// Reviewer is an account suggestion from getSuggestedAccounts. // Reviewer is an account suggestion from getSuggestedAccounts.
const reviewerName = this._accountOrAnon(reviewer); const reviewerName = this._accountOrAnon(reviewer);
name = reviewerName + ' <' + reviewer.email + '>' + const reviewerEmail = this._reviewerEmail(reviewer.email);
generateStatusStr(reviewer); const reviewerStatus = generateStatusStr(reviewer);
name = [reviewerName, reviewerEmail, reviewerStatus]
.filter(p => p.length > 0).join(' ');
value = {account: reviewer, count: 1}; value = {account: reviewer, count: 1};
} }
return {name, value}; return {name, value};
@@ -168,5 +172,13 @@
.map(this._makeSuggestion.bind(this)); .map(this._makeSuggestion.bind(this));
}); });
}, },
_reviewerEmail(email) {
if (typeof email !== 'undefined') {
return '<' + email + '>';
}
return '';
},
}); });
})(); })();

View File

@@ -56,6 +56,15 @@ limitations under the License.
status: opt_status, 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 owner;
let existingReviewer1; let existingReviewer1;
@@ -115,6 +124,7 @@ limitations under the License.
test('_makeSuggestion formats account or group accordingly', () => { test('_makeSuggestion formats account or group accordingly', () => {
let account = makeAccount(); let account = makeAccount();
const account2 = makeAccount2(); const account2 = makeAccount2();
const account3 = makeAccount3();
let suggestion = element._makeSuggestion({account}); let suggestion = element._makeSuggestion({account});
assert.deepEqual(suggestion, { assert.deepEqual(suggestion, {
name: account.name + ' <' + account.email + '>', name: account.name + ' <' + account.email + '>',
@@ -154,6 +164,22 @@ limitations under the License.
name: account.name + ' <' + account.email + '> (OOO)', name: account.name + ' <' + account.email + '> (OOO)',
value: {account, count: 1}, 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 => { test('_getReviewerSuggestions excludes owner+reviewers', done => {