Accounted for the change while reading the fields added specs to confirm working

This commit is contained in:
fzngagan 2020-08-25 11:39:34 +05:30 committed by Robin Ward
parent 352ad826c1
commit c363189858
2 changed files with 27 additions and 1 deletions

View File

@ -274,7 +274,7 @@ module HasCustomFields
protected
def refresh_custom_fields_from_db
target = Hash.new
target = HashWithIndifferentAccess.new
_custom_fields.order('id asc').pluck(:name, :value).each do |key, value|
self.class.append_custom_field(target, key, value)
end

View File

@ -337,6 +337,32 @@ describe HasCustomFields do
expect(test_item.custom_fields['hello']).to eq('world')
expect(test_item.custom_fields['abc']).to eq('ghi')
end
it 'allows using string and symbol indices interchangably' do
test_item = CustomFieldsTestItem.new
test_item.custom_fields["bob"] = "marley"
test_item.custom_fields["jack"] = "black"
# In memory
expect(test_item.custom_fields[:bob]).to eq('marley')
expect(test_item.custom_fields[:jack]).to eq('black')
# Persisted
test_item.save
test_item.reload
expect(test_item.custom_fields[:bob]).to eq('marley')
expect(test_item.custom_fields[:jack]).to eq('black')
## Update via string index again
test_item.custom_fields['bob'] = 'the builder'
expect(test_item.custom_fields[:bob]).to eq('the builder')
test_item.save
test_item.reload
expect(test_item.custom_fields[:bob]).to eq('the builder')
end
end
end
end