aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlban Peignier2018-04-23 12:49:59 +0200
committerGitHub2018-04-23 12:49:59 +0200
commit9e2b5aefc90418acf0959cb77df40578b2e7a06f (patch)
tree24ef50a74500efa321a40705b33ed61075feecc8
parent44c68c8e1c46bc4f35fec3806ba82848b3e4cff3 (diff)
parent946563228f24f551e551dedaafd7ec9bbaf36094 (diff)
downloadchouette-core-9e2b5aefc90418acf0959cb77df40578b2e7a06f.tar.bz2
Merge pull request #510 from af83/6634-update-checksum-on-duplicated-routes
Fix checksum issues with duplicated routes. Refs #6634
-rw-r--r--app/models/chouette/route.rb2
-rw-r--r--spec/controllers/routes_controller_spec.rb19
2 files changed, 16 insertions, 5 deletions
diff --git a/app/models/chouette/route.rb b/app/models/chouette/route.rb
index 5e8049b58..928b65f13 100644
--- a/app/models/chouette/route.rb
+++ b/app/models/chouette/route.rb
@@ -152,6 +152,8 @@ module Chouette
end
end
+ has_checksum_children StopPoint
+
def geometry
points = stop_areas.map(&:to_lat_lng).compact.map do |loc|
[loc.lng, loc.lat]
diff --git a/spec/controllers/routes_controller_spec.rb b/spec/controllers/routes_controller_spec.rb
index 59020914d..444528979 100644
--- a/spec/controllers/routes_controller_spec.rb
+++ b/spec/controllers/routes_controller_spec.rb
@@ -54,9 +54,10 @@ RSpec.describe RoutesController, type: :controller do
describe "PUT /update" do
before(:each) do
+ @checksum_source = route.checksum_source
put :update, id: route.id, line_id: route.line_id,
referential_id: referential.id,
- route: route.attributes
+ route: route.attributes.update({name: "New name"})
end
it_behaves_like "route, line and referential linked"
@@ -64,6 +65,9 @@ RSpec.describe RoutesController, type: :controller do
it "sets metadata" do
expect(Chouette::Route.last.metadata.modifier_username).to eq @user.username
end
+ it "updates checksum" do
+ expect(route.reload.checksum_source).to_not eq @checksum_source
+ end
end
describe "GET /show" do
@@ -105,10 +109,15 @@ RSpec.describe RoutesController, type: :controller do
opposite: TRUE
end.to change { Chouette::Route.count }.by(1)
- expect(Chouette::Route.last.name).to eq(I18n.t('routes.opposite', name: route.name))
- expect(Chouette::Route.last.published_name).to eq(Chouette::Route.last.name)
- expect(Chouette::Route.last.opposite_route).to eq(route)
- expect(Chouette::Route.last.stop_area_ids).to eq route.stop_area_ids.reverse
+ new_route = Chouette::Route.last
+ expect(new_route.name).to eq(I18n.t('routes.opposite', name: route.name))
+ expect(new_route.published_name).to eq(new_route.name)
+ expect(new_route.opposite_route).to eq(route)
+ expect(new_route.stop_area_ids).to eq route.stop_area_ids.reverse
+ expect(new_route.checksum).to_not eq route.checksum
+ checksum = new_route.checksum
+ new_route.update_checksum!
+ expect(new_route.checksum).to eq checksum
route.reload.stop_points.each do |sp|
expect(sp.position).to eq @positions[sp.id]
end