diff options
| author | Zog | 2018-02-02 17:54:07 +0100 | 
|---|---|---|
| committer | cedricnjanga | 2018-02-06 11:11:33 -0800 | 
| commit | d4fc23715f75e071d432666f0557bc6031efa036 (patch) | |
| tree | 7dbc2e38d5ec22c7ee0d5ed8b4de62e4b7600889 | |
| parent | 40960d78ad2e5a85b4acec5d7588beb69538b61a (diff) | |
| download | chouette-core-d4fc23715f75e071d432666f0557bc6031efa036.tar.bz2 | |
Refs #5417; Fix specs
| -rw-r--r-- | app/models/chouette/time_table.rb | 8 | ||||
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 4 | ||||
| -rw-r--r-- | spec/models/chouette/time_table_spec.rb | 13 | 
3 files changed, 21 insertions, 4 deletions
| diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb index 7b69aefb6..15b22b671 100644 --- a/app/models/chouette/time_table.rb +++ b/app/models/chouette/time_table.rb @@ -42,8 +42,12 @@ module Chouette      def checksum_attributes        [].tap do |attrs|          attrs << self.int_day_types -        attrs << self.dates.map(&:checksum).map(&:to_s).sort -        attrs << self.periods.map(&:checksum).map(&:to_s).sort +        dates = self.dates +        dates += TimeTableDate.where(time_table_id: self.id) +        attrs << dates.map(&:checksum).map(&:to_s).sort +        periods = self.periods +        periods += TimeTablePeriod.where(time_table_id: self.id) +        attrs << periods.map(&:checksum).map(&:to_s).sort        end      end diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb index 1971061a2..4a6ba3f75 100644 --- a/app/models/chouette/vehicle_journey.rb +++ b/app/models/chouette/vehicle_journey.rb @@ -104,7 +104,9 @@ module Chouette          attrs << self.published_journey_identifier          attrs << self.try(:company).try(:get_objectid).try(:local_id)          attrs << self.footnotes.map(&:checksum).sort -        attrs << self.vehicle_journey_at_stops.sort_by { |s| s.stop_point&.position }.map(&:checksum).sort +        vjas =  self.vehicle_journey_at_stops +        vjas += VehicleJourneyAtStop.where(vehicle_journey_id: self.id) +        attrs << vjas.uniq.sort_by { |s| s.stop_point&.position }.map(&:checksum).sort        end      end diff --git a/spec/models/chouette/time_table_spec.rb b/spec/models/chouette/time_table_spec.rb index 30e201c4d..a501f234a 100644 --- a/spec/models/chouette/time_table_spec.rb +++ b/spec/models/chouette/time_table_spec.rb @@ -1050,6 +1050,17 @@ end    describe 'checksum' do      it_behaves_like 'checksum support', :time_table + +    it "handles newly built dates and periods" do +      time_table = build(:time_table) +      time_table.periods.build period_start: Time.now, period_end: 1.month.from_now +      time_table.dates.build date: Time.now +      time_table.save! +      expect{time_table.update_checksum!}.to_not change{time_table.checksum} +      expect(time_table.dates.count).to eq 1 +      expect(time_table.periods.count).to eq 1 +    end +      it "changes when a date is updated" do        time_table = create(:time_table)        expect{time_table.dates.last.update_attribute(:date, Time.now)}.to change{time_table.reload.checksum} @@ -1058,7 +1069,7 @@ end      it "changes when a date is added" do        time_table = create(:time_table)        expect(time_table).to receive(:update_checksum_without_callbacks!).at_least(:once).and_call_original -      expect{create(:time_table_date, time_table: time_table)}.to change{time_table.checksum} +      expect{create(:time_table_date, time_table: time_table, date: 1.year.ago)}.to change{time_table.checksum}      end      it "changes when a period is updated" do | 
