diff options
author | Phil Hughes <me@iamphill.com> | 2019-04-11 09:54:20 +0100 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2019-04-11 09:54:20 +0100 |
commit | 1d04ae7458bec082a2f82d0776f89e297719f23c (patch) | |
tree | 97d873cf0e6a244a8f1bf7cbc24a06b3b72dc43f | |
parent | 6a2e10e38ba87678b6b44fa73786eb1f4a668a4e (diff) | |
download | gitlab-ce-1d04ae7458bec082a2f82d0776f89e297719f23c.tar.gz |
Fixes Web IDE not loading merge request files
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/60243
4 files changed, 47 insertions, 0 deletions
diff --git a/app/assets/javascripts/ide/stores/mutations/merge_request.js b/app/assets/javascripts/ide/stores/mutations/merge_request.js index 334819fe702..e5b5107bc93 100644 --- a/app/assets/javascripts/ide/stores/mutations/merge_request.js +++ b/app/assets/javascripts/ide/stores/mutations/merge_request.js @@ -7,6 +7,8 @@ export default { }); }, [types.SET_MERGE_REQUEST](state, { projectPath, mergeRequestId, mergeRequest }) { + const existingMergeRequest = state.projects[projectPath].mergeRequests[mergeRequestId] || {}; + Object.assign(state.projects[projectPath], { mergeRequests: { [mergeRequestId]: { @@ -15,6 +17,7 @@ export default { changes: [], versions: [], baseCommitSha: null, + ...existingMergeRequest, }, }, }); diff --git a/changelogs/unreleased/fixed-web-ide-merge-request-review.yml b/changelogs/unreleased/fixed-web-ide-merge-request-review.yml new file mode 100644 index 00000000000..2799f5ee38a --- /dev/null +++ b/changelogs/unreleased/fixed-web-ide-merge-request-review.yml @@ -0,0 +1,5 @@ +--- +title: Fixed Web IDE not loading merge request files +merge_request: +author: +type: fixed diff --git a/spec/features/ide/user_opens_merge_request_spec.rb b/spec/features/ide/user_opens_merge_request_spec.rb new file mode 100644 index 00000000000..185349219a7 --- /dev/null +++ b/spec/features/ide/user_opens_merge_request_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper' + +describe 'IDE merge request', :js do + let(:merge_request) { create(:merge_request, :with_diffs, :simple, source_project: project) } + let(:project) { create(:project, :public, :repository) } + let(:user) { project.owner } + + before do + sign_in(user) + + visit(merge_request_path(merge_request)) + end + + it 'user opens merge request' do + click_link 'Open in Web IDE' + + wait_for_requests + + expect(page).to have_selector('.monaco-diff-editor') + end +end diff --git a/spec/frontend/ide/stores/mutations/merge_request_spec.js b/spec/frontend/ide/stores/mutations/merge_request_spec.js index e30ca22022f..afbe6770c0d 100644 --- a/spec/frontend/ide/stores/mutations/merge_request_spec.js +++ b/spec/frontend/ide/stores/mutations/merge_request_spec.js @@ -32,6 +32,24 @@ describe('IDE store merge request mutations', () => { expect(newMr.title).toBe('mr'); expect(newMr.active).toBeTruthy(); }); + + it('keeps original data', () => { + const versions = ['change']; + const mergeRequest = localState.projects.abcproject.mergeRequests[1]; + + mergeRequest.versions = versions; + + mutations.SET_MERGE_REQUEST(localState, { + projectPath: 'abcproject', + mergeRequestId: 1, + mergeRequest: { + title: ['change'], + }, + }); + + expect(mergeRequest.title).toBe('mr'); + expect(mergeRequest.versions).toEqual(versions); + }); }); describe('SET_MERGE_REQUEST_CHANGES', () => { |