From c330e49a7fb4571c2b08ce15cbd488917eb0d0c8 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Wed, 14 Jan 2015 14:26:21 +1100 Subject: [PATCH] Moving permalink check action to enterprise controller --- .../admin/enterprises_controller.rb | 13 ----------- app/controllers/enterprises_controller.rb | 13 +++++++++++ config/routes.rb | 2 +- .../admin/enterprises_controller_spec.rb | 22 ------------------- .../enterprises_controller_spec.rb | 18 +++++++++++++++ 5 files changed, 32 insertions(+), 36 deletions(-) diff --git a/app/controllers/admin/enterprises_controller.rb b/app/controllers/admin/enterprises_controller.rb index 53ef01207c..af2f2f5425 100644 --- a/app/controllers/admin/enterprises_controller.rb +++ b/app/controllers/admin/enterprises_controller.rb @@ -53,19 +53,6 @@ module Admin end end - def check_permalink - path = Rails.application.routes.recognize_path( "/#{ params[:permalink].to_s }" ) - if path && path[:controller] == "cms_content" - respond_to do |format| - format.js { render nothing: true, status: 200 } - end - else - respond_to do |format| - format.js { render nothing: true, status: 409 } - end - end - end - protected def build_resource_with_address diff --git a/app/controllers/enterprises_controller.rb b/app/controllers/enterprises_controller.rb index 298c1d5a10..571d17e3eb 100644 --- a/app/controllers/enterprises_controller.rb +++ b/app/controllers/enterprises_controller.rb @@ -69,4 +69,17 @@ class EnterprisesController < BaseController redirect_to main_app.shop_path end + + def check_permalink + path = Rails.application.routes.recognize_path( "/#{ params[:permalink].to_s }" ) + if path && path[:controller] == "cms_content" + respond_to do |format| + format.js { render nothing: true, status: 200 } + end + else + respond_to do |format| + format.js { render nothing: true, status: 409 } + end + end + end end diff --git a/config/routes.rb b/config/routes.rb index 35f7154358..d1cb9c93ae 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -26,6 +26,7 @@ Openfoodnetwork::Application.routes.draw do get :suppliers get :distributors post :search + get :check_permalink end member do @@ -46,7 +47,6 @@ Openfoodnetwork::Application.routes.draw do collection do get :for_order_cycle post :bulk_update, as: :bulk_update - get :check_permalink end member do diff --git a/spec/controllers/admin/enterprises_controller_spec.rb b/spec/controllers/admin/enterprises_controller_spec.rb index 32281db681..cda73d4079 100644 --- a/spec/controllers/admin/enterprises_controller_spec.rb +++ b/spec/controllers/admin/enterprises_controller_spec.rb @@ -282,27 +282,5 @@ module Admin end end end - - describe "checking permalink suitability" do - # let(:enterprise) { create(:enterprise, permalink: 'enterprise_permalink') } - - before do - controller.stub spree_current_user: admin_user - end - - it "responds with status of 200 when the route does not exist" do - spree_get :check_permalink, { permalink: 'some_nonexistent_route', format: :js } - expect(response.status).to be 200 - end - - it "responds with status of 409 when the permalink matches an existing route" do - # spree_get :check_permalink, { permalink: 'enterprise_permalink', format: :js } - # expect(response.status).to be 409 - spree_get :check_permalink, { permalink: 'map', format: :js } - expect(response.status).to be 409 - spree_get :check_permalink, { permalink: '', format: :js } - expect(response.status).to be 409 - end - end end end diff --git a/spec/controllers/enterprises_controller_spec.rb b/spec/controllers/enterprises_controller_spec.rb index fa8ca888e8..34d095c29a 100644 --- a/spec/controllers/enterprises_controller_spec.rb +++ b/spec/controllers/enterprises_controller_spec.rb @@ -109,4 +109,22 @@ describe EnterprisesController do response.should redirect_to spree.root_path end end + + context "checking permalink availability" do + # let(:enterprise) { create(:enterprise, permalink: 'enterprise_permalink') } + + it "responds with status of 200 when the route does not exist" do + spree_get :check_permalink, { permalink: 'some_nonexistent_route', format: :js } + expect(response.status).to be 200 + end + + it "responds with status of 409 when the permalink matches an existing route" do + # spree_get :check_permalink, { permalink: 'enterprise_permalink', format: :js } + # expect(response.status).to be 409 + spree_get :check_permalink, { permalink: 'map', format: :js } + expect(response.status).to be 409 + spree_get :check_permalink, { permalink: '', format: :js } + expect(response.status).to be 409 + end + end end