aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers
diff options
context:
space:
mode:
authorZog2018-01-08 16:13:22 +0100
committerZog2018-01-11 11:17:10 +0100
commitdad755a814b087af1ba30b27cf966b9c914dfa51 (patch)
tree5c50ea0da7cf85ab39958a66805cc1bd773ede6b /spec/controllers
parentf7ed3ca6615bb4950b644d56136016c4482395a8 (diff)
downloadchouette-core-dad755a814b087af1ba30b27cf966b9c914dfa51.tar.bz2
Refs #5500 @3h; Add filters on ReferentialVJ#index
To enable users to filter on stop areas
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/referential_vehicle_journeys_controller_spec.rb55
1 files changed, 55 insertions, 0 deletions
diff --git a/spec/controllers/referential_vehicle_journeys_controller_spec.rb b/spec/controllers/referential_vehicle_journeys_controller_spec.rb
index 842a6665e..ba4c080fc 100644
--- a/spec/controllers/referential_vehicle_journeys_controller_spec.rb
+++ b/spec/controllers/referential_vehicle_journeys_controller_spec.rb
@@ -38,6 +38,61 @@ RSpec.describe ReferentialVehicleJourneysController, type: :controller do
get :index, referential_id: referential
expect(assigns[:vehicle_journeys].total_entries).to be(1)
end
+
+ context "when filtered on stop areas" do
+ let!(:request){
+ get :index, referential_id: referential, q: q
+ }
+
+ let(:stop_area_ids){ [] }
+
+ def create_journey_pattern_with_stop_areas(*stop_areas)
+ j = create(:journey_pattern)
+ stop_areas.each do |area|
+ sp = create(:stop_point, stop_area: area)
+ j.stop_points << [sp]
+ end
+ j.save
+ j
+ end
+
+ let(:q){ {stop_area_ids: stop_area_ids}}
+ let(:stop_area_1){ create :stop_area }
+ let(:stop_area_2){ create :stop_area }
+ let!(:journey_1){ create_journey_pattern_with_stop_areas(stop_area_1)}
+ let!(:journey_2){ create_journey_pattern_with_stop_areas(stop_area_2)}
+ let!(:journey_1_and_2){ create_journey_pattern_with_stop_areas(stop_area_1, stop_area_2)}
+ let!(:vehicle_journey_1){ create(:vehicle_journey, journey_pattern: journey_1)}
+ let!(:vehicle_journey_2){ create(:vehicle_journey, journey_pattern: journey_2)}
+ let!(:vehicle_journey_1_and_2){ create(:vehicle_journey, journey_pattern: journey_1_and_2)}
+
+ context "with one stop" do
+ let(:stop_area_ids){[stop_area_1.id]}
+ it "should apply filters" do
+ expect(vehicle_journey_1.stop_areas).to include stop_area_1
+ expect(vehicle_journey_2.stop_areas).to_not include stop_area_1
+ expect(vehicle_journey_1_and_2.stop_areas).to include stop_area_1
+ expect(assigns[:vehicle_journeys]).to include(vehicle_journey_1)
+ expect(assigns[:vehicle_journeys]).to_not include(vehicle_journey_2)
+ expect(assigns[:vehicle_journeys]).to include(vehicle_journey_1_and_2)
+ end
+ end
+
+ context "with 2 stops" do
+ let(:stop_area_ids){[stop_area_1.id, stop_area_2.id]}
+ it "should apply filters" do
+ expect(vehicle_journey_1.stop_areas).to include stop_area_1
+ expect(vehicle_journey_1.stop_areas).to_not include stop_area_2
+ expect(vehicle_journey_2.stop_areas).to include stop_area_2
+ expect(vehicle_journey_2.stop_areas).to_not include stop_area_1
+ expect(vehicle_journey_1_and_2.stop_areas).to include stop_area_1
+ expect(vehicle_journey_1_and_2.stop_areas).to include stop_area_2
+ expect(assigns[:vehicle_journeys]).to_not include(vehicle_journey_1)
+ expect(assigns[:vehicle_journeys]).to_not include(vehicle_journey_2)
+ expect(assigns[:vehicle_journeys]).to include(vehicle_journey_1_and_2)
+ end
+ end
+ end
end
end