Skip to content
Snippets Groups Projects
Commit b2465182 authored by Z.J. van de Weg's avatar Z.J. van de Weg
Browse files

Add user to BuildDetailsEntity

Also add minor changed needed to pass review
parent 6c872396
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -2,6 +2,8 @@ class BuildDetailsEntity < BuildEntity
expose :coverage, :erased_at, :duration
expose :tag_list, as: :tags
 
expose :user, using: UserEntity
expose :erased_by, if: -> (*) { build.erased? }, using: UserEntity
expose :erase_path, if: -> (*) { build.erasable? && can?(current_user, :update_build, project) } do |build|
erase_namespace_project_job_path(project.namespace, project, build)
Loading
Loading
@@ -11,7 +13,7 @@ class BuildDetailsEntity < BuildEntity
expose :runner, using: RunnerEntity
expose :pipeline, using: PipelineEntity
 
expose :merge_request, if: -> (*) { can?(current_user, :read_merge_request, project) } do
expose :merge_request, if: -> (*) { can?(current_user, :read_merge_request, build.merge_request) } do
expose :iid do |build|
build.merge_request.iid
end
Loading
Loading
@@ -21,8 +23,10 @@ class BuildDetailsEntity < BuildEntity
end
end
 
expose :new_issue_path, if: -> (*) { can?(request.current_user, :create_issue, project) } do |build|
new_namespace_project_issue_path(project.namespace, project)
expose :build_failed_options do
expose :new_issue_path, if: -> (*) { can?(request.current_user, :create_issue, project) } do |build|
new_namespace_project_issue_path(project.namespace, project)
end
end
 
expose :raw_path do |build|
Loading
Loading
Loading
Loading
@@ -8,8 +8,10 @@ class BuildEntity < Grape::Entity
path_to(:namespace_project_job, build)
end
 
expose :retry_path do |build|
path_to(:retry_namespace_project_job, build)
expose :build_failed_options, if: -> (*) { build.retryable? } do
expose :retry_path do |build|
path_to(:retry_namespace_project_job, build)
end
end
 
expose :play_path, if: -> (*) { playable? } do |build|
Loading
Loading
Loading
Loading
@@ -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
 
Loading
Loading
Loading
Loading
@@ -30,7 +30,8 @@ describe BuildDetailsEntity do
it 'contains the needed key value pairs' do
expect(subject).to include(:coverage, :erased_at, :duration)
expect(subject).to include(:artifacts, :runner, :pipeline)
expect(subject).to include(:raw_path, :merge_request, :new_issue_path)
expect(subject).to include(:raw_path, :merge_request)
expect(subject[:build_failed_options]).to include(:new_issue_path)
end
 
it 'exposes details of the merge request' do
Loading
Loading
Loading
Loading
@@ -2,7 +2,7 @@ require 'spec_helper'
 
describe BuildEntity do
let(:user) { create(:user) }
let(:build) { create(:ci_build) }
let(:build) { create(:ci_build, :failed) }
let(:project) { build.project }
let(:request) { double('request') }
 
Loading
Loading
@@ -17,7 +17,8 @@ describe BuildEntity do
subject { entity.as_json }
 
it 'contains paths to build page and retry action' do
expect(subject).to include(:build_path, :retry_path)
expect(subject).to include(:build_path, :build_failed_options)
expect(subject.dig(:build_failed_options, :retry_path)).not_to be_nil
end
 
it 'does not contain sensitive information' do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment