Merge "Fix diffs with comments on start line 0" into stable-3.8
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
index 87fd5ca..669537e 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
@@ -168,7 +168,7 @@
const rangeAtt = threadEl.getAttribute('range');
if (!rangeAtt) return undefined;
const range = JSON.parse(rangeAtt) as CommentRange;
- if (!range.start_line) throw new Error(`invalid range: ${rangeAtt}`);
+ if (!range.start_line) return undefined;
return range;
}
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils_test.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils_test.ts
index 25dc768..2438bcb 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils_test.ts
@@ -12,6 +12,7 @@
formatText,
createTabWrapper,
isFileUnchanged,
+ getRange,
} from './gr-diff-utils';
const LINE_BREAK_HTML = '<span class="gr-diff br"></span>';
@@ -195,4 +196,20 @@
};
assert.equal(isFileUnchanged(diff), true);
});
+
+ test('getRange returns undefined with start_line = 0', () => {
+ const range = {
+ start_line: 0,
+ end_line: 12,
+ start_character: 0,
+ end_character: 0,
+ };
+ const threadEl = document.createElement('div');
+ threadEl.className = 'comment-thread';
+ threadEl.setAttribute('diff-side', 'right');
+ threadEl.setAttribute('line-num', '1');
+ threadEl.setAttribute('range', JSON.stringify(range));
+ threadEl.setAttribute('slot', 'right-1');
+ assert.isUndefined(getRange(threadEl));
+ });
});