shopify_api 9.0.2 → 9.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +36 -0
  3. data/.github/workflows/build.yml +41 -0
  4. data/.gitignore +2 -1
  5. data/.rubocop.yml +23 -3
  6. data/.rubocop_todo.yml +75 -0
  7. data/CHANGELOG.md +43 -0
  8. data/CONTRIBUTING.md +1 -1
  9. data/Gemfile +5 -0
  10. data/Gemfile.lock +151 -0
  11. data/Gemfile_ar51 +1 -1
  12. data/README.md +47 -31
  13. data/RELEASING +10 -6
  14. data/Rakefile +16 -5
  15. data/SECURITY.md +59 -0
  16. data/docs/_config.yml +1 -0
  17. data/docs/_includes/footer.html +28 -0
  18. data/docs/_includes/head.html +28 -0
  19. data/docs/_layouts/index.html +57 -0
  20. data/docs/graphql.md +47 -2
  21. data/docs/index.md +639 -0
  22. data/lib/active_resource/connection_ext.rb +1 -0
  23. data/lib/active_resource/detailed_log_subscriber.rb +6 -7
  24. data/lib/active_resource/json_errors.rb +8 -2
  25. data/lib/shopify_api.rb +8 -1
  26. data/lib/shopify_api/api_access.rb +57 -0
  27. data/lib/shopify_api/api_version.rb +6 -5
  28. data/lib/shopify_api/connection.rb +1 -0
  29. data/lib/shopify_api/countable.rb +3 -2
  30. data/lib/shopify_api/disable_prefix_check.rb +2 -2
  31. data/lib/shopify_api/events.rb +2 -1
  32. data/lib/shopify_api/graphql.rb +28 -8
  33. data/lib/shopify_api/limits.rb +3 -2
  34. data/lib/shopify_api/message_enricher.rb +11 -9
  35. data/lib/shopify_api/meta.rb +0 -1
  36. data/lib/shopify_api/metafields.rb +5 -4
  37. data/lib/shopify_api/pagination_link_headers.rb +5 -4
  38. data/lib/shopify_api/resources.rb +1 -0
  39. data/lib/shopify_api/resources/access_scope.rb +1 -1
  40. data/lib/shopify_api/resources/access_token.rb +1 -0
  41. data/lib/shopify_api/resources/address.rb +1 -0
  42. data/lib/shopify_api/resources/announcement.rb +2 -1
  43. data/lib/shopify_api/resources/application_charge.rb +1 -0
  44. data/lib/shopify_api/resources/application_credit.rb +1 -0
  45. data/lib/shopify_api/resources/article.rb +3 -2
  46. data/lib/shopify_api/resources/asset.rb +6 -5
  47. data/lib/shopify_api/resources/assigned_fulfillment_order.rb +1 -1
  48. data/lib/shopify_api/resources/base.rb +12 -8
  49. data/lib/shopify_api/resources/billing_address.rb +1 -0
  50. data/lib/shopify_api/resources/blog.rb +2 -1
  51. data/lib/shopify_api/resources/carrier_service.rb +1 -0
  52. data/lib/shopify_api/resources/cart.rb +2 -1
  53. data/lib/shopify_api/resources/collect.rb +1 -0
  54. data/lib/shopify_api/resources/collection_listing.rb +1 -0
  55. data/lib/shopify_api/resources/comment.rb +20 -5
  56. data/lib/shopify_api/resources/country.rb +1 -0
  57. data/lib/shopify_api/resources/custom_collection.rb +4 -3
  58. data/lib/shopify_api/resources/customer.rb +2 -1
  59. data/lib/shopify_api/resources/customer_group.rb +1 -0
  60. data/lib/shopify_api/resources/customer_invite.rb +1 -0
  61. data/lib/shopify_api/resources/customer_saved_search.rb +2 -1
  62. data/lib/shopify_api/resources/discount_code.rb +1 -0
  63. data/lib/shopify_api/resources/discount_code_batch.rb +34 -0
  64. data/lib/shopify_api/resources/draft_order.rb +1 -0
  65. data/lib/shopify_api/resources/draft_order_invoice.rb +1 -0
  66. data/lib/shopify_api/resources/event.rb +1 -0
  67. data/lib/shopify_api/resources/fulfillment.rb +12 -3
  68. data/lib/shopify_api/resources/fulfillment_event.rb +1 -0
  69. data/lib/shopify_api/resources/fulfillment_order.rb +30 -16
  70. data/lib/shopify_api/resources/fulfillment_order_locations_for_move.rb +1 -0
  71. data/lib/shopify_api/resources/fulfillment_request.rb +1 -0
  72. data/lib/shopify_api/resources/fulfillment_service.rb +1 -0
  73. data/lib/shopify_api/resources/fulfillment_v2.rb +3 -2
  74. data/lib/shopify_api/resources/gift_card.rb +1 -0
  75. data/lib/shopify_api/resources/image.rb +2 -1
  76. data/lib/shopify_api/resources/inventory_level.rb +3 -4
  77. data/lib/shopify_api/resources/line_item.rb +4 -3
  78. data/lib/shopify_api/resources/location.rb +1 -1
  79. data/lib/shopify_api/resources/marketing_event.rb +1 -0
  80. data/lib/shopify_api/resources/metafield.rb +1 -0
  81. data/lib/shopify_api/resources/note_attribute.rb +1 -0
  82. data/lib/shopify_api/resources/option.rb +1 -0
  83. data/lib/shopify_api/resources/order.rb +2 -1
  84. data/lib/shopify_api/resources/order_risk.rb +1 -0
  85. data/lib/shopify_api/resources/page.rb +1 -0
  86. data/lib/shopify_api/resources/payment_details.rb +1 -0
  87. data/lib/shopify_api/resources/policy.rb +1 -0
  88. data/lib/shopify_api/resources/price_rule.rb +1 -1
  89. data/lib/shopify_api/resources/product.rb +27 -3
  90. data/lib/shopify_api/resources/product_listing.rb +1 -0
  91. data/lib/shopify_api/resources/province.rb +1 -0
  92. data/lib/shopify_api/resources/receipt.rb +1 -0
  93. data/lib/shopify_api/resources/recurring_application_charge.rb +4 -1
  94. data/lib/shopify_api/resources/redirect.rb +1 -0
  95. data/lib/shopify_api/resources/refund.rb +2 -1
  96. data/lib/shopify_api/resources/report.rb +1 -0
  97. data/lib/shopify_api/resources/resource_feedback.rb +1 -1
  98. data/lib/shopify_api/resources/rule.rb +1 -0
  99. data/lib/shopify_api/resources/script_tag.rb +1 -0
  100. data/lib/shopify_api/resources/shipping_address.rb +1 -0
  101. data/lib/shopify_api/resources/shipping_line.rb +1 -0
  102. data/lib/shopify_api/resources/shipping_zone.rb +1 -0
  103. data/lib/shopify_api/resources/shop.rb +2 -1
  104. data/lib/shopify_api/resources/smart_collection.rb +4 -8
  105. data/lib/shopify_api/resources/storefront_access_token.rb +1 -0
  106. data/lib/shopify_api/resources/tax_line.rb +1 -0
  107. data/lib/shopify_api/resources/tax_service.rb +1 -0
  108. data/lib/shopify_api/resources/theme.rb +1 -0
  109. data/lib/shopify_api/resources/transaction.rb +1 -0
  110. data/lib/shopify_api/resources/usage_charge.rb +1 -0
  111. data/lib/shopify_api/resources/user.rb +1 -0
  112. data/lib/shopify_api/resources/variant.rb +35 -0
  113. data/lib/shopify_api/resources/webhook.rb +1 -0
  114. data/lib/shopify_api/session.rb +43 -14
  115. data/lib/shopify_api/version.rb +2 -1
  116. data/lib/verify_docs.rb +8 -0
  117. data/service.yml +1 -1
  118. data/shopify_api.gemspec +13 -6
  119. data/test/access_token_test.rb +6 -5
  120. data/test/active_resource/json_errors_test.rb +6 -6
  121. data/test/api_access_test.rb +153 -0
  122. data/test/api_version_test.rb +3 -3
  123. data/test/application_charge_test.rb +30 -27
  124. data/test/application_credit_test.rb +10 -9
  125. data/test/article_test.rb +34 -35
  126. data/test/asset_test.rb +14 -6
  127. data/test/assigned_fulfillment_order_test.rb +5 -4
  128. data/test/base_test.rb +64 -49
  129. data/test/blog_test.rb +4 -3
  130. data/test/carrier_service_test.rb +7 -6
  131. data/test/cart_test.rb +2 -1
  132. data/test/collect_test.rb +4 -3
  133. data/test/collection_listing_test.rb +21 -16
  134. data/test/collection_publication_test.rb +8 -8
  135. data/test/collection_test.rb +20 -19
  136. data/test/countable_test.rb +3 -2
  137. data/test/currency_test.rb +5 -5
  138. data/test/custom_collection_test.rb +4 -3
  139. data/test/customer_saved_search_test.rb +18 -8
  140. data/test/customer_test.rb +22 -14
  141. data/test/detailed_log_subscriber_test.rb +15 -11
  142. data/test/discount_code_batch_test.rb +41 -0
  143. data/test/discount_code_test.rb +21 -15
  144. data/test/draft_order_test.rb +68 -52
  145. data/test/fixtures/assigned_fulfillment_orders.json +2 -0
  146. data/test/fixtures/discount_code_batch.json +14 -0
  147. data/test/fixtures/discount_code_batch_discount_codes.json +21 -0
  148. data/test/fixtures/fulfillment_order.json +1 -0
  149. data/test/fixtures/fulfillment_orders.json +2 -0
  150. data/test/fulfillment_event_test.rb +31 -26
  151. data/test/fulfillment_order_test.rb +215 -147
  152. data/test/fulfillment_order_test_helper.rb +1 -0
  153. data/test/fulfillment_request_test.rb +10 -8
  154. data/test/fulfillment_service_test.rb +13 -12
  155. data/test/fulfillment_test.rb +81 -66
  156. data/test/fulfillment_v2_test.rb +16 -12
  157. data/test/gift_card_test.rb +6 -4
  158. data/test/graphql_test.rb +55 -23
  159. data/test/image_test.rb +19 -17
  160. data/test/inventory_level_test.rb +24 -15
  161. data/test/lib/webmock_extensions/last_request.rb +1 -1
  162. data/test/limits_test.rb +2 -1
  163. data/test/location_test.rb +2 -1
  164. data/test/marketing_event_test.rb +20 -20
  165. data/test/message_enricher_test.rb +6 -6
  166. data/test/meta_test.rb +7 -9
  167. data/test/metafield_test.rb +30 -20
  168. data/test/order_risk_test.rb +17 -16
  169. data/test/order_test.rb +43 -28
  170. data/test/pagination_test.rb +89 -56
  171. data/test/policy_test.rb +6 -5
  172. data/test/price_rule_test.rb +20 -15
  173. data/test/product_listing_test.rb +20 -20
  174. data/test/product_publication_test.rb +8 -8
  175. data/test/product_test.rb +71 -20
  176. data/test/publication_test.rb +3 -3
  177. data/test/recurring_application_charge_test.rb +104 -42
  178. data/test/redirect_test.rb +4 -3
  179. data/test/refund_test.rb +22 -17
  180. data/test/report_test.rb +12 -10
  181. data/test/resource_feedback_test.rb +14 -13
  182. data/test/script_tag_test.rb +10 -9
  183. data/test/session_test.rb +234 -43
  184. data/test/shipping_zone_test.rb +4 -3
  185. data/test/shop_test.rb +47 -33
  186. data/test/smart_collection_test.rb +5 -29
  187. data/test/storefront_access_token_test.rb +13 -15
  188. data/test/tax_service_test.rb +7 -4
  189. data/test/tender_transaction_test.rb +3 -3
  190. data/test/test_helper.rb +14 -12
  191. data/test/transaction_test.rb +4 -3
  192. data/test/usage_charge_test.rb +12 -8
  193. data/test/user_test.rb +4 -3
  194. data/test/variant_test.rb +50 -23
  195. data/test/webhook_test.rb +10 -7
  196. metadata +30 -15
  197. data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +0 -1027
  198. data/.travis.yml +0 -23
  199. data/bin/shopify +0 -3
@@ -1,39 +1,41 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class ImageTest < Test::Unit::TestCase
4
5
  def test_create_image
5
- fake "products/632910392/images", :method => :post, :body => load_fixture('image')
6
- image = ShopifyAPI::Image.new(:product_id => 632910392)
6
+ fake("products/632910392/images", method: :post, body: load_fixture('image'))
7
+ image = ShopifyAPI::Image.new(product_id: 632910392)
7
8
  image.position = 1
8
- image.attachment = "R0lGODlhbgCMAPf/APbr48VySrxTO7IgKt2qmKQdJeK8lsFjROG5p/nz7Zg3MNmnd7Q1MLNVS9GId71hSJMZIuzTu4UtKbeEeakhKMl8U8WYjfr18YQaIbAf=="
9
+ image.attachment = "R0lGODlhbgCMAPf/APbr48VySrxTO7IgKt2qmKQdJeK8lsFjROG5p/nz7Zg3MN" \
10
+ "mnd7Q1MLNVS9GId71hSJMZIuzTu4UtKbeEeakhKMl8U8WYjfr18YQaIbAf=="
9
11
  image.save
10
12
 
11
- assert_equal 'http://cdn.shopify.com/s/files/1/0006/9093/3842/products/ipod-nano.png?v=1389388540', image.src
12
- assert_equal 850703190, image.id
13
+ assert_equal('http://cdn.shopify.com/s/files/1/0006/9093/3842/products/ipod-nano.png?v=1389388540', image.src)
14
+ assert_equal(850703190, image.id)
13
15
  end
14
16
 
15
17
  def test_get_images
16
- fake "products/632910392/images", :method => :get, :body => load_fixture('images')
17
- image = ShopifyAPI::Image.find(:all, :params => {:product_id => 632910392})
18
- assert_equal 2, image.size
18
+ fake("products/632910392/images", method: :get, body: load_fixture('images'))
19
+ image = ShopifyAPI::Image.find(:all, params: { product_id: 632910392 })
20
+ assert_equal(2, image.size)
19
21
  end
20
22
 
21
23
  def test_get_image
22
- fake "products/632910392/images/850703190", :method => :get, :body => load_fixture('image')
23
- image = ShopifyAPI::Image.find(850703190, :params => {:product_id => 632910392})
24
- assert_equal 850703190, image.id
24
+ fake("products/632910392/images/850703190", method: :get, body: load_fixture('image'))
25
+ image = ShopifyAPI::Image.find(850703190, params: { product_id: 632910392 })
26
+ assert_equal(850703190, image.id)
25
27
  end
26
28
 
27
29
  def test_delete_image
28
- fake "products/632910392/images/850703190", :method => :get, :body => load_fixture('image')
29
- fake "products/632910392/images/850703190", :method => :delete, :body => "destroyed"
30
- image = ShopifyAPI::Image.find(850703190, :params => {:product_id => 632910392})
31
- assert image.destroy
30
+ fake("products/632910392/images/850703190", method: :get, body: load_fixture('image'))
31
+ fake("products/632910392/images/850703190", method: :delete, body: "destroyed")
32
+ image = ShopifyAPI::Image.find(850703190, params: { product_id: 632910392 })
33
+ assert(image.destroy)
32
34
  end
33
35
 
34
36
  def test_delete_image_without_fetching
35
- fake "products/632910392/images/850703190", :method => :delete, :body => "destroyed"
37
+ fake("products/632910392/images/850703190", method: :delete, body: "destroyed")
36
38
  image = ShopifyAPI::Image.new(product_id: 632910392, id: 850703190)
37
- assert image.destroy
39
+ assert(image.destroy)
38
40
  end
39
41
  end
@@ -1,22 +1,31 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class InventoryLevelTest < Test::Unit::TestCase
4
5
  def setup
5
6
  super
6
- @inventory_level_response = ActiveSupport::JSON.decode load_fixture('inventory_level')
7
+ @inventory_level_response = ActiveSupport::JSON.decode(load_fixture('inventory_level'))
7
8
  @inventory_level = ShopifyAPI::InventoryLevel.new(@inventory_level_response['inventory_level'])
8
9
  end
9
10
 
10
11
  test ".find with inventory_item_ids and location_ids returns expected inventory levels" do
11
12
  params = { inventory_item_ids: [808950810, 39072856], location_ids: [905684977, 487838322] }
12
- fake "inventory_levels.json?#{params.to_param}", extension: false, method: :get,
13
- status: 200, body: load_fixture('inventory_levels')
13
+ fake(
14
+ "inventory_levels.json?#{params.to_param}",
15
+ extension: false,
16
+ method: :get,
17
+ status: 200,
18
+ body: load_fixture('inventory_levels')
19
+ )
14
20
  inventory_levels = ShopifyAPI::InventoryLevel.find(:all, params: params)
15
21
 
16
- assert inventory_levels.all? { |item|
17
- params[:location_ids].include?(item.location_id) &&
18
- params[:inventory_item_ids].include?(item.inventory_item_id)
19
- }, message: 'Response contained inventory_items or locations not requested.'
22
+ assert(
23
+ inventory_levels.all? do |item|
24
+ params[:location_ids].include?(item.location_id) &&
25
+ params[:inventory_item_ids].include?(item.inventory_item_id)
26
+ end,
27
+ message: 'Response contained inventory_items or locations not requested.'
28
+ )
20
29
  end
21
30
 
22
31
  test '#adjust with adjustment value returns inventory_level with available increased by adjustment value' do
@@ -24,9 +33,9 @@ class InventoryLevelTest < Test::Unit::TestCase
24
33
  updated_available = @inventory_level.available + adjustment
25
34
  @inventory_level_response[:available] = updated_available
26
35
 
27
- fake 'inventory_levels/adjust', method: :post, body: ActiveSupport::JSON.encode(@inventory_level_response)
36
+ fake('inventory_levels/adjust', method: :post, body: ActiveSupport::JSON.encode(@inventory_level_response))
28
37
  @inventory_level.adjust(adjustment)
29
- assert_equal updated_available, @inventory_level.available
38
+ assert_equal(updated_available, @inventory_level.available)
30
39
  end
31
40
 
32
41
  test '#connect saves an inventory_level associated with inventory_item and location_id' do
@@ -34,16 +43,16 @@ class InventoryLevelTest < Test::Unit::TestCase
34
43
  response = params.clone
35
44
  response[:available] = 0
36
45
 
37
- fake 'inventory_levels/connect', method: :post, body: ActiveSupport::JSON.encode(response)
46
+ fake('inventory_levels/connect', method: :post, body: ActiveSupport::JSON.encode(response))
38
47
  inventory_level = ShopifyAPI::InventoryLevel.new(params)
39
48
  inventory_level.connect
40
- assert_equal 0, inventory_level.available, message: 'expected newly connected location to have 0 inventory'
49
+ assert_equal(0, inventory_level.available, message: 'expected newly connected location to have 0 inventory')
41
50
  end
42
51
 
43
52
  test '#destroy removes inventory_level and returns nil' do
44
53
  params = { inventory_item_id: @inventory_level.inventory_item_id, location_id: @inventory_level.location_id }
45
- fake "inventory_levels.json?#{params.to_param}", extension: false, method: :delete, status: 204, body: nil
46
- assert_nil @inventory_level.destroy
54
+ fake("inventory_levels.json?#{params.to_param}", extension: false, method: :delete, status: 204, body: nil)
55
+ assert_nil(@inventory_level.destroy)
47
56
  end
48
57
 
49
58
  test '#set with available value returns inventory_level with available as the available value' do
@@ -51,9 +60,9 @@ class InventoryLevelTest < Test::Unit::TestCase
51
60
  response = @inventory_level_response.clone
52
61
  response['inventory_level']['available'] = available
53
62
 
54
- fake 'inventory_levels/set', method: :post, body: ActiveSupport::JSON.encode(response)
63
+ fake('inventory_levels/set', method: :post, body: ActiveSupport::JSON.encode(response))
55
64
  @inventory_level.set(available)
56
65
 
57
- assert_equal available, @inventory_level.available
66
+ assert_equal(available, @inventory_level.available)
58
67
  end
59
68
  end
@@ -11,6 +11,6 @@ module LastRequest
11
11
  end
12
12
 
13
13
  WebMock.extend(LastRequest)
14
- WebMock.after_request do |request_signature, response|
14
+ WebMock.after_request do |request_signature, _response|
15
15
  WebMock.last_request = request_signature
16
16
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class LimitsTest < Test::Unit::TestCase
@@ -30,7 +31,7 @@ class LimitsTest < Test::Unit::TestCase
30
31
  should "raise error when header doesn't exist" do
31
32
  @header_hash = {}
32
33
  ShopifyAPI::Base.connection.expects(:response).at_least(1).returns(@header_hash)
33
- assert_raises ShopifyAPI::Limits::LimitUnavailable do
34
+ assert_raises(ShopifyAPI::Limits::LimitUnavailable) do
34
35
  ShopifyAPI.credit_left
35
36
  end
36
37
  end
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class LocationTest < Test::Unit::TestCase
4
5
  test '#inventory_levels returns all inventory_levels associated with this location' do
5
6
  location = ShopifyAPI::Location.new(id: 487838322)
6
7
  expected_body = JSON.parse(load_fixture('inventory_levels'))
7
- expected_body['inventory_levels'].delete_if {|level| level['location_id'] != location.id }
8
+ expected_body['inventory_levels'].delete_if { |level| level['location_id'] != location.id }
8
9
  fake "locations/#{location.id}/inventory_levels", method: :get, status: 200, body: JSON(expected_body).to_s
9
10
  inventory_levels = location.inventory_levels
10
11
 
@@ -1,56 +1,56 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class MarketingEventTest < Test::Unit::TestCase
4
-
5
5
  def test_get_marketing_events
6
- fake "marketing_events", :method => :get, :body => load_fixture('marketing_events')
6
+ fake("marketing_events", method: :get, body: load_fixture('marketing_events'))
7
7
  marketing_events = ShopifyAPI::MarketingEvent.all
8
- assert_equal 2, marketing_events.size
8
+ assert_equal(2, marketing_events.size)
9
9
  end
10
10
 
11
11
  def test_get_marketing_event
12
- fake "marketing_events/1", :method => :get, :body => load_fixture('marketing_event')
12
+ fake("marketing_events/1", method: :get, body: load_fixture('marketing_event'))
13
13
  marketing_event = ShopifyAPI::MarketingEvent.find(1)
14
- assert_equal 1, marketing_event.id
14
+ assert_equal(1, marketing_event.id)
15
15
  end
16
16
 
17
17
  def test_create_marketing_event
18
- fake "marketing_events", :method => :post, :body => load_fixture('marketing_event')
18
+ fake("marketing_events", method: :post, body: load_fixture('marketing_event'))
19
19
  marketing_event = ShopifyAPI::MarketingEvent.new
20
20
  marketing_event.currency_code = 'GBP'
21
21
  marketing_event.event_target = 'facebook'
22
22
  marketing_event.event_type = 'post'
23
23
  marketing_event.save
24
24
 
25
- assert_equal 'facebook', marketing_event.event_target
26
- assert_equal 1, marketing_event.id
25
+ assert_equal('facebook', marketing_event.event_target)
26
+ assert_equal(1, marketing_event.id)
27
27
  end
28
28
 
29
29
  def test_delete_marketing_event
30
- fake "marketing_events/1", :method => :get, :body => load_fixture('marketing_event')
31
- fake "marketing_events/1", :method => :delete, :body => "destroyed"
30
+ fake("marketing_events/1", method: :get, body: load_fixture('marketing_event'))
31
+ fake("marketing_events/1", method: :delete, body: "destroyed")
32
32
  marketing_event = ShopifyAPI::MarketingEvent.find(1)
33
- assert marketing_event.destroy
33
+ assert(marketing_event.destroy)
34
34
  end
35
35
 
36
36
  def test_update_marketing_event
37
- fake 'marketing_events/1', :method => :get, :status => 200, :body => load_fixture('marketing_event')
37
+ fake('marketing_events/1', method: :get, status: 200, body: load_fixture('marketing_event'))
38
38
  marketing_event = ShopifyAPI::MarketingEvent.find(1)
39
39
  marketing_event.currency = 'USD'
40
- fake 'marketing_events/1', :method => :put, :status => 200, :body => load_fixture('marketing_event')
41
- assert marketing_event.save
40
+ fake('marketing_events/1', method: :put, status: 200, body: load_fixture('marketing_event'))
41
+ assert(marketing_event.save)
42
42
  end
43
43
 
44
44
  def test_count_marketing_events
45
- fake "marketing_events/count", :method => :get, :body => '{"count": 2}'
45
+ fake("marketing_events/count", method: :get, body: '{"count": 2}')
46
46
  marketing_events_count = ShopifyAPI::MarketingEvent.count
47
- assert_equal 2, marketing_events_count
47
+ assert_equal(2, marketing_events_count)
48
48
  end
49
49
 
50
50
  def test_add_engagements
51
- fake "marketing_events/1", method: :get, body: load_fixture('marketing_event')
51
+ fake("marketing_events/1", method: :get, body: load_fixture('marketing_event'))
52
52
  marketing_event = ShopifyAPI::MarketingEvent.find(1)
53
- fake "marketing_events/1/engagements", method: :post, status: 201, body: load_fixture('engagement')
53
+ fake("marketing_events/1/engagements", method: :post, status: 201, body: load_fixture('engagement'))
54
54
  engagement = {
55
55
  occurred_on: "2017-04-20",
56
56
  impressions_count: nil,
@@ -60,9 +60,9 @@ class MarketingEventTest < Test::Unit::TestCase
60
60
  favorites_count: nil,
61
61
  comments_count: nil,
62
62
  ad_spend: nil,
63
- is_cumulative: true
63
+ is_cumulative: true,
64
64
  }
65
65
  marketing_event.add_engagements(engagement)
66
- assert "2017-04-20", engagement[:occurred_on]
66
+ assert("2017-04-20", engagement[:occurred_on])
67
67
  end
68
68
  end
@@ -1,35 +1,35 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class MessageEnricherTest < Test::Unit::TestCase
4
-
5
5
  def test_enriches_initial_message_when_body_contains_error
6
6
  response = enriched_response(422, 'InitialMessage', { error: 'My Error' })
7
7
 
8
- assert_equal 'InitialMessage (My Error)', response.message
8
+ assert_equal('InitialMessage (My Error)', response.message)
9
9
  end
10
10
 
11
11
  def test_enriches_initial_message_when_body_contains_errors_array
12
12
  response = enriched_response(422, 'InitialMessage', { errors: ['My Error1', 'My Error2'] })
13
13
 
14
- assert_equal 'InitialMessage (My Error1; My Error2)', response.message
14
+ assert_equal('InitialMessage (My Error1; My Error2)', response.message)
15
15
  end
16
16
 
17
17
  def test_enriches_initial_message_when_body_contains_errors_single_value
18
18
  response = enriched_response(422, 'InitialMessage', { errors: 'My Error1' })
19
19
 
20
- assert_equal 'InitialMessage (My Error1)', response.message
20
+ assert_equal('InitialMessage (My Error1)', response.message)
21
21
  end
22
22
 
23
23
  def test_returns_initial_message_when_code_is_200
24
24
  response = enriched_response(200, 'InitialMessage', { result: 'Success' })
25
25
 
26
- assert_equal 'InitialMessage', response.message
26
+ assert_equal('InitialMessage', response.message)
27
27
  end
28
28
 
29
29
  def test_returns_initial_message_when_body_cant_be_parsed
30
30
  response = enriched_response(422, 'InitialMessage', 'not a json')
31
31
 
32
- assert_equal 'InitialMessage', response.message
32
+ assert_equal('InitialMessage', response.message)
33
33
  end
34
34
 
35
35
  private
@@ -8,42 +8,40 @@ class ApiVersionTest < Test::Unit::TestCase
8
8
  "handle": "2019-01",
9
9
  "display_name": "2019-01",
10
10
  "supported": true,
11
- "latest_supported": false
11
+ "latest_supported": false,
12
12
  },
13
13
  {
14
14
  "handle": "2019-04",
15
15
  "latest_supported": false,
16
16
  "display_name": "2019-04",
17
- "supported": true
17
+ "supported": true,
18
18
  },
19
19
  {
20
20
  "handle": "2019-07",
21
21
  "latest_supported": false,
22
22
  "display_name": "2019-07",
23
- "supported": true
23
+ "supported": true,
24
24
  },
25
25
  {
26
26
  "handle": "2019-10",
27
27
  "latest_supported": false,
28
28
  "display_name": "2019-10",
29
- "supported": true
29
+ "supported": true,
30
30
  },
31
31
  {
32
32
  "handle": "2020-01",
33
33
  "latest_supported": true,
34
34
  "display_name": "2020-01 (Latest)",
35
- "supported": true
35
+ "supported": true,
36
36
  },
37
37
  {
38
38
  "handle": "unstable",
39
39
  "latest_supported": false,
40
40
  "display_name": "unstable",
41
- "supported": false
42
- }
41
+ "supported": false,
42
+ },
43
43
  ].to_json
44
44
 
45
-
46
45
  assert_equal versions, ShopifyAPI::Meta.admin_versions.to_json
47
-
48
46
  end
49
47
  end
@@ -1,46 +1,56 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class MetafieldTest < Test::Unit::TestCase
4
5
  def test_get_metafields
5
- fake "metafields", :method => :get, :body => load_fixture('metafields')
6
- metafields = ShopifyAPI::Metafield.find(:all)
6
+ fake("metafields", method: :get, body: load_fixture('metafields'))
7
+ ShopifyAPI::Metafield.find(:all)
7
8
  end
8
9
 
9
10
  def test_get_metafield
10
- fake "metafields/721389482", :method => :get, :body => load_fixture('metafield')
11
- assert ShopifyAPI::Metafield.find(721389482)
11
+ fake("metafields/721389482", method: :get, body: load_fixture('metafield'))
12
+ assert(ShopifyAPI::Metafield.find(721389482))
12
13
  end
13
14
 
14
15
  def test_get_metafield_of_a_blog
15
- fake "blogs/1008414260/metafields/721389482", :method => :get, :body => load_fixture('metafield')
16
- metafield = ShopifyAPI::Metafield.find(721389482, :params => {:resource => "blogs", :resource_id => 1008414260})
17
- assert_equal 1008414260, metafield.prefix_options[:resource_id]
16
+ fake("blogs/1008414260/metafields/721389482", method: :get, body: load_fixture('metafield'))
17
+ metafield = ShopifyAPI::Metafield.find(721389482, params: { resource: "blogs", resource_id: 1008414260 })
18
+ assert_equal(1008414260, metafield.prefix_options[:resource_id])
18
19
  end
19
20
 
20
21
  def test_create_metafield_for_a_blog
21
- fake "blogs/1008414260", :method => :get, :body => load_fixture('blog')
22
- fake "blogs/1008414260/metafields", :method => :post, :status => 201, :body => load_fixture('metafield')
22
+ fake("blogs/1008414260", method: :get, body: load_fixture('blog'))
23
+ fake("blogs/1008414260/metafields", method: :post, status: 201, body: load_fixture('metafield'))
23
24
 
24
25
  blog = ShopifyAPI::Blog.find(1008414260)
25
- metafield = blog.add_metafield(ShopifyAPI::Metafield.new(:namespace => "summaries", :key => "First Summary", :value => "Make commerce better", :value_type => "string"))
26
-
27
- assert_equal ActiveSupport::JSON.decode('{"metafield":{"namespace":"summaries","key":"First Summary","value":"Make commerce better","value_type":"string"}}'), ActiveSupport::JSON.decode(WebMock.last_request.body)
28
- assert !metafield.new_record?
26
+ metafield = blog.add_metafield(
27
+ ShopifyAPI::Metafield.new(
28
+ namespace: "summaries", key: "First Summary", value: "Make commerce better", value_type: "string"
29
+ )
30
+ )
31
+
32
+ assert_equal(
33
+ ActiveSupport::JSON.decode(
34
+ '{"metafield":{"namespace":"summaries","key":"First Summary",' \
35
+ '"value":"Make commerce better","value_type":"string"}}'
36
+ ),
37
+ ActiveSupport::JSON.decode(WebMock.last_request.body)
38
+ )
39
+ assert(!metafield.new_record?)
29
40
  end
30
41
 
31
42
  def test_update_metafield
32
- fake "metafields/721389482", :method => :get, :body => load_fixture('metafield')
33
- fake "metafields/721389482", :method => :put, :status => 200, :body => load_fixture('metafield')
43
+ fake("metafields/721389482", method: :get, body: load_fixture('metafield'))
44
+ fake("metafields/721389482", method: :put, status: 200, body: load_fixture('metafield'))
34
45
  metafield = ShopifyAPI::Metafield.find(721389482)
35
46
  metafield.namespace = "teaser"
36
- assert metafield.save
47
+ assert(metafield.save)
37
48
  end
38
49
 
39
50
  def test_delete_metafield
40
- fake "metafields/721389482", :method => :get, :body => load_fixture('metafield')
41
- fake "metafields/721389482", :method => :delete, :body => 'destroyed'
51
+ fake("metafields/721389482", method: :get, body: load_fixture('metafield'))
52
+ fake("metafields/721389482", method: :delete, body: 'destroyed')
42
53
  metafield = ShopifyAPI::Metafield.find(721389482)
43
- assert metafield.destroy
54
+ assert(metafield.destroy)
44
55
  end
45
56
  end
46
-
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class OrderRiskTest < Test::Unit::TestCase
4
5
  def test_create_order_risk
5
- fake "orders/450789469/risks", :method => :post, :body => load_fixture('order_risk')
6
- v = ShopifyAPI::OrderRisk.new(:order_id => 450789469)
6
+ fake("orders/450789469/risks", method: :post, body: load_fixture('order_risk'))
7
+ v = ShopifyAPI::OrderRisk.new(order_id: 450789469)
7
8
  v.message = "This order was placed from a proxy IP"
8
9
  v.recommendation = "cancel"
9
10
  v.score = "1.0"
@@ -13,33 +14,33 @@ class OrderRiskTest < Test::Unit::TestCase
13
14
  v.cause_cancel = true
14
15
  v.save
15
16
 
16
- assert_equal 284138680, v.id
17
+ assert_equal(284138680, v.id)
17
18
  end
18
19
 
19
20
  def test_get_order_risks
20
- fake "orders/450789469/risks", :method => :get, :body => load_fixture('order_risks')
21
- v = ShopifyAPI::OrderRisk.find(:all, :params => {:order_id => 450789469})
22
- assert_equal 2, v.size
21
+ fake("orders/450789469/risks", method: :get, body: load_fixture('order_risks'))
22
+ v = ShopifyAPI::OrderRisk.find(:all, params: { order_id: 450789469 })
23
+ assert_equal(2, v.size)
23
24
  end
24
25
 
25
26
  def test_get_order_risk
26
- fake "orders/450789469/risks/284138680", :method => :get, :body => load_fixture('order_risk')
27
- v = ShopifyAPI::OrderRisk.find(284138680, :params => {:order_id => 450789469})
28
- assert_equal 284138680, v.id
27
+ fake("orders/450789469/risks/284138680", method: :get, body: load_fixture('order_risk'))
28
+ v = ShopifyAPI::OrderRisk.find(284138680, params: { order_id: 450789469 })
29
+ assert_equal(284138680, v.id)
29
30
  end
30
31
 
31
32
  def test_delete_order_risk
32
- fake "orders/450789469/risks/284138680", :method => :get, :body => load_fixture('order_risk')
33
- fake "orders/450789469/risks/284138680", :method => :delete, :body => "destroyed"
34
- v = ShopifyAPI::OrderRisk.find(284138680, :params => {:order_id => 450789469})
35
- assert v.destroy
33
+ fake("orders/450789469/risks/284138680", method: :get, body: load_fixture('order_risk'))
34
+ fake("orders/450789469/risks/284138680", method: :delete, body: "destroyed")
35
+ v = ShopifyAPI::OrderRisk.find(284138680, params: { order_id: 450789469 })
36
+ assert(v.destroy)
36
37
  end
37
38
 
38
39
  def test_update_order_risk
39
- fake "orders/450789469/risks/284138680", :method => :get, :body => load_fixture('order_risk')
40
- fake "orders/450789469/risks/284138680", :method => :put, :body => load_fixture('order_risk')
40
+ fake("orders/450789469/risks/284138680", method: :get, body: load_fixture('order_risk'))
41
+ fake("orders/450789469/risks/284138680", method: :put, body: load_fixture('order_risk'))
41
42
 
42
- v = ShopifyAPI::OrderRisk.find(284138680, :params => {:order_id => 450789469})
43
+ v = ShopifyAPI::OrderRisk.find(284138680, params: { order_id: 450789469 })
43
44
  v.position = 3
44
45
  v.save
45
46
  end