Add attached flag to pipeline entity

Add spec

Fix

Fix

Add changelog

Drop attached

Remove attached

Update changelog

ok
This commit is contained in:
Shinya Maeda 2019-03-07 14:33:13 +07:00
parent 69ed9ae4d4
commit 05c0377008
7 changed files with 51 additions and 11 deletions

View file

@ -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

View file

@ -0,0 +1,5 @@
---
title: Add merge request pipeline flag to pipeline entity
merge_request: 25846
author:
type: added

View file

@ -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'

View file

@ -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) }

View file

@ -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) }

View file

@ -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

View file

@ -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,