aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/requests/journey_pattern_spec.rb56
-rw-r--r--spec/views/vehicle_journeys/_form.html.erb_spec.rb61
2 files changed, 117 insertions, 0 deletions
diff --git a/spec/requests/journey_pattern_spec.rb b/spec/requests/journey_pattern_spec.rb
new file mode 100644
index 000000000..7c62dd56b
--- /dev/null
+++ b/spec/requests/journey_pattern_spec.rb
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+require 'spec_helper'
+
+describe "JourneyPatterns" do
+ login_user
+
+ let!(:referential) { create(:referential).switch }
+ let!(:line) { referential; Factory(:line) }
+ let!(:route) { referential; Factory(:route, :line => line) }
+ let!(:journey_pattern) { referential; Factory(:journey_pattern, :route => route) }
+
+ describe "from routes page to a journey_pattern page" do
+ it "display route's journey_patterns" do
+ visit referential_line_route_path(referential,line,route)
+ page.should have_content(journey_pattern.name)
+ end
+ end
+ describe "from route's page to journey_pattern's page" do
+ it "display journey_pattern properties" do
+ visit referential_line_route_path(referential,line,route)
+ click_link "#{journey_pattern.name}"
+ page.should have_content(journey_pattern.published_name)
+ page.should have_content(journey_pattern.comment)
+ page.should have_content(journey_pattern.registration_number)
+ end
+ end
+ describe "from route's page, create a new journey_pattern" do
+ it "return to route's page that display new journey_pattern" do
+ visit referential_line_route_path(referential,line,route)
+ click_link "Ajouter une mission"
+ fill_in "Nom", :with => "A to B"
+ fill_in "Comment", :with => "AB"
+ click_button("Créer mission")
+ page.should have_content("A to B")
+ end
+ end
+ describe "from route's page, select a journey_pattern and edit it" do
+ it "return to route's page with changed name" do
+ visit referential_line_route_path(referential,line,route)
+ click_link "#{journey_pattern.name}"
+ click_link "Modifier cette mission"
+ fill_in "Nom", :with => "#{journey_pattern.name}-changed"
+ click_button("Modifier mission")
+ page.should have_content("#{journey_pattern.name}-changed")
+ end
+ end
+ describe "from route's page, select a journey_pattern and delete it" do
+ it "return to route's page without journey_pattern name" do
+ visit referential_line_route_path(referential,line,route)
+ click_link "#{journey_pattern.name}"
+ click_link "Supprimer cette mission"
+ page.should_not have_content(journey_pattern.name)
+ end
+ end
+end
+
diff --git a/spec/views/vehicle_journeys/_form.html.erb_spec.rb b/spec/views/vehicle_journeys/_form.html.erb_spec.rb
new file mode 100644
index 000000000..121566448
--- /dev/null
+++ b/spec/views/vehicle_journeys/_form.html.erb_spec.rb
@@ -0,0 +1,61 @@
+require 'spec_helper'
+
+describe "/vehicle_journeys/_form" do
+
+ let!(:referential) { assign :referential, create(:referential) }
+ let!(:line) { assign :line, create(:line) }
+ let!(:route) { assign :route, create(:route, :line => line) }
+ let!(:vehicle_journey) { assign :vehicle_journey, create(:vehicle_journey, :route => route) }
+
+ it "should render an input for transport_mode" do
+ render
+ rendered.should have_selector( "select", :name => "vehicle_journey[transport_mode]") do |node|
+ Chouette::Line.transport_modes.each do |mode|
+ node.should have_selector("option", :value => mode.text_code)
+ end
+ end
+ end
+
+ it "should render an input for comment" do
+ render
+ rendered.should have_selector("form") do
+ with_selector "input[type=text][comment=]", vehicle_journey.comment
+ end
+ end
+ context "stop's time view part" do
+ it "should render stop's names" do
+ render
+ rendered.should have_selector("form") do |form_node|
+ vehicle_journey.stop_points.each do |sp|
+ form_node.with_selector "label", :text => sp.stop_area.name
+ end
+ end
+ end
+ it "should render vehicle_journey_at_stop's departure time" do
+ render
+ rendered.should have_selector("form") do |form_node|
+ vehicle_journey.stop_points.each_with_index do |sp, index|
+ form_node.with_selector "select", :name => "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(4i)]"
+ form_node.with_selector "select", :name => "vehicle_journey[vehicle_journey_at_stops_attributes][#{index}][departure_time(5i)]"
+ end
+ end
+ end
+ end
+ context "when existing vehicle_journey" do
+ it "should display objectid not as an input" do
+ render
+ rendered.should have_selector("form li", :text => vehicle_journey.objectid)
+ end
+ end
+ context "when new vehicle_journey" do
+ let!(:vehicle_journey) { assign :vehicle_journey, build(:vehicle_journey, :route => route) }
+ it "should render an input for objectid" do
+ render
+ rendered.should have_selector("form") do
+ with_selector "input[type=text][objectid=]", vehicle_journey.objectid
+ end
+ end
+ end
+
+end
+