mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Adding action to check uniquness of enterprise permalink against existing routes
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
module Admin
|
||||
class EnterprisesController < ResourceController
|
||||
before_filter :load_enterprise_set, :only => :index
|
||||
before_filter :load_countries, :except => :index
|
||||
before_filter :load_countries, :except => [:index, :set_sells, :check_permalink]
|
||||
before_filter :load_methods_and_fees, :only => [:new, :edit, :update, :create]
|
||||
before_filter :load_taxons, :only => [:new, :edit, :update, :create]
|
||||
before_filter :check_can_change_sells, only: :update
|
||||
@@ -53,6 +53,18 @@ 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
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ Openfoodnetwork::Application.routes.draw do
|
||||
collection do
|
||||
get :for_order_cycle
|
||||
post :bulk_update, as: :bulk_update
|
||||
get :check_permalink
|
||||
end
|
||||
|
||||
member do
|
||||
|
||||
@@ -282,5 +282,27 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user