diff options
Diffstat (limited to 'spec/controllers')
5 files changed, 132 insertions, 17 deletions
diff --git a/spec/controllers/api/v1/stop_area_controller_spec.rb b/spec/controllers/api/v1/stop_area_controller_spec.rb index eb0c87661..1ad71a95a 100644 --- a/spec/controllers/api/v1/stop_area_controller_spec.rb +++ b/spec/controllers/api/v1/stop_area_controller_spec.rb @@ -18,16 +18,15 @@ describe Api::V1::StopAreasController, :type => :controller do end end describe "GET #index, :q => { :name_cont => 'aa'}" do - let!(:sa1) { create(:stop_area, :name => "aaa") } - let!(:sa2) { create(:stop_area, :name => "aab") } - let!(:sa3) { create(:stop_area, :name => "abb") } + let!(:sa1) { create(:stop_area, :name => "aaa", stop_area_referential: referential.stop_area_referential) } + let!(:sa2) { create(:stop_area, :name => "aab", stop_area_referential: referential.stop_area_referential) } + let!(:sa3) { create(:stop_area, :name => "abb", stop_area_referential: referential.stop_area_referential) } before :each do config_formatted_request_with_authorization( "application/json") - get :index, :q => { :name_cont => "aa"} + get :index, :q => { :name_cont => "aa"} end it "should assign expected stop_areas" do expect(assigns[:stop_areas].map(&:name).sort).to eq([ sa1.name, sa2.name]) end end end - diff --git a/spec/controllers/autocomplete_stop_areas_controller_spec.rb b/spec/controllers/autocomplete_stop_areas_controller_spec.rb index 2af471361..e0d1cd714 100644 --- a/spec/controllers/autocomplete_stop_areas_controller_spec.rb +++ b/spec/controllers/autocomplete_stop_areas_controller_spec.rb @@ -4,9 +4,11 @@ RSpec.describe AutocompleteStopAreasController, type: :controller do login_user let(:referential) { Referential.first } - let!(:stop_area) { create :stop_area, name: 'écolà militaire' } - let!(:zdep_stop_area) { create :stop_area, area_type: "zdep" } - let!(:not_zdep_stop_area) { create :stop_area, area_type: "lda" } + let(:other_referential) { create :referential } + let!(:stop_area) { create :stop_area, name: 'écolà militaire', referential: referential } + let!(:other_referential_stop_area) { create :stop_area, name: 'écolà militaire', referential: other_referential } + let!(:zdep_stop_area) { create :stop_area, area_type: "zdep", referential: referential } + let!(:not_zdep_stop_area) { create :stop_area, area_type: "lda", referential: referential } describe 'GET #index' do it 'should be successful' do @@ -14,6 +16,12 @@ RSpec.describe AutocompleteStopAreasController, type: :controller do expect(response).to be_success end + it "should filter stop areas based on referential" do + get :index, referential_id: referential.id + expect(assigns(:stop_areas)).to include(stop_area) + expect(assigns(:stop_areas)).to_not include(other_referential_stop_area) + end + context 'search by name' do it 'should be successful' do get :index, referential_id: referential.id, q: 'écolà', :format => :json diff --git a/spec/controllers/referentials_controller_spec.rb b/spec/controllers/referentials_controller_spec.rb index f97480600..5e0b1e505 100644 --- a/spec/controllers/referentials_controller_spec.rb +++ b/spec/controllers/referentials_controller_spec.rb @@ -15,8 +15,7 @@ describe ReferentialsController, :type => :controller do end context "user's organisation doesn't match referential's organisation" do - pending "hotfix opens all unknow actions need to close the uneeded later" do - #it 'raises a ActiveRecord::RecordNotFound' do + it 'raises a ActiveRecord::RecordNotFound' do expect { put :archive, id: other_referential.id }.to raise_error(ActiveRecord::RecordNotFound) end end @@ -26,7 +25,7 @@ describe ReferentialsController, :type => :controller do it 'gets compliance control set for current organisation' do compliance_control_set = create(:compliance_control_set, organisation: @user.organisation) create(:compliance_control_set) - get :select_compliance_control_set, referential_id: referential.id + get :select_compliance_control_set, id: referential.id expect(assigns[:compliance_control_sets]).to eq([compliance_control_set]) end end @@ -43,16 +42,51 @@ describe ReferentialsController, :type => :controller do end end + describe "GET #new" do + context "when duplicating" do + let(:workbench){ create :workbench} + let(:request){ + get :new, + workbench_id: workbench.id, + from: referential.id + } + + it "duplicates the given referential" do + request + new_referential = assigns(:referential) + expect(new_referential.line_referential).to eq referential.line_referential + expect(new_referential.stop_area_referential).to eq referential.stop_area_referential + expect(new_referential.objectid_format).to eq referential.objectid_format + expect(new_referential.prefix).to eq referential.prefix + expect(new_referential.slug).to eq "#{referential.slug}_clone" + expect(new_referential.workbench).to eq workbench + end + end + end + describe "POST #create" do + let(:workbench){ create :workbench} context "when duplicating" do - it "displays a flash message", pending: 'requires more params to create a valid Referential' do + let(:request){ post :create, - from: referential.id, - current_workbench_id: referential.workbench_id, - referential: { - name: 'Duplicated' - } + workbench_id: workbench.id, + referential: { + name: 'Duplicated', + created_from_id: referential.id, + stop_area_referential: referential.stop_area_referential, + line_referential: referential.line_referential, + objectid_format: referential.objectid_format, + workbench_id: referential.workbench_id + } + } + + it "creates the new referential" do + expect{request}.to change{Referential.count}.by 1 + expect(Referential.last.name).to eq "Duplicated" + end + it "displays a flash message" do + request expect(controller).to set_flash[:notice].to( I18n.t('notice.referentials.duplicate') ) diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb new file mode 100644 index 000000000..8a6db8e28 --- /dev/null +++ b/spec/controllers/statuses_controller_spec.rb @@ -0,0 +1,50 @@ +RSpec.describe StatusesController, :type => :controller do + + describe "GET index" do + login_user + render_views + + + let(:request){ get :index} + let(:parsed_response){ JSON.parse response.body } + it "should be ok" do + request + expect(response).to have_http_status 200 + expect(parsed_response["status"]).to eq "ok" + end + context "without blocked object" do + before do + create :referential + create :import + create :compliance_check_set + request + end + + it "should be ok" do + expect(response).to have_http_status 200 + expect(parsed_response["status"]).to eq "ok" + expect(parsed_response["referentials_blocked"]).to eq 0 + expect(parsed_response["imports_blocked"]).to eq 0 + expect(parsed_response["imports_blocked"]).to eq 0 + end + end + + context "with a blocked object" do + before do + create :referential, created_at: 5.hours.ago, ready: false + create :import + create :compliance_check_set + request + end + + it "should be ko" do + expect(Referential.blocked.count).to eq 1 + expect(response).to have_http_status 200 + expect(parsed_response["status"]).to eq "ko" + expect(parsed_response["referentials_blocked"]).to eq 1 + expect(parsed_response["imports_blocked"]).to eq 0 + expect(parsed_response["imports_blocked"]).to eq 0 + end + end + end +end diff --git a/spec/controllers/vehicle_journeys_controller_spec.rb b/spec/controllers/vehicle_journeys_controller_spec.rb index 416450c21..300684532 100644 --- a/spec/controllers/vehicle_journeys_controller_spec.rb +++ b/spec/controllers/vehicle_journeys_controller_spec.rb @@ -26,4 +26,28 @@ RSpec.describe VehicleJourneysController, :type => :controller do end end + describe "GET index" do + login_user + render_views + + context "in JSON" do + let(:vehicle_journey){ create :vehicle_journey } + let(:route){ vehicle_journey.route } + let(:line){ route.line } + let!(:request){ get :index, referential_id: referential.id, line_id: line.id, route_id: route.id, format: :json} + let(:parsed_response){ JSON.parse response.body } + it "should have all the attributes" do + expect(response).to have_http_status 200 + vehicle_journey = parsed_response["vehicle_journeys"].first + vehicle_journey_at_stops_matrix = vehicle_journey["vehicle_journey_at_stops"] + vehicle_journey_at_stops_matrix.each do |received_vjas| + expect(received_vjas).to have_key("id") + vjas = Chouette::VehicleJourneyAtStop.find received_vjas["id"] + [:connecting_service_id, :boarding_alighting_possibility].each do |att| + expect(received_vjas[att]).to eq vjas.send(att) + end + end + end + end + end end |
