diff options
-rw-r--r-- | app/assets/javascripts/repo/stores/actions/file.js | 2 | ||||
-rw-r--r-- | spec/javascripts/repo/stores/actions/file_spec.js | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/app/assets/javascripts/repo/stores/actions/file.js b/app/assets/javascripts/repo/stores/actions/file.js index ab59648cfaf..3fbbad1f0b8 100644 --- a/app/assets/javascripts/repo/stores/actions/file.js +++ b/app/assets/javascripts/repo/stores/actions/file.js @@ -92,7 +92,7 @@ export const discardFileChanges = ({ state, commit }, file) => { commit(types.DISCARD_FILE_CHANGES, file); commit(types.REMOVE_FILE_FROM_CHANGED, file); - if (file.tempFile) { + if (file.tempFile && file.opened) { commit(types.TOGGLE_FILE_OPEN, file); } }; diff --git a/spec/javascripts/repo/stores/actions/file_spec.js b/spec/javascripts/repo/stores/actions/file_spec.js index 732945bbfb6..21ec04edb18 100644 --- a/spec/javascripts/repo/stores/actions/file_spec.js +++ b/spec/javascripts/repo/stores/actions/file_spec.js @@ -381,6 +381,20 @@ describe('Multi-file store file actions', () => { }) .catch(done.fail); }); + + it('does not re-open a closed temp file', (done) => { + tmpFile.tempFile = true; + + expect(tmpFile.opened).toBeFalsy(); + + store.dispatch('discardFileChanges', tmpFile) + .then(() => { + expect(tmpFile.opened).toBeFalsy(); + + done(); + }) + .catch(done.fail); + }); }); describe('createTempFile', () => { |