Files
nairobi/spec/shared/models/map_validations.rb
Javi Martín da121ebc53 Remove redundant setting resets in after blocks
Settings are stored in the database, and so any changes to the settings
done during the tests are automatically rolled back between one test and
the next one.

There were also a few places where we weren't using an `after` block but
changing the setting at the end of the test.
2019-09-23 13:47:45 +02:00

63 lines
1.3 KiB
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)
mappable.skip_map = nil
expect(mappable).to be_valid
end
it "is valid accepting that the mappable has no map" do
mappable.skip_map = "1"
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
mappable.skip_map = nil
expect(mappable).to be_valid
end
it "is not valid without a map location" do
mappable.map_location = nil
mappable.skip_map = nil
expect(mappable).not_to be_valid
end
it "is not valid without accepting that the mappable has no map" do
mappable.skip_map = nil
expect(mappable).not_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.updated_at }
end
end
end