summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2019-04-11 09:54:20 +0100
committerPhil Hughes <me@iamphill.com>2019-04-11 09:54:20 +0100
commit1d04ae7458bec082a2f82d0776f89e297719f23c (patch)
tree97d873cf0e6a244a8f1bf7cbc24a06b3b72dc43f
parent6a2e10e38ba87678b6b44fa73786eb1f4a668a4e (diff)
downloadgitlab-ce-1d04ae7458bec082a2f82d0776f89e297719f23c.tar.gz
Fixes Web IDE not loading merge request files
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/60243
-rw-r--r--app/assets/javascripts/ide/stores/mutations/merge_request.js3
-rw-r--r--changelogs/unreleased/fixed-web-ide-merge-request-review.yml5
-rw-r--r--spec/features/ide/user_opens_merge_request_spec.rb21
-rw-r--r--spec/frontend/ide/stores/mutations/merge_request_spec.js18
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', () => {