require 'test_helper' module Workarea module Search class Admin class OrderTest < Workarea::TestCase def test_search_text_includes_discount_ids order = Workarea::Order.new(created_at: Time.current) order.items.build order.items.first.adjust_pricing(data: { 'discount_id' => '1' }) order.items.first.adjust_pricing(data: { 'discount_id' => '2' }) assert_includes(Order.new(order).search_text, '1') assert_includes(Order.new(order).search_text, '2') end def test_search_test_includes_shipping_address_info order = Workarea::Order.new(created_at: Time.current) Shipping.create!( order_id: order.id, address: { first_name: 'Ben', last_name: 'Crouse', street: '22 S. 3rd St.', city: 'Philadelphia', region: 'PA', postal_code: '19106', country: 'US', phone_number: '2159251800' } ) result = Order.new(order).search_text assert_includes(result, 'Ben') assert_includes(result, 'Crouse') assert_includes(result, '22 S. 3rd St.') assert_includes(result, 'Philadelphia') assert_includes(result, 'PA') assert_includes(result, '19106') assert_includes(result, 'US') assert_includes(result, '2159251800') end def test_includes_payment_address_info order = Workarea::Order.new(created_at: Time.current) Payment.create!( id: order.id, address: { first_name: 'Ben', last_name: 'Crouse', street: '22 S. 3rd St.', city: 'Philadelphia', region: 'PA', postal_code: '19106', country: 'US', phone_number: '2159251800' } ) result = Order.new(order).search_text assert_includes(result, 'Ben') assert_includes(result, 'Crouse') assert_includes(result, '22 S. 3rd St.') assert_includes(result, 'Philadelphia') assert_includes(result, 'PA') assert_includes(result, '19106') assert_includes(result, 'US') assert_includes(result, '2159251800') end def test_updated_at order = Workarea::Order.new(updated_at: Time.current) result = Order.new(order).updated_at assert_equal(order.updated_at.to_i, result.to_i) payment = Payment.find_or_create_by(id: order.id) fulfillment = Fulfillment.find_or_create_by(id: order.id) fulfillment.touch result = Order.new(order).updated_at assert_equal(fulfillment.updated_at.to_i, result.to_i) payment.touch result = Order.new(order).updated_at assert_equal(payment.updated_at.to_i, result.to_i) end def test_should_be_indexed order = create_order refute(Admin::Order.new(order).should_be_indexed?) order = create_order.tap(&:touch_checkout!) refute(Admin::Order.new(order).should_be_indexed?) order = create_placed_order assert(Admin::Order.new(order).should_be_indexed?) end end end end end