Sha256: 20f593bdd1140d5dd657987de5812a3f6e63041bd9f961b2f0ed5363fc863461

Contents?: true

Size: 1.62 KB

Versions: 62

Compression:

Stored size: 1.62 KB

Contents

require 'test_helper'

module Workarea
  class MarkDiscountsAsRedeemedTest < Workarea::TestCase
    setup do
      @product_discount = create_product_discount
      @shipping_discount = create_shipping_discount

      @order = Order.new
      @order.items.build(
        price_adjustments: [
          { data: { 'discount_id' => @product_discount.id } }
        ]
      )

      @shipping = Shipping.new
      @shipping.price_adjustments.build(
        { data: { 'discount_id' => @shipping_discount.id } }
      )
    end

    def test_marking_redemptions_for_orders_and_shippings
      MarkDiscountsAsRedeemed.new.mark_redeemed(@order, [@shipping])

      assert_equal(@product_discount.redemptions.count, 1)
      assert_equal(@shipping_discount.redemptions.count, 1)
    end

    def test_touching_the_discount
      current_value = @product_discount.updated_at
      travel_to(Time.current + 1.second)
      MarkDiscountsAsRedeemed.new.mark_redeemed(@order, [@shipping])
      @product_discount.reload

      assert_not_equal(current_value, @product_discount.updated_at)
    end

    def test_apply_first_promo_code_matching_discount
      code_list = create_code_list(count: 5).tap(&:generate_promo_codes!)
      first_promo_code = code_list.promo_codes.first
      second_promo_code = code_list.promo_codes.second
      @order.promo_codes = [first_promo_code, second_promo_code].map(&:code)

      @product_discount.update!(generated_codes_id: code_list.id)
      MarkDiscountsAsRedeemed.new.mark_redeemed(@order, [@shipping])

      assert(first_promo_code.reload.used_at.present?)
      refute(second_promo_code.reload.used_at.present?)
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.5.27 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.26 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.45 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.25 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.23 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.44 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.22 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.43 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.21 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.42 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.20 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.41 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.19 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.40 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.18 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.39 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.17 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.38 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.5.16 test/workers/workarea/mark_discounts_as_redeemed_test.rb
workarea-core-3.4.37 test/workers/workarea/mark_discounts_as_redeemed_test.rb