| ... | @@ -598,13 +598,103 @@ describe Projects::MergeRequestsController do |
... | @@ -598,13 +598,103 @@ describe Projects::MergeRequestsController do |
|
|
format: :json
|
|
format: :json
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
context 'with "enabled" builds on a public project' do
|
|
|
|
let(:project) { create(:project, :repository, :public) }
|
|
|
|
|
|
|
|
context 'for a project owner' do
|
|
|
|
it 'responds with serialized pipelines' do
|
|
|
|
expect(json_response['pipelines']).to be_present
|
|
|
|
expect(json_response['count']['all']).to eq(1)
|
|
|
|
expect(response).to include_pagination_headers
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'for an unassociated user' do
|
|
|
|
let(:user) { create :user }
|
|
|
|
|
|
|
|
it 'responds with no pipelines' do
|
|
|
|
expect(json_response['pipelines']).to be_present
|
|
|
|
expect(json_response['count']['all']).to eq(1)
|
|
|
|
expect(response).to include_pagination_headers
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'with private builds on a public project' do
|
|
|
|
let(:project) { create(:project, :repository, :public, :builds_private) }
|
|
|
|
|
|
|
|
context 'for a project owner' do
|
|
|
it 'responds with serialized pipelines' do
|
|
it 'responds with serialized pipelines' do
|
|
|
expect(json_response['pipelines']).not_to be_empty
|
|
expect(json_response['pipelines']).to be_present
|
|
|
expect(json_response['count']['all']).to eq 1
|
|
expect(json_response['count']['all']).to eq(1)
|
|
|
|
expect(response).to include_pagination_headers
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'for an unassociated user' do
|
|
|
|
let(:user) { create :user }
|
|
|
|
|
|
|
|
it 'responds with no pipelines' do
|
|
|
|
expect(json_response['pipelines']).to be_empty
|
|
|
|
expect(json_response['count']['all']).to eq(0)
|
|
|
expect(response).to include_pagination_headers
|
|
expect(response).to include_pagination_headers
|
|
|
end
|
|
end
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
context 'from a project fork' do
|
|
|
|
let(:fork_user) { create :user }
|
|
|
|
let(:forked_project) { fork_project(project, fork_user, repository: true) } # Forked project carries over :builds_private
|
|
|
|
let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: forked_project) }
|
|
|
|
|
|
|
|
context 'with private builds' do
|
|
|
|
context 'for the target project member' do
|
|
|
|
it 'does not respond with serialized pipelines' do
|
|
|
|
expect(json_response['pipelines']).to be_empty
|
|
|
|
expect(json_response['count']['all']).to eq(0)
|
|
|
|
expect(response).to include_pagination_headers
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'for the source project member' do
|
|
|
|
let(:user) { fork_user }
|
|
|
|
|
|
|
|
it 'responds with serialized pipelines' do
|
|
|
|
expect(json_response['pipelines']).to be_present
|
|
|
|
expect(json_response['count']['all']).to eq(1)
|
|
|
|
expect(response).to include_pagination_headers
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'with public builds' do
|
|
|
|
let(:forked_project) do
|
|
|
|
fork_project(project, fork_user, repository: true).tap do |new_project|
|
|
|
|
new_project.project_feature.update(builds_access_level: ProjectFeature::ENABLED)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'for the target project member' do
|
|
|
|
it 'does not respond with serialized pipelines' do
|
|
|
|
expect(json_response['pipelines']).to be_present
|
|
|
|
expect(json_response['count']['all']).to eq(1)
|
|
|
|
expect(response).to include_pagination_headers
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'for the source project member' do
|
|
|
|
let(:user) { fork_user }
|
|
|
|
|
|
|
|
it 'responds with serialized pipelines' do
|
|
|
|
expect(json_response['pipelines']).to be_present
|
|
|
|
expect(json_response['count']['all']).to eq(1)
|
|
|
|
expect(response).to include_pagination_headers
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
describe 'GET test_reports' do
|
|
describe 'GET test_reports' do
|
|
|
subject do
|
|
subject do
|
|
|
get :test_reports,
|
|
get :test_reports,
|
| ... | |
... | |
| ... | | ... | |