Sha256: 5bcd4935ec3a89b176a5b841d7b7fcd218798aaa1aee42e502b3ca37dbb565e3
Contents?: true
Size: 1.97 KB
Versions: 2
Compression:
Stored size: 1.97 KB
Contents
require 'test_helper' module Workarea module Yotpo class OrderTest < Workarea::TestCase def test_to_h _order_total_discount = create_order_total_discount(order_total: 1.to_m) order = create_placed_order hash = Order.new(order.id).to_h assert_equal(order.total_price.currency.iso_code, hash[:currency_iso]) assert_equal(order.email, hash[:email]) assert_equal(order.id, hash[:order_id]) item = Workarea::Storefront::OrderItemViewModel.new(order.items.first) hash_product = hash[:products][item.product_id] assert(hash[:products][item.product_id].present?) assert_equal(hash_product[:description], item.product.description) assert_equal(hash_product[:name], item.product.name) assert_equal(hash_product[:price], item.original_price.to_s) end private def create_placed_order(overrides = {}) attributes = factory_defaults(:placed_order).merge(overrides) shipping_service = create_shipping_service sku = 'SKU' create_product(description: "test description", variants: [{ sku: sku, regular: 5.to_m }]) details = OrderItemDetails.find(sku) order = Workarea::Order.new(attributes) item = { sku: sku, quantity: 2 }.merge(details.to_h) order.add_item(item) checkout = Checkout.new(order) checkout.update( factory_defaults(:checkout_payment).merge( shipping_address: factory_defaults(:shipping_address), billing_address: factory_defaults(:billing_address), shipping_service: shipping_service.name, ) ) unless checkout.place_order raise( UnplacedOrderError, 'failed placing the order in the create_placed_order factory' ) end forced_attrs = overrides.slice(:placed_at, :update_at, :total_price) order.update_attributes!(forced_attrs) order end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
workarea-yotpo-1.0.1 | test/services/yotpo/order_test.rb |
workarea-yotpo-1.0.0 | test/services/yotpo/order_test.rb |