aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/routes_controller.rb4
-rw-r--r--config/routes.rb2
-rw-r--r--spec/controllers/routes_controller_spec.rb17
3 files changed, 22 insertions, 1 deletions
diff --git a/app/controllers/routes_controller.rb b/app/controllers/routes_controller.rb
index 852477c5c..e20ae9d14 100644
--- a/app/controllers/routes_controller.rb
+++ b/app/controllers/routes_controller.rb
@@ -75,6 +75,10 @@ class RoutesController < ChouetteController
build_breadcrumb(:edit)
end
+ def post_duplicate
+ @route = Chouette::Route.find(params[:id])
+ end
+
protected
alias_method :route, :resource
diff --git a/config/routes.rb b/config/routes.rb
index b738c0943..e73a2a494 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -111,7 +111,7 @@ ChouetteIhm::Application.routes.draw do
get 'edit_boarding_alighting'
put 'save_boarding_alighting'
get 'duplicate'
- post 'duplicate'
+ post 'duplicate', to: 'routes#post_duplicate'
end
resource :journey_patterns_collection, :only => [:show, :update]
resources :journey_patterns do
diff --git a/spec/controllers/routes_controller_spec.rb b/spec/controllers/routes_controller_spec.rb
index 5c17b78b8..3862d8173 100644
--- a/spec/controllers/routes_controller_spec.rb
+++ b/spec/controllers/routes_controller_spec.rb
@@ -85,4 +85,21 @@ RSpec.describe RoutesController, type: :controller do
expect(response).to be_success
end
end
+
+ describe "POST /duplicate" do
+ it "creates a new route" do
+ expect do
+ post :duplicate,
+ referential_id: route.line.line_referential_id,
+ line_id: route.line_id,
+ id: route.id,
+ params: {
+ name: '102 Route',
+ published_name: '102 route'
+ }
+ end.to change { Chouette::Route.count }.by(1)
+
+ expect(Chouette::Route.last.name).to eq('102 Route')
+ end
+ end
end