diff options
Diffstat (limited to 'spec/models/ci/pending_build_spec.rb')
-rw-r--r-- | spec/models/ci/pending_build_spec.rb | 58 |
1 files changed, 57 insertions, 1 deletions
diff --git a/spec/models/ci/pending_build_spec.rb b/spec/models/ci/pending_build_spec.rb index c1d4f4b0a5e..b64f3999232 100644 --- a/spec/models/ci/pending_build_spec.rb +++ b/spec/models/ci/pending_build_spec.rb @@ -20,7 +20,7 @@ RSpec.describe Ci::PendingBuild do context 'when another queuing entry exists for given build' do before do - described_class.create!(build: build, project: project, protected: false) + create(:ci_pending_build, build: build, project: project) end it 'returns a build id as a result' do @@ -29,5 +29,61 @@ RSpec.describe Ci::PendingBuild do expect(result.rows.dig(0, 0)).to eq build.id end end + + context 'when project does not have shared runner' do + it 'sets instance_runners_enabled to false' do + described_class.upsert_from_build!(build) + + expect(described_class.last.instance_runners_enabled).to be_falsey + end + end + + context 'when project has shared runner' do + let_it_be(:runner) { create(:ci_runner, :instance) } + + context 'when ci_pending_builds_maintain_shared_runners_data is enabled' do + it 'sets instance_runners_enabled to true' do + described_class.upsert_from_build!(build) + + expect(described_class.last.instance_runners_enabled).to be_truthy + end + + context 'when project is about to be deleted' do + before do + build.project.update!(pending_delete: true) + end + + it 'sets instance_runners_enabled to false' do + described_class.upsert_from_build!(build) + + expect(described_class.last.instance_runners_enabled).to be_falsey + end + end + + context 'when builds are disabled' do + before do + build.project.project_feature.update!(builds_access_level: false) + end + + it 'sets instance_runners_enabled to false' do + described_class.upsert_from_build!(build) + + expect(described_class.last.instance_runners_enabled).to be_falsey + end + end + end + + context 'when ci_pending_builds_maintain_shared_runners_data is disabled' do + before do + stub_feature_flags(ci_pending_builds_maintain_shared_runners_data: false) + end + + it 'sets instance_runners_enabled to false' do + described_class.upsert_from_build!(build) + + expect(described_class.last.instance_runners_enabled).to be_falsey + end + end + end end end |