Do not parse partially filled changes for reviewer updates

Skip reviewer updates grouping for changes that:
- don't have messages
- don't have reviewer updates

Issue 5421

Change-Id: I3edcc3f5b1110506be5f23fcdf37a6bf40fc70c9
This commit is contained in:
Viktar Donich 2017-02-02 12:39:52 -08:00
parent 90e9425a99
commit 0f1296ffe6
2 changed files with 60 additions and 1 deletions
polygerrit-ui/app/elements/shared/gr-rest-api-interface

@ -24,7 +24,10 @@
};
GrReviewerUpdatesParser.parse = function(change) {
if (!change.messages || !change.reviewer_updates) {
if (!change ||
!change.messages ||
!change.reviewer_updates ||
!change.reviewer_updates.length) {
return change;
}
var parser = new GrReviewerUpdatesParser(change);

@ -39,6 +39,62 @@ limitations under the License.
sandbox.restore();
});
test('ignores changes without messages', function() {
var change = {};
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_filterRemovedMessages');
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_groupUpdates');
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_formatUpdates');
assert.strictEqual(GrReviewerUpdatesParser.parse(change), change);
assert.isFalse(
GrReviewerUpdatesParser.prototype._filterRemovedMessages.called);
assert.isFalse(
GrReviewerUpdatesParser.prototype._groupUpdates.called);
assert.isFalse(
GrReviewerUpdatesParser.prototype._formatUpdates.called);
});
test('ignores changes without reviewer updates', function() {
var change = {
messages: [],
};
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_filterRemovedMessages');
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_groupUpdates');
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_formatUpdates');
assert.strictEqual(GrReviewerUpdatesParser.parse(change), change);
assert.isFalse(
GrReviewerUpdatesParser.prototype._filterRemovedMessages.called);
assert.isFalse(
GrReviewerUpdatesParser.prototype._groupUpdates.called);
assert.isFalse(
GrReviewerUpdatesParser.prototype._formatUpdates.called);
});
test('ignores changes with empty reviewer updates', function() {
var change = {
messages: [],
reviewer_updates: [],
};
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_filterRemovedMessages');
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_groupUpdates');
sandbox.stub(
GrReviewerUpdatesParser.prototype, '_formatUpdates');
assert.strictEqual(GrReviewerUpdatesParser.parse(change), change);
assert.isFalse(
GrReviewerUpdatesParser.prototype._filterRemovedMessages.called);
assert.isFalse(
GrReviewerUpdatesParser.prototype._groupUpdates.called);
assert.isFalse(
GrReviewerUpdatesParser.prototype._formatUpdates.called);
});
test('filter removed messages', function() {
var change = {
messages: [