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),
|
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 => {
|
export const shouldRenderParallelCommentRow = state => line => {
|
||||||
const hasDiscussion =
|
const hasDiscussion =
|
||||||
(line.left && line.left.discussions && line.left.discussions.length) ||
|
(line.left && line.left.discussions && line.left.discussions.length) ||
|
||||||
|
@ -137,7 +99,7 @@ export const shouldRenderParallelCommentRow = state => line => {
|
||||||
export const shouldRenderInlineCommentRow = state => line => {
|
export const shouldRenderInlineCommentRow = state => line => {
|
||||||
if (state.diffLineCommentForms[line.lineCode]) return true;
|
if (state.diffLineCommentForms[line.lineCode]) return true;
|
||||||
|
|
||||||
if (!line.discussions && line.discussions.length === 0) {
|
if (!line.discussions || line.discussions.length === 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,9 @@ export function addContextLines(options) {
|
||||||
* @returns {Object}
|
* @returns {Object}
|
||||||
*/
|
*/
|
||||||
export function trimFirstCharOfLineContent(line = {}) {
|
export function trimFirstCharOfLineContent(line = {}) {
|
||||||
|
// eslint-disable-next-line no-param-reassign
|
||||||
delete line.text;
|
delete line.text;
|
||||||
|
// eslint-disable-next-line no-param-reassign
|
||||||
line.discussions = [];
|
line.discussions = [];
|
||||||
|
|
||||||
const parsedLine = Object.assign({}, line);
|
const parsedLine = Object.assign({}, line);
|
||||||
|
|
|
@ -43,8 +43,8 @@ export const fetchDiscussions = ({ commit }, path) =>
|
||||||
commit(types.SET_INITIAL_DISCUSSIONS, discussions);
|
commit(types.SET_INITIAL_DISCUSSIONS, discussions);
|
||||||
});
|
});
|
||||||
|
|
||||||
export const refetchDiscussionById = ({ commit }, { path, discussionId }) => {
|
export const refetchDiscussionById = ({ commit }, { path, discussionId }) =>
|
||||||
return new Promise(resolve => {
|
new Promise(resolve => {
|
||||||
service
|
service
|
||||||
.fetchDiscussions(path)
|
.fetchDiscussions(path)
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
|
@ -57,7 +57,6 @@ export const refetchDiscussionById = ({ commit }, { path, discussionId }) => {
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
});
|
});
|
||||||
};
|
|
||||||
|
|
||||||
export const deleteNote = ({ commit }, note) =>
|
export const deleteNote = ({ commit }, note) =>
|
||||||
service.deleteNote(note.path).then(() => {
|
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', () => {
|
describe('shouldRenderParallelCommentRow', () => {
|
||||||
let line;
|
let line;
|
||||||
|
|
||||||
|
@ -223,32 +202,20 @@ describe('Diffs Module Getters', () => {
|
||||||
it('returns true when discussion is expanded', () => {
|
it('returns true when discussion is expanded', () => {
|
||||||
discussionMock.expanded = true;
|
discussionMock.expanded = true;
|
||||||
|
|
||||||
expect(
|
expect(getters.shouldRenderParallelCommentRow(localState)(line)).toEqual(true);
|
||||||
getters.shouldRenderParallelCommentRow(localState, {
|
|
||||||
singleDiscussionByLineCode: () => [discussionMock],
|
|
||||||
})(line),
|
|
||||||
).toEqual(true);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns false when no discussion was found', () => {
|
it('returns false when no discussion was found', () => {
|
||||||
localState.diffLineCommentForms.ABC = false;
|
localState.diffLineCommentForms.ABC = false;
|
||||||
localState.diffLineCommentForms.DEF = false;
|
localState.diffLineCommentForms.DEF = false;
|
||||||
|
|
||||||
expect(
|
expect(getters.shouldRenderParallelCommentRow(localState)(line)).toEqual(false);
|
||||||
getters.shouldRenderParallelCommentRow(localState, {
|
|
||||||
singleDiscussionByLineCode: () => [],
|
|
||||||
})(line),
|
|
||||||
).toEqual(false);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns true when discussionForm was found', () => {
|
it('returns true when discussionForm was found', () => {
|
||||||
localState.diffLineCommentForms.ABC = {};
|
localState.diffLineCommentForms.ABC = {};
|
||||||
|
|
||||||
expect(
|
expect(getters.shouldRenderParallelCommentRow(localState)(line)).toEqual(true);
|
||||||
getters.shouldRenderParallelCommentRow(localState, {
|
|
||||||
singleDiscussionByLineCode: () => [discussionMock],
|
|
||||||
})(line),
|
|
||||||
).toEqual(true);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue