diff --git a/app/assets/javascripts/diffs/store/actions.js b/app/assets/javascripts/diffs/store/actions.js index ee319990290481cf70e0b01bd69b0b9df7da12c1..8c72971682dd1cecda1a12b3143aaf6b0c585919 100644 --- a/app/assets/javascripts/diffs/store/actions.js +++ b/app/assets/javascripts/diffs/store/actions.js @@ -185,11 +185,11 @@ export const fetchDiffFilesMeta = ({ commit, state }) => { .get(mergeUrlParams(urlParams, state.endpointMetadata)) .then(({ data }) => { const strippedData = { ...data }; - delete strippedData.diff_files; + commit(types.SET_LOADING, false); commit(types.SET_MERGE_REQUEST_DIFFS, data.merge_request_diffs || []); - commit(types.SET_DIFF_DATA, strippedData); + commit(types.SET_DIFF_METADATA, strippedData); worker.postMessage(prepareDiffData(data, state.diffFiles)); diff --git a/app/assets/javascripts/diffs/store/mutation_types.js b/app/assets/javascripts/diffs/store/mutation_types.js index 251840287993ee7136e53c2c9e45297ce024102f..30097239aaa230d8a238cae83794268ad593fff2 100644 --- a/app/assets/javascripts/diffs/store/mutation_types.js +++ b/app/assets/javascripts/diffs/store/mutation_types.js @@ -3,7 +3,7 @@ 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_METADATA = 'SET_DIFF_METADATA'; export const SET_DIFF_DATA_BATCH = 'SET_DIFF_DATA_BATCH'; export const SET_DIFF_FILES = 'SET_DIFF_FILES'; diff --git a/app/assets/javascripts/diffs/store/mutations.js b/app/assets/javascripts/diffs/store/mutations.js index 69ae3f705e3326c1ba543f6d4833132c43aacafa..90940d8222637f3dc477d40952f161fd9abb67c3 100644 --- a/app/assets/javascripts/diffs/store/mutations.js +++ b/app/assets/javascripts/diffs/store/mutations.js @@ -66,17 +66,10 @@ export default { updateDiffFilesInState(state, files); }, - [types.SET_DIFF_DATA](state, data) { - let files = state.diffFiles; - - if (window.location.search.indexOf('diff_id') !== -1 && data.diff_files) { - files = prepareDiffData(data, files); - } - + [types.SET_DIFF_METADATA](state, data) { Object.assign(state, { ...convertObjectPropsToCamelCase(data), }); - updateDiffFilesInState(state, files); }, [types.SET_DIFF_DATA_BATCH](state, data) { diff --git a/spec/frontend/diffs/store/actions_spec.js b/spec/frontend/diffs/store/actions_spec.js index cd79f9489260f5fd14f0ae4908be2d02ae77dd58..fef7676e7950f24b4ccb1c96c1dfdf3b43598fc1 100644 --- a/spec/frontend/diffs/store/actions_spec.js +++ b/spec/frontend/diffs/store/actions_spec.js @@ -249,7 +249,7 @@ describe('DiffsStoreActions', () => { { type: types.SET_LOADING, payload: true }, { type: types.SET_LOADING, payload: false }, { type: types.SET_MERGE_REQUEST_DIFFS, payload: diffMetadata.merge_request_diffs }, - { type: types.SET_DIFF_DATA, payload: noFilesData }, + { type: types.SET_DIFF_METADATA, payload: noFilesData }, ], [], () => { diff --git a/spec/frontend/diffs/store/mutations_spec.js b/spec/frontend/diffs/store/mutations_spec.js index c061c5c25906c5b281f0bacef005d0062bcd830e..13e7cad835dc0d9621eb4096dd39fe37dbc5df25 100644 --- a/spec/frontend/diffs/store/mutations_spec.js +++ b/spec/frontend/diffs/store/mutations_spec.js @@ -67,24 +67,24 @@ describe('DiffsStoreMutations', () => { }); }); - describe('SET_DIFF_DATA', () => { - it('should not modify the existing state', () => { + describe('SET_DIFF_METADATA', () => { + it('should overwrite state with the camelCased data that is passed in', () => { const state = { - diffFiles: [ - { - content_sha: diffFileMockData.content_sha, - file_hash: diffFileMockData.file_hash, - [INLINE_DIFF_LINES_KEY]: [], - }, - ], + diffFiles: [], }; const diffMock = { diff_files: [diffFileMockData], }; + const metaMock = { + other_key: 'value', + }; - mutations[types.SET_DIFF_DATA](state, diffMock); + mutations[types.SET_DIFF_METADATA](state, diffMock); + expect(state.diffFiles[0]).toEqual(diffFileMockData); - expect(state.diffFiles[0][INLINE_DIFF_LINES_KEY]).toEqual([]); + mutations[types.SET_DIFF_METADATA](state, metaMock); + expect(state.diffFiles[0]).toEqual(diffFileMockData); + expect(state.otherKey).toEqual('value'); }); });