From 1d04ae7458bec082a2f82d0776f89e297719f23c Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 11 Apr 2019 09:54:20 +0100 Subject: Fixes Web IDE not loading merge request files Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/60243 --- .../ide/stores/mutations/merge_request.js | 3 +++ .../fixed-web-ide-merge-request-review.yml | 5 +++++ spec/features/ide/user_opens_merge_request_spec.rb | 21 +++++++++++++++++++++ .../ide/stores/mutations/merge_request_spec.js | 18 ++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 changelogs/unreleased/fixed-web-ide-merge-request-review.yml create mode 100644 spec/features/ide/user_opens_merge_request_spec.rb 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', () => { -- cgit v1.2.1