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/lib/gitlab/background_migration/fix_allow_descendants_override_disabled_shared_runners_spec.rb')
-rw-r--r--spec/lib/gitlab/background_migration/fix_allow_descendants_override_disabled_shared_runners_spec.rb53
1 files changed, 53 insertions, 0 deletions
diff --git a/spec/lib/gitlab/background_migration/fix_allow_descendants_override_disabled_shared_runners_spec.rb b/spec/lib/gitlab/background_migration/fix_allow_descendants_override_disabled_shared_runners_spec.rb
new file mode 100644
index 00000000000..5f5dcb35836
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/fix_allow_descendants_override_disabled_shared_runners_spec.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::FixAllowDescendantsOverrideDisabledSharedRunners, schema: 20230802085923, feature_category: :runner_fleet do # rubocop:disable Layout/LineLength
+ let(:namespaces) { table(:namespaces) }
+
+ let!(:valid_enabled) do
+ namespaces.create!(name: 'valid_enabled', path: 'valid_enabled',
+ shared_runners_enabled: true,
+ allow_descendants_override_disabled_shared_runners: false)
+ end
+
+ let!(:invalid_enabled) do
+ namespaces.create!(name: 'invalid_enabled', path: 'invalid_enabled',
+ shared_runners_enabled: true,
+ allow_descendants_override_disabled_shared_runners: true)
+ end
+
+ let!(:disabled_and_overridable) do
+ namespaces.create!(name: 'disabled_and_overridable', path: 'disabled_and_overridable',
+ shared_runners_enabled: false,
+ allow_descendants_override_disabled_shared_runners: true)
+ end
+
+ let!(:disabled_and_unoverridable) do
+ namespaces.create!(name: 'disabled_and_unoverridable', path: 'disabled_and_unoverridable',
+ shared_runners_enabled: false,
+ allow_descendants_override_disabled_shared_runners: false)
+ end
+
+ let(:migration_attrs) do
+ {
+ start_id: namespaces.minimum(:id),
+ end_id: namespaces.maximum(:id),
+ batch_table: :namespaces,
+ batch_column: :id,
+ sub_batch_size: 2,
+ pause_ms: 0,
+ connection: ApplicationRecord.connection
+ }
+ end
+
+ it 'fixes invalid allow_descendants_override_disabled_shared_runners and does not affect others' do
+ expect do
+ described_class.new(**migration_attrs).perform
+ end.to change { invalid_enabled.reload.allow_descendants_override_disabled_shared_runners }.from(true).to(false)
+ .and not_change { valid_enabled.reload.allow_descendants_override_disabled_shared_runners }.from(false)
+ .and not_change { disabled_and_overridable.reload.allow_descendants_override_disabled_shared_runners }.from(true)
+ .and not_change { disabled_and_unoverridable.reload.allow_descendants_override_disabled_shared_runners }
+ .from(false)
+ end
+end