Load the Merge Request > Commits tab lazily
This commit is contained in:
parent
ce20400628
commit
bc027c5183
|
@ -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 @@
|
||||||
#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 @@
|
||||||
.mr-loading-status
|
.mr-loading-status
|
||||||
= spinner
|
= spinner
|
||||||
|
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
var merge_request;
|
var merge_request;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue