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/database/partitioning/sliding_list_strategy_spec.rb')
-rw-r--r--spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb72
1 files changed, 27 insertions, 45 deletions
diff --git a/spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb b/spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb
index d8b06ee1a5d..04b9fba5b2f 100644
--- a/spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb
+++ b/spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb
@@ -48,61 +48,43 @@ RSpec.describe Gitlab::Database::Partitioning::SlidingListStrategy do
end
describe '#validate_and_fix' do
- context 'feature flag is disabled' do
- before do
- stub_feature_flags(fix_sliding_list_partitioning: false)
- end
+ it 'does not call change_column_default if the partitioning in a valid state' do
+ expect(strategy.model.connection).not_to receive(:change_column_default)
- it 'does not try to fix the default partition value' do
- connection.change_column_default(model.table_name, strategy.partitioning_key, 3)
- expect(strategy.model.connection).not_to receive(:change_column_default)
- strategy.validate_and_fix
- end
+ strategy.validate_and_fix
end
- context 'feature flag is enabled' do
- before do
- stub_feature_flags(fix_sliding_list_partitioning: true)
- end
-
- it 'does not call change_column_default if the partitioning in a valid state' do
- expect(strategy.model.connection).not_to receive(:change_column_default)
-
- strategy.validate_and_fix
- end
-
- it 'calls change_column_default on partition_key with the most default partition number' do
- connection.change_column_default(model.table_name, strategy.partitioning_key, 1)
+ it 'calls change_column_default on partition_key with the most default partition number' do
+ connection.change_column_default(model.table_name, strategy.partitioning_key, 1)
- expect(Gitlab::AppLogger).to receive(:warn).with(
- message: 'Fixed default value of sliding_list_strategy partitioning_key',
- connection_name: 'main',
- old_value: 1,
- new_value: 2,
- table_name: table_name,
- column: strategy.partitioning_key
- )
+ expect(Gitlab::AppLogger).to receive(:warn).with(
+ message: 'Fixed default value of sliding_list_strategy partitioning_key',
+ connection_name: 'main',
+ old_value: 1,
+ new_value: 2,
+ table_name: table_name,
+ column: strategy.partitioning_key
+ )
- expect(strategy.model.connection).to receive(:change_column_default).with(
- model.table_name, strategy.partitioning_key, 2
- ).and_call_original
+ expect(strategy.model.connection).to receive(:change_column_default).with(
+ model.table_name, strategy.partitioning_key, 2
+ ).and_call_original
- strategy.validate_and_fix
- end
+ strategy.validate_and_fix
+ end
- it 'does not change the default column if it has been changed in the meanwhile by another process' do
- expect(strategy).to receive(:current_default_value).and_return(1, 2)
+ it 'does not change the default column if it has been changed in the meanwhile by another process' do
+ expect(strategy).to receive(:current_default_value).and_return(1, 2)
- expect(strategy.model.connection).not_to receive(:change_column_default)
+ expect(strategy.model.connection).not_to receive(:change_column_default)
- expect(Gitlab::AppLogger).to receive(:warn).with(
- message: 'Table partitions or partition key default value have been changed by another process',
- table_name: table_name,
- default_value: 2
- )
+ expect(Gitlab::AppLogger).to receive(:warn).with(
+ message: 'Table partitions or partition key default value have been changed by another process',
+ table_name: table_name,
+ default_value: 2
+ )
- strategy.validate_and_fix
- end
+ strategy.validate_and_fix
end
end