diff options
author | Kushal Pandya <kushalspandya@gmail.com> | 2019-07-19 13:50:18 +0000 |
---|---|---|
committer | Kushal Pandya <kushalspandya@gmail.com> | 2019-07-19 13:50:18 +0000 |
commit | 4c30b0a1cf5ead26d20845b82ae528fcbdf98728 (patch) | |
tree | 3d2dd10cd509c1b6d411de90c382dd68b87976da | |
parent | 433022f1f52c1cd3701a4098dcacd0028ec8382b (diff) | |
parent | cd638abbbf86e3129112b4c4066c094061023118 (diff) | |
download | gitlab-ce-4c30b0a1cf5ead26d20845b82ae528fcbdf98728.tar.gz |
Merge branch '64784-re-name-regression' into 'master'
Fix regression in re-naming files
Closes #64784
See merge request gitlab-org/gitlab-ce!30941
-rw-r--r-- | app/assets/javascripts/ide/stores/mutations/file.js | 12 | ||||
-rw-r--r-- | spec/javascripts/ide/stores/mutations/file_spec.js | 37 |
2 files changed, 45 insertions, 4 deletions
diff --git a/app/assets/javascripts/ide/stores/mutations/file.js b/app/assets/javascripts/ide/stores/mutations/file.js index a52f1e235ed..1442ea7dbfa 100644 --- a/app/assets/javascripts/ide/stores/mutations/file.js +++ b/app/assets/javascripts/ide/stores/mutations/file.js @@ -43,10 +43,14 @@ export default { [stateEntry, stagedFile, openFile, changedFile].forEach(f => { if (f) { - Object.assign(f, convertObjectPropsToCamelCase(data, { dropKeys: ['raw', 'baseRaw'] }), { - raw: (stateEntry && stateEntry.raw) || null, - baseRaw: null, - }); + Object.assign( + f, + convertObjectPropsToCamelCase(data, { dropKeys: ['path', 'name', 'raw', 'baseRaw'] }), + { + raw: (stateEntry && stateEntry.raw) || null, + baseRaw: null, + }, + ); } }); }, diff --git a/spec/javascripts/ide/stores/mutations/file_spec.js b/spec/javascripts/ide/stores/mutations/file_spec.js index 7714f66c9a4..1b41c3c2548 100644 --- a/spec/javascripts/ide/stores/mutations/file_spec.js +++ b/spec/javascripts/ide/stores/mutations/file_spec.js @@ -103,6 +103,43 @@ describe('IDE store file mutations', () => { expect(localState.openFiles[0].rawPath).toEqual(rawPath); expect(localFile.rawPath).toEqual(rawPath); }); + + it('does not mutate certain props on the file', () => { + const path = 'New Path'; + const name = 'New Name'; + localFile.path = path; + localFile.name = name; + + localState.stagedFiles = [localFile]; + localState.changedFiles = [localFile]; + localState.openFiles = [localFile]; + + mutations.SET_FILE_DATA(localState, { + data: { + path: 'Old Path', + name: 'Old Name', + raw: 'Old Raw', + base_raw: 'Old Base Raw', + }, + file: localFile, + }); + + [ + localState.stagedFiles[0], + localState.changedFiles[0], + localState.openFiles[0], + localFile, + ].forEach(f => { + expect(f).toEqual( + jasmine.objectContaining({ + path, + name, + raw: null, + baseRaw: null, + }), + ); + }); + }); }); describe('SET_FILE_RAW_DATA', () => { |