Unify build policy tests and pipeline policy tests

This commit is contained in:
Lin Jen-Shin 2017-07-18 22:04:22 +08:00
parent 679789ee93
commit a27cf281b1
2 changed files with 32 additions and 13 deletions

View file

@ -96,7 +96,7 @@ describe Ci::BuildPolicy, :models do
end end
end end
describe 'rules for protected branch' do describe 'rules for protected ref' do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:build) { create(:ci_build, ref: 'some-ref', pipeline: pipeline) } let(:build) { create(:ci_build, ref: 'some-ref', pipeline: pipeline) }
@ -107,7 +107,7 @@ describe Ci::BuildPolicy, :models do
context 'when no one can push or merge to the branch' do context 'when no one can push or merge to the branch' do
before do before do
create(:protected_branch, :no_one_can_push, create(:protected_branch, :no_one_can_push,
name: 'some-ref', project: project) name: build.ref, project: project)
end end
it 'does not include ability to update build' do it 'does not include ability to update build' do
@ -118,7 +118,7 @@ describe Ci::BuildPolicy, :models do
context 'when developers can push to the branch' do context 'when developers can push to the branch' do
before do before do
create(:protected_branch, :developers_can_merge, create(:protected_branch, :developers_can_merge,
name: 'some-ref', project: project) name: build.ref, project: project)
end end
it 'includes ability to update build' do it 'includes ability to update build' do
@ -129,7 +129,7 @@ describe Ci::BuildPolicy, :models do
context 'when no one can create the tag' do context 'when no one can create the tag' do
before do before do
create(:protected_tag, :no_one_can_create, create(:protected_tag, :no_one_can_create,
name: 'some-ref', project: project) name: build.ref, project: project)
build.update(tag: true) build.update(tag: true)
end end
@ -142,7 +142,7 @@ describe Ci::BuildPolicy, :models do
context 'when no one can create the tag but it is not a tag' do context 'when no one can create the tag but it is not a tag' do
before do before do
create(:protected_tag, :no_one_can_create, create(:protected_tag, :no_one_can_create,
name: 'some-ref', project: project) name: build.ref, project: project)
end end
it 'includes ability to update build' do it 'includes ability to update build' do

View file

@ -9,18 +9,18 @@ describe Ci::PipelinePolicy, :models do
end end
describe 'rules' do describe 'rules' do
describe 'rules for protected branch' do describe 'rules for protected ref' do
let(:project) { create(:project) } let(:project) { create(:project) }
before do before do
project.add_developer(user) project.add_developer(user)
create(:protected_branch, branch_policy,
name: pipeline.ref, project: project)
end end
context 'when no one can push or merge to the branch' do context 'when no one can push or merge to the branch' do
let(:branch_policy) { :no_one_can_push } before do
create(:protected_branch, :no_one_can_push,
name: pipeline.ref, project: project)
end
it 'does not include ability to update pipeline' do it 'does not include ability to update pipeline' do
expect(policy).to be_disallowed :update_pipeline expect(policy).to be_disallowed :update_pipeline
@ -28,15 +28,34 @@ describe Ci::PipelinePolicy, :models do
end end
context 'when developers can push to the branch' do context 'when developers can push to the branch' do
let(:branch_policy) { :developers_can_push } before do
create(:protected_branch, :developers_can_merge,
name: pipeline.ref, project: project)
end
it 'includes ability to update pipeline' do it 'includes ability to update pipeline' do
expect(policy).to be_allowed :update_pipeline expect(policy).to be_allowed :update_pipeline
end end
end end
context 'when developers can push to the branch' do context 'when no one can create the tag' do
let(:branch_policy) { :developers_can_merge } before do
create(:protected_tag, :no_one_can_create,
name: pipeline.ref, project: project)
pipeline.update(tag: true)
end
it 'does not include ability to update pipeline' do
expect(policy).to be_disallowed :update_pipeline
end
end
context 'when no one can create the tag but it is not a tag' do
before do
create(:protected_tag, :no_one_can_create,
name: pipeline.ref, project: project)
end
it 'includes ability to update pipeline' do it 'includes ability to update pipeline' do
expect(policy).to be_allowed :update_pipeline expect(policy).to be_allowed :update_pipeline