summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKushal Pandya <kushalspandya@gmail.com>2019-04-11 10:17:39 +0000
committerKushal Pandya <kushalspandya@gmail.com>2019-04-11 10:17:39 +0000
commit423f82d41125ef2a6bfafb0d963dafd52ba656db (patch)
tree2d14c9153f1b06d16f37c427c511f2906ed8c1ef
parent51119395e668d592d69266cf74dcb67b667082a8 (diff)
parent1d04ae7458bec082a2f82d0776f89e297719f23c (diff)
downloadgitlab-ce-423f82d41125ef2a6bfafb0d963dafd52ba656db.tar.gz
Merge branch 'fixed-web-ide-merge-request-review' into 'master'
Fixes Web IDE not loading merge request files Closes #60243 See merge request gitlab-org/gitlab-ce!27225
-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', () => {