summaryrefslogtreecommitdiff
path: root/spec/models/ci/pending_build_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/ci/pending_build_spec.rb')
-rw-r--r--spec/models/ci/pending_build_spec.rb58
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