Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/ci/unit_test_failure_spec.rb')
-rw-r--r--spec/models/ci/unit_test_failure_spec.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/models/ci/unit_test_failure_spec.rb b/spec/models/ci/unit_test_failure_spec.rb
index f9b8c66b603..7ffd103bc7d 100644
--- a/spec/models/ci/unit_test_failure_spec.rb
+++ b/spec/models/ci/unit_test_failure_spec.rb
@@ -70,4 +70,46 @@ RSpec.describe Ci::UnitTestFailure do
end
end
end
+
+ describe 'partitioning', :ci_partitionable do
+ let(:project) { FactoryBot.build(:project) }
+ let(:unit_test) { FactoryBot.build(:ci_unit_test, project: project) }
+
+ context 'with build' do
+ let(:build) { FactoryBot.build(:ci_build, partition_id: ci_testing_partition_id) }
+ let(:unit_test_failure) do
+ FactoryBot.build(:ci_unit_test_failure, build: build, unit_test: unit_test, failed_at: 1.day.ago)
+ end
+
+ it 'copies the partition_id from build' do
+ expect { unit_test_failure.valid? }.to change { unit_test_failure.partition_id }.to(ci_testing_partition_id)
+ end
+
+ context 'when it is already set' do
+ let(:unit_test_failure) do
+ FactoryBot.build(
+ :ci_unit_test_failure,
+ build: build,
+ unit_test: unit_test,
+ failed_at: 1.day.ago,
+ partition_id: 125
+ )
+ end
+
+ it 'does not change the partition_id value' do
+ expect { unit_test_failure.valid? }.not_to change { unit_test_failure.partition_id }
+ end
+ end
+ end
+
+ context 'without build' do
+ subject(:unit_test_failure) { FactoryBot.build(:ci_unit_test_failure, build: nil, partition_id: 125) }
+
+ it { is_expected.to validate_presence_of(:partition_id) }
+
+ it 'does not change the partition_id value' do
+ expect { unit_test_failure.valid? }.not_to change { unit_test_failure.partition_id }
+ end
+ end
+ end
end