diff options
Diffstat (limited to 'spec/support/models/ci/partitioning_testing/cascade_check.rb')
-rw-r--r-- | spec/support/models/ci/partitioning_testing/cascade_check.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/support/models/ci/partitioning_testing/cascade_check.rb b/spec/support/models/ci/partitioning_testing/cascade_check.rb new file mode 100644 index 00000000000..f553a47ef4f --- /dev/null +++ b/spec/support/models/ci/partitioning_testing/cascade_check.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module PartitioningTesting + module CascadeCheck + extend ActiveSupport::Concern + + included do + after_create :check_partition_cascade_value + end + + def check_partition_cascade_value + raise 'Partition value not found' unless partition_scope_value + + return if partition_id == partition_scope_value + + raise "partition_id was expected to equal #{partition_scope_value} but it was #{partition_id}." + end + end +end + +Ci::Partitionable::Testing::PARTITIONABLE_MODELS.each do |klass| + next if klass == 'Ci::Pipeline' + + model = klass.safe_constantize + + model.include(PartitioningTesting::CascadeCheck) +end |