diff options
Diffstat (limited to 'spec/models/ci/pending_build_spec.rb')
-rw-r--r-- | spec/models/ci/pending_build_spec.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/models/ci/pending_build_spec.rb b/spec/models/ci/pending_build_spec.rb index b64f3999232..0518c9a1652 100644 --- a/spec/models/ci/pending_build_spec.rb +++ b/spec/models/ci/pending_build_spec.rb @@ -8,6 +8,34 @@ RSpec.describe Ci::PendingBuild do let(:build) { create(:ci_build, :created, pipeline: pipeline) } + describe 'associations' do + it { is_expected.to belong_to :project } + it { is_expected.to belong_to :build } + it { is_expected.to belong_to :namespace } + end + + describe 'scopes' do + describe '.with_instance_runners' do + subject(:pending_builds) { described_class.with_instance_runners } + + let!(:pending_build_1) { create(:ci_pending_build, instance_runners_enabled: false) } + + context 'when pending builds cannot be picked up by runner' do + it 'returns an empty collection of pending builds' do + expect(pending_builds).to be_empty + end + end + + context 'when pending builds can be picked up by runner' do + let!(:pending_build_2) { create(:ci_pending_build) } + + it 'returns matching pending builds' do + expect(pending_builds).to contain_exactly(pending_build_2) + end + end + end + end + describe '.upsert_from_build!' do context 'another pending entry does not exist' do it 'creates a new pending entry' do |