diff --git a/app/assets/javascripts/diffs/store/mutation_types.js b/app/assets/javascripts/diffs/store/mutation_types.js index 4436935c1ec291c0c0208805fcd774cdbb933aaa..699c61b3ddda220817dd0a92a43a31db3a2783ea 100644 --- a/app/assets/javascripts/diffs/store/mutation_types.js +++ b/app/assets/javascripts/diffs/store/mutation_types.js @@ -2,8 +2,11 @@ export const SET_BASE_CONFIG = 'SET_BASE_CONFIG'; export const SET_LOADING = 'SET_LOADING'; export const SET_BATCH_LOADING = 'SET_BATCH_LOADING'; export const SET_RETRIEVING_BATCHES = 'SET_RETRIEVING_BATCHES'; + export const SET_DIFF_DATA = 'SET_DIFF_DATA'; export const SET_DIFF_DATA_BATCH = 'SET_DIFF_DATA_BATCH'; +export const SET_DIFF_FILES = 'SET_DIFF_FILES'; + export const SET_DIFF_VIEW_TYPE = 'SET_DIFF_VIEW_TYPE'; export const SET_COVERAGE_DATA = 'SET_COVERAGE_DATA'; export const SET_MERGE_REQUEST_DIFFS = 'SET_MERGE_REQUEST_DIFFS'; diff --git a/app/assets/javascripts/diffs/store/mutations.js b/app/assets/javascripts/diffs/store/mutations.js index bb4c80b5759829dbe0e5dc474d60441a19c62b68..3c00ae98e7517b5009f74574d97a7271742ac765 100644 --- a/app/assets/javascripts/diffs/store/mutations.js +++ b/app/assets/javascripts/diffs/store/mutations.js @@ -10,6 +10,10 @@ import { } from './utils'; import * as types from './mutation_types'; +function updateDiffFilesInState(state, files) { + return Object.assign(state, { diffFiles: files }); +} + export default { [types.SET_BASE_CONFIG](state, options) { const { @@ -46,6 +50,10 @@ export default { Object.assign(state, { retrievingBatches }); }, + [types.SET_DIFF_FILES](state, files) { + updateDiffFilesInState(state, files); + }, + [types.SET_DIFF_DATA](state, data) { let files = state.diffFiles; @@ -58,8 +66,8 @@ export default { Object.assign(state, { ...convertObjectPropsToCamelCase(data), - diffFiles: files, }); + updateDiffFilesInState(state, files); }, [types.SET_DIFF_DATA_BATCH](state, data) { @@ -67,8 +75,8 @@ export default { Object.assign(state, { ...convertObjectPropsToCamelCase(data), - diffFiles: files, }); + updateDiffFilesInState(state, files); }, [types.SET_COVERAGE_DATA](state, coverageFiles) { diff --git a/spec/frontend/diffs/store/mutations_spec.js b/spec/frontend/diffs/store/mutations_spec.js index f486a53fc4d4bc846a5cac010d3077e1c8e5c78a..ad05f27b3259d7e79f5528b6a242f47ea293a304 100644 --- a/spec/frontend/diffs/store/mutations_spec.js +++ b/spec/frontend/diffs/store/mutations_spec.js @@ -51,6 +51,24 @@ describe('DiffsStoreMutations', () => { }); }); + describe('SET_DIFF_FILES', () => { + it('should set diffFiles in state', () => { + const state = {}; + + mutations[types.SET_DIFF_FILES](state, ['file', 'another file']); + + expect(state.diffFiles.length).toEqual(2); + }); + + it('should not set anything except diffFiles in state', () => { + const state = {}; + + mutations[types.SET_DIFF_FILES](state, ['file', 'another file']); + + expect(Object.keys(state)).toEqual(['diffFiles']); + }); + }); + describe('SET_DIFF_DATA', () => { it('should set diff data type properly', () => { const state = {