Sha256: 3d990a66e638590efbfdecdcfca4292debe77a05a47555dad6e87ec369dd871e

Contents?: true

Size: 1.83 KB

Versions: 27

Compression:

Stored size: 1.83 KB

Contents

require 'test_helper'

module Workarea
  class OrderItemDetailsTest < Workarea::TestCase
    def test_find_bang_without_product
      assert_raises OrderItemDetails::InvalidPurchase do
        OrderItemDetails.find!('SKU1')
      end
    end

    def test_find_without_product
      assert_nil(OrderItemDetails.find('SKU1'))
    end

    def test_fulfillment
      product = create_product(variants: [{ sku: 'SKU', regular: 5.00 }])
      assert_equal('shipping', OrderItemDetails.find('SKU').to_h[:fulfillment])

      sku = create_fulfillment_sku(id: 'SKU', policy: 'download', file: product_image_file)
      assert_equal('download', OrderItemDetails.find('SKU').to_h[:fulfillment])
    end

    def test_to_h
      product = create_product(id: "840B898080", variants: [{ sku: 'SKU', regular: 5.00 }])
      # we lose time precision on created_at/updated_at when storing in the database
      # reload the product to truncate the timestamps
      product.reload
      details = OrderItemDetails.find!('SKU').to_h

      assert_equal("840B898080", details[:product_id])
      assert_equal(product.as_document, details[:product_attributes])
    end


    def test_shared_sku_products
      product = create_product(id: "840B898080", variants: [{ sku: 'SKU', regular: 5.00 }])
      product.reload
      Catalog::Product.create!(id: "840B898081", name: "Product Test", variants: [{ sku: "SKU" }])

      details = OrderItemDetails.find!('SKU', product_id: "840B898080").to_h

      assert_equal("840B898080", details[:product_id])
      assert_equal(product.as_document, details[:product_attributes])

      product = Catalog::Product.find("840B898081")
      details = OrderItemDetails.find!('SKU', product_id: "840B898081").to_h

      assert_equal("840B898081", details[:product_id])
      assert_equal(product.as_document, details[:product_attributes])
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
workarea-core-3.5.27 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.26 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.25 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.23 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.22 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.21 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.20 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.19 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.18 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.17 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.16 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.15 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.14 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.13 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.12 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.11 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.10 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.9 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.8 test/queries/workarea/order_item_details_test.rb
workarea-core-3.5.7 test/queries/workarea/order_item_details_test.rb