From 97c4cd382bf18c57544348c41934bd71cbf290dc Mon Sep 17 00:00:00 2001 From: cyrillefr Date: Tue, 17 Jun 2025 14:05:21 +0200 Subject: [PATCH] Style Metrics/ModuleLength in spec file --- .rubocop_todo.yml | 1 - .../enterprise_fee_summary/authorizer_spec.rb | 327 +++++++++--------- 2 files changed, 162 insertions(+), 166 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6c6882e90f..cba531924f 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -161,7 +161,6 @@ Metrics/ModuleLength: - 'app/models/spree/order/checkout.rb' - 'app/models/spree/payment/processing.rb' - 'lib/open_food_network/column_preference_defaults.rb' - - 'spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb' - 'spec/lib/reports/order_cycle_management_report_spec.rb' - 'spec/lib/reports/products_and_inventory_report_spec.rb' - 'spec/lib/reports/users_and_enterprises_report_spec.rb' diff --git a/spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb b/spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb index 40b64ab74a..5e9edffc86 100644 --- a/spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb +++ b/spec/lib/reports/enterprise_fee_summary/authorizer_spec.rb @@ -2,178 +2,175 @@ require "spec_helper" -module Reporting - module Reports - module EnterpriseFeeSummary - RSpec.describe Authorizer do - let(:user) { create(:user) } +RSpec.describe Reporting::Reports::EnterpriseFeeSummary::Authorizer do + let(:user) { create(:user) } - let(:parameters) { Parameters.new(params) } - let(:permissions) { Permissions.new(user) } - let(:authorizer) { Authorizer.new(parameters, permissions) } + let(:parameters) { Reporting::Reports::EnterpriseFeeSummary::Parameters.new(params) } + let(:permissions) { Reporting::Reports::EnterpriseFeeSummary::Permissions.new(user) } + let(:authorizer) { described_class.new(parameters, permissions) } + let!(:parameter_not_allowed_error) do + Reporting::Reports::EnterpriseFeeSummary::ParameterNotAllowedError + end - context "for distributors" do - before do - allow(permissions).to receive(:allowed_distributors) do - stub_model_collection(Enterprise, :id, ["1", "2", "3"]) - end - end + context "for distributors" do + before do + allow(permissions).to receive(:allowed_distributors) do + stub_model_collection(Enterprise, :id, ["1", "2", "3"]) + end + end - context "when distributors are allowed" do - let(:params) { { distributor_ids: ["1", "3"] } } + context "when distributors are allowed" do + let(:params) { { distributor_ids: ["1", "3"] } } - it "does not raise error" do - expect { authorizer.authorize! }.not_to raise_error - end - end + it "does not raise error" do + expect { authorizer.authorize! }.not_to raise_error + end + end - context "when a distributor is not allowed" do - let(:params) { { distributor_ids: ["1", "4"] } } + context "when a distributor is not allowed" do + let(:params) { { distributor_ids: ["1", "4"] } } - it "raises ParameterNotAllowedError" do - expect { authorizer.authorize! } - .to raise_error(ParameterNotAllowedError) - end - end - end - - context "for producers" do - before do - allow(permissions).to receive(:allowed_producers) do - stub_model_collection(Enterprise, :id, ["1", "2", "3"]) - end - end - - context "when producers are allowed" do - let(:params) { { producer_ids: ["1", "3"] } } - - it "does not raise error" do - expect { authorizer.authorize! }.not_to raise_error - end - end - - context "when a producer is not allowed" do - let(:params) { { producer_ids: ["1", "4"] } } - - it "raises ParameterNotAllowedError" do - expect { authorizer.authorize! } - .to raise_error(ParameterNotAllowedError) - end - end - end - - context "for order cycles" do - before do - allow(permissions).to receive(:allowed_order_cycles) do - stub_model_collection(OrderCycle, :id, ["1", "2", "3"]) - end - end - - context "when order cycles are allowed" do - let(:params) { { order_cycle_ids: ["1", "3"] } } - - it "does not raise error" do - expect { authorizer.authorize! }.not_to raise_error - end - end - - context "when an order cycle is not allowed" do - let(:params) { { order_cycle_ids: ["1", "4"] } } - - it "raises ParameterNotAllowedError" do - expect { authorizer.authorize! } - .to raise_error(ParameterNotAllowedError) - end - end - end - - context "for enterprise fees" do - before do - allow(permissions).to receive(:allowed_enterprise_fees) do - stub_model_collection(EnterpriseFee, :id, ["1", "2", "3"]) - end - end - - context "when enterprise fees are allowed" do - let(:params) { { enterprise_fee_ids: ["1", "3"] } } - - it "does not raise error" do - expect { authorizer.authorize! }.not_to raise_error - end - end - - context "when an enterprise fee is not allowed" do - let(:params) { { enterprise_fee_ids: ["1", "4"] } } - - it "raises ParameterNotAllowedError" do - expect { authorizer.authorize! } - .to raise_error(ParameterNotAllowedError) - end - end - end - - context "for shipping methods" do - before do - allow(permissions).to receive(:allowed_shipping_methods) do - stub_model_collection(Spree::ShippingMethod, :id, ["1", "2", "3"]) - end - end - - context "when shipping methods are allowed" do - let(:params) { { shipping_method_ids: ["1", "3"] } } - - it "does not raise error" do - expect { authorizer.authorize! }.not_to raise_error - end - end - - context "when a shipping method is not allowed" do - let(:params) { { shipping_method_ids: ["1", "4"] } } - - it "raises ParameterNotAllowedError" do - expect { authorizer.authorize! } - .to raise_error(ParameterNotAllowedError) - end - end - end - - context "for payment methods" do - before do - allow(permissions).to receive(:allowed_payment_methods) do - stub_model_collection(Spree::PaymentMethod, :id, ["1", "2", "3"]) - end - end - - context "when payment methods are allowed" do - let(:params) { { payment_method_ids: ["1", "3"] } } - - it "does not raise error" do - expect { authorizer.authorize! }.not_to raise_error - end - end - - context "when a payment method is not allowed" do - let(:params) { { payment_method_ids: ["1", "4"] } } - - it "raises ParameterNotAllowedError" do - expect { authorizer.authorize! } - .to raise_error(ParameterNotAllowedError) - end - end - end - - def stub_model_collection(model, attribute_name, attribute_list) - attribute_list.map do |attribute_value| - stub_model(model, attribute_name => attribute_value) - end - end - - def stub_model(model, params) - model.new.tap do |instance| - allow(instance).to receive_messages(params) - end - end + it "raises ParameterNotAllowedError" do + expect { authorizer.authorize! } + .to raise_error(parameter_not_allowed_error) end end end + + context "for producers" do + before do + allow(permissions).to receive(:allowed_producers) do + stub_model_collection(Enterprise, :id, ["1", "2", "3"]) + end + end + + context "when producers are allowed" do + let(:params) { { producer_ids: ["1", "3"] } } + + it "does not raise error" do + expect { authorizer.authorize! }.not_to raise_error + end + end + + context "when a producer is not allowed" do + let(:params) { { producer_ids: ["1", "4"] } } + + it "raises parameter_not_allowed_error" do + expect { authorizer.authorize! } + .to raise_error(parameter_not_allowed_error) + end + end + end + + context "for order cycles" do + before do + allow(permissions).to receive(:allowed_order_cycles) do + stub_model_collection(OrderCycle, :id, ["1", "2", "3"]) + end + end + + context "when order cycles are allowed" do + let(:params) { { order_cycle_ids: ["1", "3"] } } + + it "does not raise error" do + expect { authorizer.authorize! }.not_to raise_error + end + end + + context "when an order cycle is not allowed" do + let(:params) { { order_cycle_ids: ["1", "4"] } } + + it "raises parameter_not_allowed_error" do + expect { authorizer.authorize! } + .to raise_error(parameter_not_allowed_error) + end + end + end + + context "for enterprise fees" do + before do + allow(permissions).to receive(:allowed_enterprise_fees) do + stub_model_collection(EnterpriseFee, :id, ["1", "2", "3"]) + end + end + + context "when enterprise fees are allowed" do + let(:params) { { enterprise_fee_ids: ["1", "3"] } } + + it "does not raise error" do + expect { authorizer.authorize! }.not_to raise_error + end + end + + context "when an enterprise fee is not allowed" do + let(:params) { { enterprise_fee_ids: ["1", "4"] } } + + it "raises parameter_not_allowed_error" do + expect { authorizer.authorize! } + .to raise_error(parameter_not_allowed_error) + end + end + end + + context "for shipping methods" do + before do + allow(permissions).to receive(:allowed_shipping_methods) do + stub_model_collection(Spree::ShippingMethod, :id, ["1", "2", "3"]) + end + end + + context "when shipping methods are allowed" do + let(:params) { { shipping_method_ids: ["1", "3"] } } + + it "does not raise error" do + expect { authorizer.authorize! }.not_to raise_error + end + end + + context "when a shipping method is not allowed" do + let(:params) { { shipping_method_ids: ["1", "4"] } } + + it "raises parameter_not_allowed_error" do + expect { authorizer.authorize! } + .to raise_error(parameter_not_allowed_error) + end + end + end + + context "for payment methods" do + before do + allow(permissions).to receive(:allowed_payment_methods) do + stub_model_collection(Spree::PaymentMethod, :id, ["1", "2", "3"]) + end + end + + context "when payment methods are allowed" do + let(:params) { { payment_method_ids: ["1", "3"] } } + + it "does not raise error" do + expect { authorizer.authorize! }.not_to raise_error + end + end + + context "when a payment method is not allowed" do + let(:params) { { payment_method_ids: ["1", "4"] } } + + it "raises parameter_not_allowed_error" do + expect { authorizer.authorize! } + .to raise_error(parameter_not_allowed_error) + end + end + end + + def stub_model_collection(model, attribute_name, attribute_list) + attribute_list.map do |attribute_value| + stub_model(model, attribute_name => attribute_value) + end + end + + def stub_model(model, params) + model.new.tap do |instance| + allow(instance).to receive_messages(params) + end + end end