diff --git a/app/controllers/admin/enterprises_controller.rb b/app/controllers/admin/enterprises_controller.rb index b4f0c70e98..7e3ab9d17a 100644 --- a/app/controllers/admin/enterprises_controller.rb +++ b/app/controllers/admin/enterprises_controller.rb @@ -92,9 +92,9 @@ module Admin def collection case action when :for_order_cycle - return Enterprise.where("1=0") unless params[:coordinator_id] || params[:order_cycle_id] - options = { coordinator: Enterprise.find(params[:coordinator_id]) } - options = { order_cycle: OrderCycle.find(params[:order_cycle_id]) } if params[:order_cycle_id] + options = {} + options[:coordinator] = Enterprise.find(params[:coordinator_id]) if params[:coordinator_id] + options[:order_cycle] = OrderCycle.find(params[:order_cycle_id]) if params[:order_cycle_id] return OpenFoodNetwork::Permissions.new(spree_current_user).order_cycle_enterprises_for(options) else # TODO was ordered with is_distributor DESC as well, not sure why or how we want to sort this now diff --git a/spec/controllers/admin/enterprises_controller_spec.rb b/spec/controllers/admin/enterprises_controller_spec.rb index 2446768174..c43154f3fd 100644 --- a/spec/controllers/admin/enterprises_controller_spec.rb +++ b/spec/controllers/admin/enterprises_controller_spec.rb @@ -379,8 +379,7 @@ module Admin context "when no order_cycle or coordinator is provided in params" do before { spree_get :for_order_cycle } it "returns an empty scope" do - expect(assigns(:collection)).to be_empty - expect(permission_mock).to_not have_received :order_cycle_enterprises_for + expect(permission_mock).to have_received(:order_cycle_enterprises_for).with({}) end end @@ -400,8 +399,8 @@ module Admin context "when both an order cycle and a coordinator are provided in params" do before { spree_get :for_order_cycle, order_cycle_id: 1, coordinator_id: 1 } - it "calls order_cycle_enterprises_for() with an :order_cycle option" do - expect(permission_mock).to have_received(:order_cycle_enterprises_for).with(order_cycle: "instance of OrderCycle") + it "calls order_cycle_enterprises_for() with both options" do + expect(permission_mock).to have_received(:order_cycle_enterprises_for).with(coordinator: "instance of Enterprise", order_cycle: "instance of OrderCycle") end end end diff --git a/spec/lib/open_food_network/permissions_spec.rb b/spec/lib/open_food_network/permissions_spec.rb index 542ca1674f..185ec26d97 100644 --- a/spec/lib/open_food_network/permissions_spec.rb +++ b/spec/lib/open_food_network/permissions_spec.rb @@ -27,6 +27,12 @@ module OpenFoodNetwork let(:producer) { create(:supplier_enterprise) } let(:oc) { create(:simple_order_cycle, coordinator: coordinator) } + context "when no order_cycle or coordinator are provided for reference" do + it "returns an empty scope" do + expect(permissions.order_cycle_enterprises_for()).to be_empty + end + end + context "as a manager of the coordinator" do it "returns the coordinator itself" do permissions.stub(:managed_enterprises) { Enterprise.where(id: [coordinator]) }