Moving permalink check action to enterprise controller

This commit is contained in:
Rob Harrington
2015-01-14 14:26:21 +11:00
parent e2268e53bb
commit c330e49a7f
5 changed files with 32 additions and 36 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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