Merge branch 'diff-fix-expanding' into 'master'

Fixed multiple diff line discussions not expanding

Closes #53600

See merge request gitlab-org/gitlab-ce!23539
This commit is contained in:
Filipa Lacerda 2018-12-04 16:23:21 +00:00
commit 4c7e22185b
5 changed files with 51 additions and 2 deletions

View File

@ -56,9 +56,12 @@ export default {
return `${noteData.author.name}: ${note}`;
},
toggleDiscussions() {
const forceExpanded = this.discussions.some(discussion => !discussion.expanded);
this.discussions.forEach(discussion => {
this.toggleDiscussion({
discussionId: discussion.id,
forceExpanded,
});
});
},

View File

@ -178,9 +178,11 @@ export default {
}
},
[types.TOGGLE_DISCUSSION](state, { discussionId }) {
[types.TOGGLE_DISCUSSION](state, { discussionId, forceExpanded = null }) {
const discussion = utils.findNoteObjectById(state.discussions, discussionId);
Object.assign(discussion, { expanded: !discussion.expanded });
Object.assign(discussion, {
expanded: forceExpanded === null ? !discussion.expanded : forceExpanded,
});
},
[types.UPDATE_NOTE](state, note) {

View File

@ -0,0 +1,5 @@
---
title: Fixed multiple diff line discussions not expanding
merge_request:
author:
type: fixed

View File

@ -89,6 +89,35 @@ describe('DiffGutterAvatars', () => {
expect(component.discussions[0].expanded).toEqual(false);
component.$store.dispatch('setInitialNotes', []);
});
it('forces expansion of all discussions', () => {
spyOn(component.$store, 'dispatch');
component.discussions[0].expanded = true;
component.discussions.push({
...component.discussions[0],
id: '123test',
expanded: false,
});
component.toggleDiscussions();
expect(component.$store.dispatch.calls.argsFor(0)).toEqual([
'toggleDiscussion',
{
discussionId: component.discussions[0].id,
forceExpanded: true,
},
]);
expect(component.$store.dispatch.calls.argsFor(1)).toEqual([
'toggleDiscussion',
{
discussionId: component.discussions[1].id,
forceExpanded: true,
},
]);
});
});
});

View File

@ -297,6 +297,16 @@ describe('Notes Store mutations', () => {
expect(state.discussions[0].expanded).toEqual(false);
});
it('forces a discussions expanded state', () => {
const state = {
discussions: [{ ...discussionMock, expanded: false }],
};
mutations.TOGGLE_DISCUSSION(state, { discussionId: discussionMock.id, forceExpanded: true });
expect(state.discussions[0].expanded).toEqual(true);
});
});
describe('UPDATE_NOTE', () => {