Update OrderAvailableShippingMethods service

This commit is contained in:
Matt-Yorkley
2023-07-15 17:31:39 +01:00
parent a712eac333
commit 42d04b6581
2 changed files with 4 additions and 8 deletions

View File

@@ -3,9 +3,7 @@
class OrderAvailableShippingMethods
attr_reader :order, :customer
delegate :distributor,
:order_cycle,
to: :order
delegate :distributor, :order_cycle, to: :order
def initialize(order, customer = nil)
@order, @customer = order, customer
@@ -23,7 +21,7 @@ class OrderAvailableShippingMethods
return methods unless OpenFoodNetwork::FeatureToggle.enabled?(:match_shipping_categories,
distributor&.owner)
required_category_ids = order.products.pluck(:shipping_category_id).to_set
required_category_ids = order.variants.pluck(:shipping_category_id).to_set
return methods if required_category_ids.empty?
methods.select do |method|

View File

@@ -217,9 +217,7 @@ describe OrderAvailableShippingMethods do
context "when certain shipping categories are required" do
subject { OrderAvailableShippingMethods.new(order) }
let(:order) {
build(:order, distributor: distributor, order_cycle: oc)
}
let(:order) { build(:order, distributor: distributor, order_cycle: oc) }
let(:oc) { create(:order_cycle) }
let(:distributor) { oc.distributors.first }
let(:standard_shipping) {
@@ -249,7 +247,7 @@ describe OrderAvailableShippingMethods do
it "filters shipping methods for products needing refrigeration" do
product = oc.products.first
product.update!(shipping_category: refrigerated)
product.variants.first.update!(shipping_category: refrigerated)
order.line_items << build(:line_item, variant: product.variants.first)
expect(subject.to_a).to eq [cooled_shipping]
end