diff options
| author | Zog | 2018-04-23 11:08:55 +0200 |
|---|---|---|
| committer | Zog | 2018-04-23 11:08:55 +0200 |
| commit | 946563228f24f551e551dedaafd7ec9bbaf36094 (patch) | |
| tree | b43402c27a49a11a1978e26862149f1e70dc4259 | |
| parent | e6567cbfc987d8488492e2b1ce66a03db3a3d37d (diff) | |
| download | chouette-core-946563228f24f551e551dedaafd7ec9bbaf36094.tar.bz2 | |
Refs #6634; Fix checksum issues with duplicated routes6634-update-checksum-on-duplicated-routes
| -rw-r--r-- | app/models/chouette/route.rb | 2 | ||||
| -rw-r--r-- | spec/controllers/routes_controller_spec.rb | 19 |
2 files changed, 16 insertions, 5 deletions
diff --git a/app/models/chouette/route.rb b/app/models/chouette/route.rb index a5eab3002..b7f1e722b 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 |
