Fix some reviewers emails showing as undefined
Sometimes users don't have emails, so when a user searches for a reviewer it sometimes shows "Reviewer <undefined>". Change-Id: Icca5bd40271f412c6b01271b07e9933a66447b06
This commit is contained in:
@@ -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 '';
|
||||
},
|
||||
});
|
||||
})();
|
||||
|
||||
@@ -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 => {
|
||||
|
||||
Reference in New Issue
Block a user