Files
grecia/spec/models/geozone_spec.rb
Javi Martín 1a098dfcab Add and apply MultilineMethodCallBraceLayout rule
In order for this rule to work effectively when running `--autocorrect`,
we also need to enable the `ClosingParenthesisIndentation` rule.
2023-08-18 14:56:16 +02:00

81 lines
2.2 KiB
Ruby

require "rails_helper"
describe Geozone do
let(:geozone) { build(:geozone) }
it "is valid" do
expect(geozone).to be_valid
end
it "is not valid without a name" do
geozone.name = nil
expect(geozone).not_to be_valid
end
it "is valid without geojson" do
geozone.geojson = nil
expect(geozone).to be_valid
end
it "is not valid with invalid geojson file format" do
geozone.geojson = '{"geo\":{"type":"Incorrect key","coordinates": [
[40.8792937308316, -3.9259027239257],
[40.8788966596619, -3.9249047078766],
[40.8789131852224, -3.9247799675785]]}}'
expect(geozone).not_to be_valid
end
describe "#safe_to_destroy?" do
let(:geozone) { create(:geozone) }
it "is true when not linked to other models" do
expect(geozone).to be_safe_to_destroy
end
it "is false when already linked to user" do
create(:user, geozone: geozone)
expect(geozone).not_to be_safe_to_destroy
end
it "is false when already linked to proposal" do
create(:proposal, geozone: geozone)
expect(geozone).not_to be_safe_to_destroy
end
it "is false when already linked to debate" do
create(:debate, geozone: geozone)
expect(geozone).not_to be_safe_to_destroy
end
it "is false when already linked to a heading" do
create(:budget_heading, geozone: geozone)
expect(geozone).not_to be_safe_to_destroy
end
end
describe "#outline_points" do
it "returns empty array when geojson is nil" do
expect(geozone.outline_points).to eq([])
end
it "returns coordinates array when geojson is not nil" do
geozone = build(:geozone, geojson: '{
"geometry": {
"type": "Polygon",
"coordinates": [
[40.8792937308316, -3.9259027239257],
[40.8788966596619, -3.9249047078766],
[40.8789131852224, -3.9247799675785]
]
}
}')
expect(geozone.outline_points).to eq(
[[-3.9259027239257, 40.8792937308316],
[-3.9249047078766, 40.8788966596619],
[-3.9247799675785, 40.8789131852224]]
)
end
end
end