Commit bc027c51 authored by Robert Speicher's avatar Robert Speicher

Load the Merge Request > Commits tab lazily

parent ce204006
...@@ -71,7 +71,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController ...@@ -71,7 +71,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController
end end
def commits def commits
render 'show' respond_to do |format|
format.html { render 'show' }
format.json { render json: { html: view_to_html_string('projects/merge_requests/show/_commits') } }
end
end end
def new def new
......
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
#notes.notes.tab-pane.voting_notes #notes.notes.tab-pane.voting_notes
= render "projects/merge_requests/discussion" = render "projects/merge_requests/discussion"
#commits.commits.tab-pane #commits.commits.tab-pane
- if current_page?(action: 'commits')
= render "projects/merge_requests/show/commits" = render "projects/merge_requests/show/commits"
#diffs.diffs.tab-pane #diffs.diffs.tab-pane
- if current_page?(action: 'diffs') - if current_page?(action: 'diffs')
...@@ -64,7 +65,6 @@ ...@@ -64,7 +65,6 @@
.mr-loading-status .mr-loading-status
= spinner = spinner
:javascript :javascript
var merge_request; var merge_request;
......
...@@ -79,8 +79,32 @@ describe Projects::MergeRequestsController do ...@@ -79,8 +79,32 @@ describe Projects::MergeRequestsController do
end end
end end
context '#diffs with forked projects with submodules' do describe 'GET diffs' do
def go(format: 'html')
get :diffs, namespace_id: project.namespace.to_param,
project_id: project.to_param, id: merge_request.iid, format: format
end
context 'as html' do
it 'renders the diff template' do
go
expect(response).to render_template('diffs')
end
end
context 'as json' do
it 'renders the diffs template to a string' do
go format: 'json'
expect(response).to render_template('projects/merge_requests/show/_diffs')
expect(JSON.parse(response.body)).to have_key('html')
end
end
context 'with forked projects with submodules' do
render_views render_views
let(:project) { create(:project) } let(:project) { create(:project) }
let(:fork_project) { create(:forked_project_with_submodules) } let(:fork_project) { create(:forked_project_with_submodules) }
let(:merge_request) { create(:merge_request_with_diffs, source_project: fork_project, source_branch: 'add-submodule-version-bump', target_branch: 'master', target_project: project) } let(:merge_request) { create(:merge_request_with_diffs, source_project: fork_project, source_branch: 'add-submodule-version-bump', target_branch: 'master', target_project: project) }
...@@ -91,11 +115,36 @@ describe Projects::MergeRequestsController do ...@@ -91,11 +115,36 @@ describe Projects::MergeRequestsController do
merge_request.reload merge_request.reload
end end
it '#diffs' do it 'renders' do
get(:diffs, namespace_id: project.namespace.to_param, go format: 'json'
project_id: project.to_param, id: merge_request.iid, format: 'json')
expect(response).to be_success expect(response).to be_success
expect(response.body).to have_content('Subproject commit') expect(response.body).to have_content('Subproject commit')
end end
end end
end
describe 'GET commits' do
def go(format: 'html')
get :commits, namespace_id: project.namespace.to_param,
project_id: project.to_param, id: merge_request.iid, format: format
end
context 'as html' do
it 'renders the show template' do
go
expect(response).to render_template('show')
end
end
context 'as json' do
it 'renders the commits template to a string' do
go format: 'json'
expect(response).to render_template('projects/merge_requests/show/_commits')
expect(JSON.parse(response.body)).to have_key('html')
end
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment