Fix #2318 - migration 20180220171219 CheckForObjectAttributes failed
This commit is contained in:
parent
4c90a87f5b
commit
f711e1019e
3 changed files with 35 additions and 0 deletions
|
@ -7,6 +7,7 @@ class CheckForObjectAttributes < ActiveRecord::Migration[5.1]
|
||||||
fix_nil_data_option(attribute)
|
fix_nil_data_option(attribute)
|
||||||
fix_options(attribute)
|
fix_options(attribute)
|
||||||
fix_relation(attribute)
|
fix_relation(attribute)
|
||||||
|
fix_interger_missing_min_max(attribute)
|
||||||
|
|
||||||
next if !attribute.changed?
|
next if !attribute.changed?
|
||||||
|
|
||||||
|
@ -38,4 +39,12 @@ class CheckForObjectAttributes < ActiveRecord::Migration[5.1]
|
||||||
|
|
||||||
attribute[:data_option][:relation] = ''
|
attribute[:data_option][:relation] = ''
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# fixes issue #2318 - Upgrade to Zammad 2.7 was not possible (migration 20180220171219 CheckForObjectAttributes failed)
|
||||||
|
def fix_interger_missing_min_max(attribute)
|
||||||
|
return if attribute[:data_type] != 'integer'
|
||||||
|
|
||||||
|
attribute[:data_option][:min] = 0 if !attribute[:data_option][:min]
|
||||||
|
attribute[:data_option][:max] = 1_000_000 if !attribute[:data_option][:max]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -112,4 +112,19 @@ RSpec.describe CheckForObjectAttributes, type: :db_migration do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# regression test for issue #2318 - Upgrade to Zammad 2.7 was not possible (migration 20180220171219 CheckForObjectAttributes failed)
|
||||||
|
context 'for interger attributes' do
|
||||||
|
it 'missing :min and :max' do
|
||||||
|
attribute = create(:object_manager_attribute_integer)
|
||||||
|
attribute.update_columns(data_option: {}) # rubocop:disable Rails/SkipsModelValidations
|
||||||
|
|
||||||
|
expect { migrate }.not_to raise_error
|
||||||
|
|
||||||
|
attribute.reload
|
||||||
|
|
||||||
|
expect(attribute[:data_option][:min]).to be_a(Integer)
|
||||||
|
expect(attribute[:data_option][:max]).to be_a(Integer)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -53,6 +53,17 @@ FactoryBot.define do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
factory :object_manager_attribute_integer, parent: :object_manager_attribute do
|
||||||
|
data_type 'integer'
|
||||||
|
data_option do
|
||||||
|
{
|
||||||
|
'default' => 0,
|
||||||
|
'min' => 0,
|
||||||
|
'max' => 9999,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
factory :object_manager_attribute_date, parent: :object_manager_attribute do
|
factory :object_manager_attribute_date, parent: :object_manager_attribute do
|
||||||
name 'date_attribute'
|
name 'date_attribute'
|
||||||
data_type 'date'
|
data_type 'date'
|
||||||
|
|
Loading…
Reference in a new issue