Files
grecia/spec/shared/models/map_validations.rb
Javi Martín e01a94d7bd Use mem_cache_store instead of dalli_store
`dalli_store` is deprecated since dalli 2.7.11.

We can now enable cache_versioning. We didn't enable it when upgrading
to Rails 5.2 because of possible incompatibility with `dalli_store` [1],
even though apparently some the issues were fixed in dalli 2.7.9 and
dalli 2.7.10 [2].

Since using cache versioning makes cache expiration more efficient, and
I'm not sure whether the options we were passing to the dalli store are
valid with memcache store (documentation here is a bit lacking), I'm
just removing the option we used to double the default cache size on
production.

[1] https://www.schneems.com/2018/10/17/cache-invalidation-complexity-rails-52-and-dalli-cache-store
[2] https://github.com/petergoldstein/dalli/blob/master/History.md
2021-08-15 19:42:22 +02:00

41 lines
920 B
Ruby

shared_examples "map validations" do
let(:mappable) { build(model_name(described_class)) }
describe "validations" do
before do
Setting["feature.map"] = true
end
it "is valid with a map location" do
mappable.map_location = build(:map_location)
expect(mappable).to be_valid
end
it "is valid without a location" do
mappable.map_location = nil
expect(mappable).to be_valid
end
it "is valid when the feature map is deactivated" do
Setting["feature.map"] = nil
mappable.map_location = nil
expect(mappable).to be_valid
end
end
describe "cache" do
it "expires cache when the map is updated" do
map_location = create(:map_location)
mappable.map_location = map_location
mappable.save!
expect { map_location.update(latitude: 12.34) }
.to change { mappable.reload.cache_version }
end
end
end