diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-24 12:10:45 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-24 12:10:45 +0300 |
commit | 38d4874ab934aa8ebc004b923cabcc981c0f3e7f (patch) | |
tree | f15372d4261d6207e585921dadfb8c05819ce2e8 /spec/models | |
parent | 505cb2114df4f12f0fd69a0e04fb8d498e5e216e (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/ci/build_spec.rb | 24 | ||||
-rw-r--r-- | spec/models/concerns/featurable_spec.rb | 5 | ||||
-rw-r--r-- | spec/models/project_feature_spec.rb | 17 |
3 files changed, 29 insertions, 17 deletions
diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index 290dc7df430..41aec6773cb 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -1307,7 +1307,9 @@ RSpec.describe Ci::Build do shared_examples_for 'avoid deadlock' do it 'executes UPDATE in the right order' do - recorded = ActiveRecord::QueryRecorder.new { subject } + recorded = with_cross_database_modification_prevented do + ActiveRecord::QueryRecorder.new { subject } + end index_for_build = recorded.log.index { |l| l.include?("UPDATE \"ci_builds\"") } index_for_deployment = recorded.log.index { |l| l.include?("UPDATE \"deployments\"") } @@ -1322,7 +1324,9 @@ RSpec.describe Ci::Build do it_behaves_like 'avoid deadlock' it 'transits deployment status to running' do - subject + with_cross_database_modification_prevented do + subject + end expect(deployment).to be_running end @@ -1340,7 +1344,9 @@ RSpec.describe Ci::Build do it_behaves_like 'calling proper BuildFinishedWorker' it 'transits deployment status to success' do - subject + with_cross_database_modification_prevented do + subject + end expect(deployment).to be_success end @@ -1353,7 +1359,9 @@ RSpec.describe Ci::Build do it_behaves_like 'calling proper BuildFinishedWorker' it 'transits deployment status to failed' do - subject + with_cross_database_modification_prevented do + subject + end expect(deployment).to be_failed end @@ -1365,7 +1373,9 @@ RSpec.describe Ci::Build do it_behaves_like 'avoid deadlock' it 'transits deployment status to skipped' do - subject + with_cross_database_modification_prevented do + subject + end expect(deployment).to be_skipped end @@ -1378,7 +1388,9 @@ RSpec.describe Ci::Build do it_behaves_like 'calling proper BuildFinishedWorker' it 'transits deployment status to canceled' do - subject + with_cross_database_modification_prevented do + subject + end expect(deployment).to be_canceled end diff --git a/spec/models/concerns/featurable_spec.rb b/spec/models/concerns/featurable_spec.rb index 295f3523dd5..453b6f7f29a 100644 --- a/spec/models/concerns/featurable_spec.rb +++ b/spec/models/concerns/featurable_spec.rb @@ -30,8 +30,11 @@ RSpec.describe Featurable do describe '.set_available_features' do let!(:klass) do - Class.new do + Class.new(ApplicationRecord) do include Featurable + + self.table_name = 'project_features' + set_available_features %i(feature1 feature2) def feature1_access_level diff --git a/spec/models/project_feature_spec.rb b/spec/models/project_feature_spec.rb index 5f720f8c4f8..75e43ed9a67 100644 --- a/spec/models/project_feature_spec.rb +++ b/spec/models/project_feature_spec.rb @@ -41,18 +41,15 @@ RSpec.describe ProjectFeature do end end - context 'public features' do - features = ProjectFeature::FEATURES - %i(pages) + it_behaves_like 'access level validation', ProjectFeature::FEATURES - %i(pages) do + let(:container_features) { project.project_feature } + end - features.each do |feature| - it "does not allow public access level for #{feature}" do - project_feature = project.project_feature - field = "#{feature}_access_level".to_sym - project_feature.update_attribute(field, ProjectFeature::PUBLIC) + it 'allows public access level for :pages feature' do + project_feature = project.project_feature + project_feature.pages_access_level = ProjectFeature::PUBLIC - expect(project_feature.valid?).to be_falsy, "#{field} failed" - end - end + expect(project_feature.valid?).to be_truthy end describe 'default pages access level' do |