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