mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Update OrderAvailableShippingMethods service
This commit is contained in:
@@ -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|
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user