diff options
Diffstat (limited to 'spec/controllers')
| -rw-r--r-- | spec/controllers/referential_vehicle_journeys_controller_spec.rb | 55 | 
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 | 
