diff options
| -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 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 | 
