From 47a0276e53de4635df43124607ac1a101d6f1b70 Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Tue, 23 May 2017 17:10:07 +0200 Subject: Initial implementation for real time job view Added the needed keys and paths to a new entity, BuildDetailsEntity. Not renaming BuildEntity to BuildBasicEntity on explicit request. Most code now has test coverage, but not all. This will be added on later commits on this branch. Resolves gitlab-org/gitlab-ce#31397 --- spec/controllers/projects/jobs_controller_spec.rb | 44 +++++++++++++++++------ 1 file changed, 33 insertions(+), 11 deletions(-) (limited to 'spec/controllers') diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb index 838bdae1445..7109310b6df 100644 --- a/spec/controllers/projects/jobs_controller_spec.rb +++ b/spec/controllers/projects/jobs_controller_spec.rb @@ -101,26 +101,48 @@ describe Projects::JobsController do end describe 'GET show' do - context 'when build exists' do - let!(:build) { create(:ci_build, pipeline: pipeline) } + let!(:build) { create(:ci_build, :failed, pipeline: pipeline) } - before do - get_show(id: build.id) + context 'when requesting HTML' do + context 'when build exists' do + before do + get_show(id: build.id) + end + + it 'has a build' do + expect(response).to have_http_status(:ok) + expect(assigns(:build).id).to eq(build.id) + end end - it 'has a build' do - expect(response).to have_http_status(:ok) - expect(assigns(:build).id).to eq(build.id) + context 'when build does not exist' do + before do + get_show(id: 1234) + end + + it 'renders not_found' do + expect(response).to have_http_status(:not_found) + end end end - context 'when build does not exist' do + context 'when requesting JSON' do + let(:merge_request) { create(:merge_request, source_project: project) } + before do - get_show(id: 1234) + project.add_developer(user) + sign_in(user) + + allow_any_instance_of(Ci::Build).to receive(:merge_request).and_return(merge_request) + + get_show(id: build.id, format: :json) end - it 'renders not_found' do - expect(response).to have_http_status(:not_found) + it 'exposes needed information' do + expect(response).to have_http_status(:ok) + expect(json_response['new_issue_path']).to end_with('/issues/new') + expect(json_response['raw_path']).to match(/builds\/\d+\/raw\z/) + expect(json_response['merge_request_path']).to match(/merge_requests\/\d+\z/) end end -- cgit v1.2.1 From 8a9a62e3294d92f4e70be6f427c17241a2b7a232 Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Mon, 29 May 2017 09:58:20 +0200 Subject: Incorporate review --- spec/controllers/projects/jobs_controller_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec/controllers') diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb index 7109310b6df..e3d8b95fe1b 100644 --- a/spec/controllers/projects/jobs_controller_spec.rb +++ b/spec/controllers/projects/jobs_controller_spec.rb @@ -142,7 +142,7 @@ describe Projects::JobsController do expect(response).to have_http_status(:ok) expect(json_response['new_issue_path']).to end_with('/issues/new') expect(json_response['raw_path']).to match(/builds\/\d+\/raw\z/) - expect(json_response['merge_request_path']).to match(/merge_requests\/\d+\z/) + expect(json_response.dig('merge_request', 'path')).to match(/merge_requests\/\d+\z/) end end -- cgit v1.2.1 From b24651826f249cd1fcbd87d097c42488d0472611 Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Thu, 1 Jun 2017 21:34:44 +0200 Subject: Add user to BuildDetailsEntity Also add minor changed needed to pass review --- spec/controllers/projects/jobs_controller_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'spec/controllers') diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb index e3d8b95fe1b..068c4ddf820 100644 --- a/spec/controllers/projects/jobs_controller_spec.rb +++ b/spec/controllers/projects/jobs_controller_spec.rb @@ -140,9 +140,10 @@ describe Projects::JobsController do it 'exposes needed information' do expect(response).to have_http_status(:ok) - expect(json_response['new_issue_path']).to end_with('/issues/new') expect(json_response['raw_path']).to match(/builds\/\d+\/raw\z/) expect(json_response.dig('merge_request', 'path')).to match(/merge_requests\/\d+\z/) + expect(json_response['build_failed_options']['new_issue_path']) + .to end_with('/issues/new') end end -- cgit v1.2.1 From a29ba51eeac6c7281b2fe81e655be946842045c0 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 2 Jun 2017 20:32:37 +0200 Subject: Fix test failures --- spec/controllers/projects/jobs_controller_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'spec/controllers') diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb index 068c4ddf820..7211acc53dc 100644 --- a/spec/controllers/projects/jobs_controller_spec.rb +++ b/spec/controllers/projects/jobs_controller_spec.rb @@ -142,8 +142,8 @@ describe Projects::JobsController do expect(response).to have_http_status(:ok) expect(json_response['raw_path']).to match(/builds\/\d+\/raw\z/) expect(json_response.dig('merge_request', 'path')).to match(/merge_requests\/\d+\z/) - expect(json_response['build_failed_options']['new_issue_path']) - .to end_with('/issues/new') + expect(json_response['new_issue_path']) + .to include('/issues/new') end end -- cgit v1.2.1