discount_code_test.rb 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. require 'test_helper'
  2. class DiscountCodeTest < Test::Unit::TestCase
  3. def setup
  4. super
  5. fake 'price_rules/102586120/discount_codes/1002091923', body: load_fixture('discount_code')
  6. @discount_code = ShopifyAPI::DiscountCode.find(1002091923, params: {price_rule_id: 102586120})
  7. end
  8. def test_get_discount_code
  9. fake 'price_rules/102586120/discount_codes', method: :get, status: 200, body: load_fixture('discount_code')
  10. discount_code = ShopifyAPI::DiscountCode.find 1002091923, params: { price_rule_id: 102586120 }
  11. assert_equal 1002091923, discount_code.id
  12. end
  13. def test_get_all_discount_codes
  14. fake 'price_rules/102586120/discount_codes', method: :get, status: 200, body: load_fixture('discount_codes')
  15. discount_codes = ShopifyAPI::DiscountCode.all params: { price_rule_id: 102586120 }
  16. assert_equal 1, discount_codes.length
  17. assert_equal 1002091923, discount_codes.first.id
  18. end
  19. def test_create_discount_code
  20. fake 'price_rules/102586120/discount_codes', method: :post, status: 201, body: load_fixture('discount_code')
  21. discount_code = ShopifyAPI::DiscountCode.new
  22. discount_code.prefix_options[:price_rule_id] = 102586120
  23. discount_code.code = "SUMMERSALE10"
  24. discount_code.save
  25. assert_equal '{"discount_code":{"code":"SUMMERSALE10"}}', WebMock.last_request.body
  26. end
  27. def test_update_discount_code
  28. discount_code_response = ActiveSupport::JSON.decode(load_fixture('discount_code'))
  29. discount_code_response['discount_code']['code'] = "WINTERSALE50"
  30. @discount_code.code = "WINTERSALE50"
  31. fake 'price_rules/102586120/discount_codes/1002091923', method: :put, status: 200, body: ActiveSupport::JSON.encode(discount_code_response)
  32. @discount_code.save
  33. assert_equal discount_code_response['discount_code']['code'], @discount_code.code
  34. end
  35. def test_delete_discount_code
  36. fake 'price_rules/102586120/discount_codes/1002091923', method: :delete, body: 'destroyed'
  37. assert @discount_code.destroy
  38. end
  39. end