diff --git a/promotions/app/models/solidus_promotions/order_adjuster/discount_order.rb b/promotions/app/models/solidus_promotions/order_adjuster/discount_order.rb index 763778da7a..bf234b3c1a 100644 --- a/promotions/app/models/solidus_promotions/order_adjuster/discount_order.rb +++ b/promotions/app/models/solidus_promotions/order_adjuster/discount_order.rb @@ -14,7 +14,7 @@ def initialize(order, promotions, dry_run: false) def call return order if order.shipped? - SolidusPromotions::Promotion.ordered_lanes.each_key do |lane| + SolidusPromotions::Promotion.ordered_lanes.each do |lane| lane_promotions = promotions.select { |promotion| promotion.lane == lane } lane_benefits = eligible_benefits_for_promotable(lane_promotions.flat_map(&:benefits), order) perform_order_benefits(lane_benefits, lane) unless dry_run diff --git a/promotions/app/models/solidus_promotions/promotion.rb b/promotions/app/models/solidus_promotions/promotion.rb index 03a9c14560..3cc716fb6f 100644 --- a/promotions/app/models/solidus_promotions/promotion.rb +++ b/promotions/app/models/solidus_promotions/promotion.rb @@ -55,13 +55,13 @@ def self.human_enum_name(enum_name, enum_value) end def self.lane_options - ordered_lanes.map do |lane_name, _index| - [human_enum_name(:lane, lane_name), lane_name] + ordered_lanes.map do |lane| + [human_enum_name(:lane, lane), lane] end end def self.ordered_lanes - lanes.sort_by(&:last).to_h + lanes.keys.sort_by { |lane| lanes[lane] } end def self.order_activatable?(order) diff --git a/promotions/spec/models/solidus_promotions/promotion_spec.rb b/promotions/spec/models/solidus_promotions/promotion_spec.rb index 6d941eabf6..6787692785 100644 --- a/promotions/spec/models/solidus_promotions/promotion_spec.rb +++ b/promotions/spec/models/solidus_promotions/promotion_spec.rb @@ -112,7 +112,7 @@ describe ".ordered_lanes" do subject { described_class.ordered_lanes } - it { is_expected.to eq({ "pre" => 0, "default" => 1, "post" => 2 }) } + it { is_expected.to eq(%w[pre default post]) } end describe "validations" do