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,7 +56,8 @@ ...@@ -56,7 +56,8 @@
#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
= render "projects/merge_requests/show/commits" - if current_page?(action: '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')
= render "projects/merge_requests/show/diffs" = render "projects/merge_requests/show/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,23 +79,72 @@ describe Projects::MergeRequestsController do ...@@ -79,23 +79,72 @@ describe Projects::MergeRequestsController do
end end
end end
context '#diffs with forked projects with submodules' do describe 'GET diffs' do
render_views def go(format: 'html')
let(:project) { create(:project) } get :diffs, namespace_id: project.namespace.to_param,
let(:fork_project) { create(:forked_project_with_submodules) } project_id: project.to_param, id: merge_request.iid, format: format
let(:merge_request) { create(:merge_request_with_diffs, source_project: fork_project, source_branch: 'add-submodule-version-bump', target_branch: 'master', target_project: project) }
before do
fork_project.build_forked_project_link(forked_to_project_id: fork_project.id, forked_from_project_id: project.id)
fork_project.save
merge_request.reload
end end
it '#diffs' do context 'as html' do
get(:diffs, namespace_id: project.namespace.to_param, it 'renders the diff template' do
project_id: project.to_param, id: merge_request.iid, format: 'json') go
expect(response).to be_success
expect(response.body).to have_content('Subproject commit') 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
let(:project) { create(:project) }
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) }
before do
fork_project.build_forked_project_link(forked_to_project_id: fork_project.id, forked_from_project_id: project.id)
fork_project.save
merge_request.reload
end
it 'renders' do
go format: 'json'
expect(response).to be_success
expect(response.body).to have_content('Subproject commit')
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
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