Fix for Getter + Linting
This commit is contained in:
parent
a424e8141b
commit
8563499b0f
4 changed files with 8 additions and 78 deletions
|
@ -72,44 +72,6 @@ export const getDiffFileDiscussions = (state, getters, rootState, rootGetters) =
|
|||
discussion.diff_discussion && _.isEqual(discussion.diff_file.file_hash, diff.fileHash),
|
||||
) || [];
|
||||
|
||||
/**
|
||||
* Returns an Object with discussions by their diff line code
|
||||
* To avoid rendering outdated discussions on the Changes tab we should do a bunch of SHA
|
||||
* comparisions. `note.position.formatter` have the current version diff refs but
|
||||
* `note.original_position.formatter` will have the first version's diff refs.
|
||||
* If line diff refs matches with one of them, we should render it as a discussion on Changes tab.
|
||||
*
|
||||
* @param {Object} diff
|
||||
* @returns {Array}
|
||||
*/
|
||||
export const discussionsByLineCode = (state, getters, rootState, rootGetters) => {
|
||||
const diffRefsByLineCode = getDiffRefsByLineCode(state.diffFiles);
|
||||
|
||||
return rootGetters.discussions.reduce((acc, note) => {
|
||||
const isDiffDiscussion = note.diff_discussion;
|
||||
const hasLineCode = note.line_code;
|
||||
const isResolvable = note.resolvable;
|
||||
const diffRefs = diffRefsByLineCode[note.line_code];
|
||||
|
||||
if (isDiffDiscussion && hasLineCode && isResolvable && diffRefs) {
|
||||
const refs = convertObjectPropsToCamelCase(note.position.formatter);
|
||||
const originalRefs = convertObjectPropsToCamelCase(note.original_position.formatter);
|
||||
|
||||
if (_.isEqual(refs, diffRefs) || _.isEqual(originalRefs, diffRefs)) {
|
||||
const lineCode = note.line_code;
|
||||
|
||||
if (acc[lineCode]) {
|
||||
acc[lineCode].push(note);
|
||||
} else {
|
||||
acc[lineCode] = [note];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
};
|
||||
|
||||
export const shouldRenderParallelCommentRow = state => line => {
|
||||
const hasDiscussion =
|
||||
(line.left && line.left.discussions && line.left.discussions.length) ||
|
||||
|
@ -137,7 +99,7 @@ export const shouldRenderParallelCommentRow = state => line => {
|
|||
export const shouldRenderInlineCommentRow = state => line => {
|
||||
if (state.diffLineCommentForms[line.lineCode]) return true;
|
||||
|
||||
if (!line.discussions && line.discussions.length === 0) {
|
||||
if (!line.discussions || line.discussions.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -161,7 +161,9 @@ export function addContextLines(options) {
|
|||
* @returns {Object}
|
||||
*/
|
||||
export function trimFirstCharOfLineContent(line = {}) {
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
delete line.text;
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
line.discussions = [];
|
||||
|
||||
const parsedLine = Object.assign({}, line);
|
||||
|
|
|
@ -43,8 +43,8 @@ export const fetchDiscussions = ({ commit }, path) =>
|
|||
commit(types.SET_INITIAL_DISCUSSIONS, discussions);
|
||||
});
|
||||
|
||||
export const refetchDiscussionById = ({ commit }, { path, discussionId }) => {
|
||||
return new Promise(resolve => {
|
||||
export const refetchDiscussionById = ({ commit }, { path, discussionId }) =>
|
||||
new Promise(resolve => {
|
||||
service
|
||||
.fetchDiscussions(path)
|
||||
.then(res => res.json())
|
||||
|
@ -57,7 +57,6 @@ export const refetchDiscussionById = ({ commit }, { path, discussionId }) => {
|
|||
})
|
||||
.catch(() => {});
|
||||
});
|
||||
};
|
||||
|
||||
export const deleteNote = ({ commit }, note) =>
|
||||
service.deleteNote(note.path).then(() => {
|
||||
|
|
|
@ -184,27 +184,6 @@ describe('Diffs Module Getters', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('singleDiscussionByLineCode', () => {
|
||||
it('returns found discussion per line Code', () => {
|
||||
const discussionsMock = {};
|
||||
discussionsMock.ABC = discussionMock;
|
||||
|
||||
expect(
|
||||
getters.singleDiscussionByLineCode(localState, {}, null, {
|
||||
discussionsByLineCode: () => discussionsMock,
|
||||
})('DEF'),
|
||||
).toEqual([]);
|
||||
});
|
||||
|
||||
it('returns empty array when no discussions match', () => {
|
||||
expect(
|
||||
getters.singleDiscussionByLineCode(localState, {}, null, {
|
||||
discussionsByLineCode: () => {},
|
||||
})('DEF'),
|
||||
).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('shouldRenderParallelCommentRow', () => {
|
||||
let line;
|
||||
|
||||
|
@ -223,32 +202,20 @@ describe('Diffs Module Getters', () => {
|
|||
it('returns true when discussion is expanded', () => {
|
||||
discussionMock.expanded = true;
|
||||
|
||||
expect(
|
||||
getters.shouldRenderParallelCommentRow(localState, {
|
||||
singleDiscussionByLineCode: () => [discussionMock],
|
||||
})(line),
|
||||
).toEqual(true);
|
||||
expect(getters.shouldRenderParallelCommentRow(localState)(line)).toEqual(true);
|
||||
});
|
||||
|
||||
it('returns false when no discussion was found', () => {
|
||||
localState.diffLineCommentForms.ABC = false;
|
||||
localState.diffLineCommentForms.DEF = false;
|
||||
|
||||
expect(
|
||||
getters.shouldRenderParallelCommentRow(localState, {
|
||||
singleDiscussionByLineCode: () => [],
|
||||
})(line),
|
||||
).toEqual(false);
|
||||
expect(getters.shouldRenderParallelCommentRow(localState)(line)).toEqual(false);
|
||||
});
|
||||
|
||||
it('returns true when discussionForm was found', () => {
|
||||
localState.diffLineCommentForms.ABC = {};
|
||||
|
||||
expect(
|
||||
getters.shouldRenderParallelCommentRow(localState, {
|
||||
singleDiscussionByLineCode: () => [discussionMock],
|
||||
})(line),
|
||||
).toEqual(true);
|
||||
expect(getters.shouldRenderParallelCommentRow(localState)(line)).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue