summaryrefslogtreecommitdiff
path: root/spec/models/ci/processable_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-12 06:09:05 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-12 06:09:05 +0000
commit8c9dc985b90c353b33cb829caf51f8320171bc15 (patch)
tree9a68886dbea1aefabddb46bbd3faf961eab22ae6 /spec/models/ci/processable_spec.rb
parent500626a5c953ad81cfc3ed74bf0148c075617e58 (diff)
downloadgitlab-ce-8c9dc985b90c353b33cb829caf51f8320171bc15.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/models/ci/processable_spec.rb')
-rw-r--r--spec/models/ci/processable_spec.rb68
1 files changed, 68 insertions, 0 deletions
diff --git a/spec/models/ci/processable_spec.rb b/spec/models/ci/processable_spec.rb
index 87dbcbf870e..370606a73bc 100644
--- a/spec/models/ci/processable_spec.rb
+++ b/spec/models/ci/processable_spec.rb
@@ -52,4 +52,72 @@ describe Ci::Processable do
end
end
end
+
+ describe 'validate presence of scheduling_type' do
+ context 'on create' do
+ let(:processable) do
+ build(
+ :ci_build, :created, project: project, pipeline: pipeline,
+ importing: importing, scheduling_type: nil
+ )
+ end
+
+ context 'when importing' do
+ let(:importing) { true }
+
+ context 'when validate_scheduling_type_of_processables is true' do
+ before do
+ stub_feature_flags(validate_scheduling_type_of_processables: true)
+ end
+
+ it 'does not validate' do
+ expect(processable).to be_valid
+ end
+ end
+
+ context 'when validate_scheduling_type_of_processables is false' do
+ before do
+ stub_feature_flags(validate_scheduling_type_of_processables: false)
+ end
+
+ it 'does not validate' do
+ expect(processable).to be_valid
+ end
+ end
+ end
+
+ context 'when not importing' do
+ let(:importing) { false }
+
+ context 'when validate_scheduling_type_of_processables is true' do
+ before do
+ stub_feature_flags(validate_scheduling_type_of_processables: true)
+ end
+
+ it 'validates' do
+ expect(processable).not_to be_valid
+ end
+ end
+
+ context 'when validate_scheduling_type_of_processables is false' do
+ before do
+ stub_feature_flags(validate_scheduling_type_of_processables: false)
+ end
+
+ it 'does not validate' do
+ expect(processable).to be_valid
+ end
+ end
+ end
+ end
+
+ context 'on update' do
+ let(:processable) { create(:ci_build, :created, project: project, pipeline: pipeline) }
+
+ it 'does not validate' do
+ processable.scheduling_type = nil
+ expect(processable).to be_valid
+ end
+ end
+ end
end