diff --git a/app/assets/javascripts/diffs/store/utils.js b/app/assets/javascripts/diffs/store/utils.js index 52e04bebfa1831d388e42e91b644e7b9777a1cf6..d74c234c5391e0fd9fa01c856fe5b87a0d906c80 100644 --- a/app/assets/javascripts/diffs/store/utils.js +++ b/app/assets/javascripts/diffs/store/utils.js @@ -245,12 +245,14 @@ export function addLineReferences(lines, lineNumbers, bottom, isExpandDown, next targetLine = linesWithNumbers[matchLineIndex + 1]; } - Object.assign(line, { - meta_data: { - old_pos: targetLine.old_line, - new_pos: targetLine.new_line, - }, - }); + if (targetLine) { + Object.assign(line, { + meta_data: { + old_pos: targetLine.old_line, + new_pos: targetLine.new_line, + }, + }); + } } return linesWithNumbers; } diff --git a/spec/frontend/diffs/store/utils_spec.js b/spec/frontend/diffs/store/utils_spec.js index c5469c1443d0d41797a1aa55ccdf2daa717d3906..d5f8b666d848190af6026caeb68dd4dbb8f53dee 100644 --- a/spec/frontend/diffs/store/utils_spec.js +++ b/spec/frontend/diffs/store/utils_spec.js @@ -262,6 +262,17 @@ describe('DiffsStoreUtils', () => { expect(linesWithReferences[1].meta_data.old_pos).toEqual(10); expect(linesWithReferences[1].meta_data.new_pos).toEqual(11); }); + + it('should not change meta_data when there is no target line when isExpandDown is not true', () => { + const lines = [{ type: MATCH_LINE_TYPE }]; + const linesWithReferences = utils.addLineReferences(lines, lineNumbers, false, false, { + old_line: 10, + new_line: 11, + }); + + expect(linesWithReferences[0].meta_data).toBeUndefined(); + expect(linesWithReferences[0].meta_data).toBeUndefined(); + }); }); describe('trimFirstCharOfLineContent', () => {