shopify_api 9.0.2 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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