Commit 605e7fdd authored by Phil Hughes's avatar Phil Hughes

Fixes diff discussions not being fully removed

This fixes a bug where a discussion on a none changed line
would not get fully removed and therefore leave the comment row
empty. This was caused by the discussiob being added
to the right when it shouldnt of been

This also fixes a very rare edge case where discussions would get added
twice to diff lines causing a Vue rendering warning

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/53317
parent 6d7e52bd
...@@ -153,13 +153,9 @@ export default { ...@@ -153,13 +153,9 @@ export default {
}, },
setDiscussions() { setDiscussions() {
if (this.isNotesFetched && !this.assignedDiscussions && !this.isLoading) { if (this.isNotesFetched && !this.assignedDiscussions && !this.isLoading) {
requestIdleCallback(
() =>
this.assignDiscussionsToDiff().then(() => {
this.assignedDiscussions = true; this.assignedDiscussions = true;
}),
{ timeout: 1000 }, requestIdleCallback(() => this.assignDiscussionsToDiff(), { timeout: 1000 });
);
} }
}, },
adjustView() { adjustView() {
......
...@@ -133,7 +133,7 @@ export default { ...@@ -133,7 +133,7 @@ export default {
}, },
right: { right: {
...line.right, ...line.right,
discussions: right ? line.right.discussions.concat(discussion) : [], discussions: right && !left ? line.right.discussions.concat(discussion) : [],
}, },
}; };
} }
......
...@@ -221,6 +221,7 @@ describe('DiffsStoreMutations', () => { ...@@ -221,6 +221,7 @@ describe('DiffsStoreMutations', () => {
expect(state.diffFiles[0].parallelDiffLines[0].left.discussions.length).toEqual(1); expect(state.diffFiles[0].parallelDiffLines[0].left.discussions.length).toEqual(1);
expect(state.diffFiles[0].parallelDiffLines[0].left.discussions[0].id).toEqual(1); expect(state.diffFiles[0].parallelDiffLines[0].left.discussions[0].id).toEqual(1);
expect(state.diffFiles[0].parallelDiffLines[0].right.discussions).toEqual([]);
expect(state.diffFiles[0].highlightedDiffLines[0].discussions.length).toEqual(1); expect(state.diffFiles[0].highlightedDiffLines[0].discussions.length).toEqual(1);
expect(state.diffFiles[0].highlightedDiffLines[0].discussions[0].id).toEqual(1); expect(state.diffFiles[0].highlightedDiffLines[0].discussions[0].id).toEqual(1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment