Commit 0f04d4b2 authored by Kamil Trzciński's avatar Kamil Trzciński

Merge branch 'fix-pipeline-entity' into 'master'

Add merge request pipeline flag to pipeline entity

See merge request gitlab-org/gitlab-ce!25846
parents 3bc8a2fe 05c03770
......@@ -28,7 +28,8 @@ class PipelineEntity < Grape::Entity
expose :can_retry?, as: :retryable
expose :can_cancel?, as: :cancelable
expose :failure_reason?, as: :failure_reason
expose :detached_merge_request_pipeline?, as: :detached
expose :detached_merge_request_pipeline?, as: :detached_merge_request_pipeline
expose :merge_request_pipeline?, as: :merge_request_pipeline
end
expose :details do
......
---
title: Add merge request pipeline flag to pipeline entity
merge_request: 25846
author:
type: added
......@@ -101,17 +101,36 @@ FactoryBot.define do
end
end
trait :with_merge_request_pipeline do
trait :with_detached_merge_request_pipeline do
after(:build) do |merge_request|
merge_request.merge_request_pipelines << build(:ci_pipeline,
source: :merge_request_event,
merge_request: merge_request,
project: merge_request.source_project,
ref: merge_request.source_branch,
ref: merge_request.ref_path,
sha: merge_request.source_branch_sha)
end
end
trait :with_merge_request_pipeline do
transient do
merge_sha { 'test-merge-sha' }
source_sha { source_branch_sha }
target_sha { target_branch_sha }
end
after(:build) do |merge_request, evaluator|
merge_request.merge_request_pipelines << create(:ci_pipeline,
source: :merge_request_event,
merge_request: merge_request,
project: merge_request.source_project,
ref: merge_request.merge_ref_path,
sha: evaluator.merge_sha,
source_sha: evaluator.source_sha,
target_sha: evaluator.target_sha)
end
end
trait :deployed_review_app do
target_branch 'pages-deploy-target'
......
......@@ -2772,7 +2772,7 @@ describe Ci::Build do
end
context 'when ref is merge request' do
let(:merge_request) { create(:merge_request, :with_merge_request_pipeline) }
let(:merge_request) { create(:merge_request, :with_detached_merge_request_pipeline) }
let(:pipeline) { merge_request.merge_request_pipelines.first }
let(:build) { create(:ci_build, ref: merge_request.source_branch, tag: false, pipeline: pipeline, project: project) }
......@@ -2830,7 +2830,7 @@ describe Ci::Build do
end
context 'when ref is merge request' do
let(:merge_request) { create(:merge_request, :with_merge_request_pipeline) }
let(:merge_request) { create(:merge_request, :with_detached_merge_request_pipeline) }
let(:pipeline) { merge_request.merge_request_pipelines.first }
let(:build) { create(:ci_build, ref: merge_request.source_branch, tag: false, pipeline: pipeline, project: project) }
......
......@@ -18,7 +18,7 @@ describe HasRef do
end
context 'when it was triggered by merge request' do
let(:merge_request) { create(:merge_request, :with_merge_request_pipeline) }
let(:merge_request) { create(:merge_request, :with_detached_merge_request_pipeline) }
let(:pipeline) { merge_request.merge_request_pipelines.first }
let(:build) { create(:ci_build, pipeline: pipeline) }
......@@ -67,7 +67,7 @@ describe HasRef do
end
context 'when it is triggered by a merge request' do
let(:merge_request) { create(:merge_request, :with_merge_request_pipeline) }
let(:merge_request) { create(:merge_request, :with_detached_merge_request_pipeline) }
let(:pipeline) { merge_request.merge_request_pipelines.first }
let(:build) { create(:ci_build, tag: false, pipeline: pipeline) }
......
......@@ -3,6 +3,7 @@ require 'spec_helper'
describe PipelineEntity do
include Gitlab::Routing
set(:project) { create(:project) }
set(:user) { create(:user) }
set(:project) { create(:project) }
let(:request) { double('request') }
......@@ -134,12 +135,12 @@ describe PipelineEntity do
end
context 'when pipeline is detached merge request pipeline' do
let(:merge_request) { create(:merge_request, :with_merge_request_pipeline) }
let(:merge_request) { create(:merge_request, :with_detached_merge_request_pipeline) }
let(:project) { merge_request.target_project }
let(:pipeline) { merge_request.merge_request_pipelines.first }
it 'makes detached flag true' do
expect(subject[:flags][:detached]).to be_truthy
expect(subject[:flags][:detached_merge_request_pipeline]).to be_truthy
end
context 'when user is a developer' do
......@@ -175,5 +176,19 @@ describe PipelineEntity do
end
end
end
context 'when pipeline is merge request pipeline' do
let(:merge_request) { create(:merge_request, :with_merge_request_pipeline, merge_sha: 'abc') }
let(:project) { merge_request.target_project }
let(:pipeline) { merge_request.merge_request_pipelines.first }
it 'makes detached flag false' do
expect(subject[:flags][:detached_merge_request_pipeline]).to be_falsy
end
it 'makes atached flag true' do
expect(subject[:flags][:merge_request_pipeline]).to be_truthy
end
end
end
end
......@@ -102,7 +102,7 @@ describe PipelineSerializer do
let!(:merge_request_1) do
create(:merge_request,
:with_merge_request_pipeline,
:with_detached_merge_request_pipeline,
target_project: project,
target_branch: 'master',
source_project: project,
......@@ -111,7 +111,7 @@ describe PipelineSerializer do
let!(:merge_request_2) do
create(:merge_request,
:with_merge_request_pipeline,
:with_detached_merge_request_pipeline,
target_project: project,
target_branch: 'master',
source_project: project,
......
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