diff options
Diffstat (limited to 'spec/models/ci/build_report_result_spec.rb')
-rw-r--r-- | spec/models/ci/build_report_result_spec.rb | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/spec/models/ci/build_report_result_spec.rb b/spec/models/ci/build_report_result_spec.rb index 09ea19cf077..90b23d3e824 100644 --- a/spec/models/ci/build_report_result_spec.rb +++ b/spec/models/ci/build_report_result_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe Ci::BuildReportResult do - let(:build_report_result) { build(:ci_build_report_result, :with_junit_success) } + let_it_be_with_reload(:build_report_result) { create(:ci_build_report_result, :with_junit_success) } it_behaves_like 'cleanup by a loose foreign key' do let!(:parent) { create(:project) } @@ -70,4 +70,34 @@ RSpec.describe Ci::BuildReportResult do expect(build_report_result.tests_skipped).to eq(0) end end + + describe 'partitioning' do + let(:build_report_result) { FactoryBot.build(:ci_build_report_result, build: build) } + + context 'with build' do + let(:build) { FactoryBot.build(:ci_build, partition_id: ci_testing_partition_id) } + + it 'copies the partition_id from build' do + expect { build_report_result.valid? }.to change { build_report_result.partition_id }.to(ci_testing_partition_id) + end + + context 'when it is already set' do + let(:build_report_result) { FactoryBot.build(:ci_build_report_result, partition_id: 125) } + + it 'does not change the partition_id value' do + expect { build_report_result.valid? }.not_to change { build_report_result.partition_id } + end + end + end + + context 'without build' do + subject(:build_report_result) { FactoryBot.build(:ci_build_report_result, build: nil, partition_id: 125) } + + it { is_expected.to validate_presence_of(:partition_id) } + + it 'does not change the partition_id value' do + expect { build_report_result.valid? }.not_to change { build_report_result.partition_id } + end + end + end end |