shopify_api 9.0.4 → 9.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -1
  3. data/.github/ISSUE_TEMPLATE.md +36 -0
  4. data/.github/workflows/build.yml +44 -0
  5. data/.gitignore +2 -1
  6. data/.rubocop.yml +23 -3
  7. data/.rubocop_todo.yml +75 -0
  8. data/CHANGELOG.md +41 -0
  9. data/CONTRIBUTING.md +1 -1
  10. data/Gemfile +5 -0
  11. data/Gemfile.lock +153 -0
  12. data/Gemfile_ar51 +1 -1
  13. data/README.md +42 -32
  14. data/RELEASING +10 -6
  15. data/Rakefile +16 -5
  16. data/SECURITY.md +59 -0
  17. data/dev.yml +11 -0
  18. data/docs/_config.yml +1 -0
  19. data/docs/_includes/footer.html +28 -0
  20. data/docs/_includes/head.html +28 -0
  21. data/docs/_layouts/index.html +57 -0
  22. data/docs/graphql.md +47 -2
  23. data/docs/index.md +639 -0
  24. data/lib/active_resource/connection_ext.rb +1 -0
  25. data/lib/active_resource/detailed_log_subscriber.rb +10 -7
  26. data/lib/active_resource/json_errors.rb +8 -2
  27. data/lib/shopify_api/api_access.rb +57 -0
  28. data/lib/shopify_api/api_version.rb +6 -5
  29. data/lib/shopify_api/connection.rb +1 -0
  30. data/lib/shopify_api/countable.rb +3 -2
  31. data/lib/shopify_api/disable_prefix_check.rb +2 -2
  32. data/lib/shopify_api/events.rb +2 -1
  33. data/lib/shopify_api/graphql.rb +28 -8
  34. data/lib/shopify_api/hmac_params.rb +23 -0
  35. data/lib/shopify_api/limits.rb +3 -2
  36. data/lib/shopify_api/message_enricher.rb +11 -9
  37. data/lib/shopify_api/meta.rb +0 -1
  38. data/lib/shopify_api/metafields.rb +5 -4
  39. data/lib/shopify_api/pagination_link_headers.rb +5 -4
  40. data/lib/shopify_api/resources/access_scope.rb +1 -1
  41. data/lib/shopify_api/resources/access_token.rb +1 -0
  42. data/lib/shopify_api/resources/address.rb +1 -0
  43. data/lib/shopify_api/resources/announcement.rb +2 -1
  44. data/lib/shopify_api/resources/application_charge.rb +1 -0
  45. data/lib/shopify_api/resources/application_credit.rb +1 -0
  46. data/lib/shopify_api/resources/article.rb +3 -2
  47. data/lib/shopify_api/resources/asset.rb +6 -5
  48. data/lib/shopify_api/resources/assigned_fulfillment_order.rb +1 -1
  49. data/lib/shopify_api/resources/base.rb +12 -8
  50. data/lib/shopify_api/resources/billing_address.rb +1 -0
  51. data/lib/shopify_api/resources/blog.rb +2 -1
  52. data/lib/shopify_api/resources/carrier_service.rb +1 -0
  53. data/lib/shopify_api/resources/cart.rb +2 -1
  54. data/lib/shopify_api/resources/collect.rb +1 -0
  55. data/lib/shopify_api/resources/collection_listing.rb +1 -0
  56. data/lib/shopify_api/resources/comment.rb +20 -5
  57. data/lib/shopify_api/resources/country.rb +1 -0
  58. data/lib/shopify_api/resources/custom_collection.rb +4 -3
  59. data/lib/shopify_api/resources/customer.rb +2 -1
  60. data/lib/shopify_api/resources/customer_group.rb +1 -0
  61. data/lib/shopify_api/resources/customer_invite.rb +1 -0
  62. data/lib/shopify_api/resources/customer_saved_search.rb +2 -1
  63. data/lib/shopify_api/resources/discount_code.rb +1 -0
  64. data/lib/shopify_api/resources/discount_code_batch.rb +4 -2
  65. data/lib/shopify_api/resources/draft_order.rb +1 -0
  66. data/lib/shopify_api/resources/draft_order_invoice.rb +1 -0
  67. data/lib/shopify_api/resources/event.rb +1 -0
  68. data/lib/shopify_api/resources/fulfillment.rb +12 -3
  69. data/lib/shopify_api/resources/fulfillment_event.rb +1 -0
  70. data/lib/shopify_api/resources/fulfillment_order.rb +30 -16
  71. data/lib/shopify_api/resources/fulfillment_order_locations_for_move.rb +1 -0
  72. data/lib/shopify_api/resources/fulfillment_request.rb +1 -0
  73. data/lib/shopify_api/resources/fulfillment_service.rb +1 -0
  74. data/lib/shopify_api/resources/fulfillment_v2.rb +3 -2
  75. data/lib/shopify_api/resources/gift_card.rb +1 -0
  76. data/lib/shopify_api/resources/image.rb +2 -1
  77. data/lib/shopify_api/resources/inventory_level.rb +3 -4
  78. data/lib/shopify_api/resources/line_item.rb +4 -3
  79. data/lib/shopify_api/resources/location.rb +1 -1
  80. data/lib/shopify_api/resources/marketing_event.rb +1 -0
  81. data/lib/shopify_api/resources/metafield.rb +1 -0
  82. data/lib/shopify_api/resources/note_attribute.rb +1 -0
  83. data/lib/shopify_api/resources/option.rb +1 -0
  84. data/lib/shopify_api/resources/order.rb +2 -1
  85. data/lib/shopify_api/resources/order_risk.rb +1 -0
  86. data/lib/shopify_api/resources/page.rb +1 -0
  87. data/lib/shopify_api/resources/payment_details.rb +1 -0
  88. data/lib/shopify_api/resources/policy.rb +1 -0
  89. data/lib/shopify_api/resources/price_rule.rb +1 -1
  90. data/lib/shopify_api/resources/product.rb +27 -3
  91. data/lib/shopify_api/resources/product_listing.rb +1 -0
  92. data/lib/shopify_api/resources/province.rb +1 -0
  93. data/lib/shopify_api/resources/receipt.rb +1 -0
  94. data/lib/shopify_api/resources/recurring_application_charge.rb +4 -1
  95. data/lib/shopify_api/resources/redirect.rb +1 -0
  96. data/lib/shopify_api/resources/refund.rb +2 -1
  97. data/lib/shopify_api/resources/report.rb +1 -0
  98. data/lib/shopify_api/resources/resource_feedback.rb +1 -1
  99. data/lib/shopify_api/resources/rule.rb +1 -0
  100. data/lib/shopify_api/resources/script_tag.rb +1 -0
  101. data/lib/shopify_api/resources/shipping_address.rb +1 -0
  102. data/lib/shopify_api/resources/shipping_line.rb +1 -0
  103. data/lib/shopify_api/resources/shipping_zone.rb +1 -0
  104. data/lib/shopify_api/resources/shop.rb +2 -1
  105. data/lib/shopify_api/resources/smart_collection.rb +4 -8
  106. data/lib/shopify_api/resources/storefront_access_token.rb +1 -0
  107. data/lib/shopify_api/resources/tax_line.rb +1 -0
  108. data/lib/shopify_api/resources/tax_service.rb +1 -0
  109. data/lib/shopify_api/resources/theme.rb +1 -0
  110. data/lib/shopify_api/resources/transaction.rb +1 -0
  111. data/lib/shopify_api/resources/usage_charge.rb +1 -0
  112. data/lib/shopify_api/resources/user.rb +1 -0
  113. data/lib/shopify_api/resources/variant.rb +35 -0
  114. data/lib/shopify_api/resources/webhook.rb +1 -0
  115. data/lib/shopify_api/resources.rb +1 -0
  116. data/lib/shopify_api/session.rb +51 -20
  117. data/lib/shopify_api/version.rb +2 -1
  118. data/lib/shopify_api.rb +9 -1
  119. data/lib/verify_docs.rb +8 -0
  120. data/service.yml +2 -5
  121. data/shopify_api.gemspec +13 -7
  122. data/test/access_token_test.rb +6 -5
  123. data/test/active_resource/json_errors_test.rb +6 -6
  124. data/test/api_access_test.rb +153 -0
  125. data/test/api_version_test.rb +3 -3
  126. data/test/application_charge_test.rb +30 -27
  127. data/test/application_credit_test.rb +10 -9
  128. data/test/article_test.rb +34 -35
  129. data/test/asset_test.rb +14 -6
  130. data/test/assigned_fulfillment_order_test.rb +5 -4
  131. data/test/base_test.rb +64 -49
  132. data/test/blog_test.rb +4 -3
  133. data/test/carrier_service_test.rb +7 -6
  134. data/test/cart_test.rb +2 -1
  135. data/test/collect_test.rb +4 -3
  136. data/test/collection_listing_test.rb +21 -16
  137. data/test/collection_publication_test.rb +8 -8
  138. data/test/collection_test.rb +20 -19
  139. data/test/countable_test.rb +3 -2
  140. data/test/currency_test.rb +5 -5
  141. data/test/custom_collection_test.rb +4 -3
  142. data/test/customer_saved_search_test.rb +18 -8
  143. data/test/customer_test.rb +22 -14
  144. data/test/detailed_log_subscriber_test.rb +16 -12
  145. data/test/discount_code_batch_test.rb +11 -10
  146. data/test/discount_code_test.rb +21 -15
  147. data/test/draft_order_test.rb +68 -52
  148. data/test/fixtures/assigned_fulfillment_orders.json +2 -0
  149. data/test/fixtures/fulfillment_order.json +1 -0
  150. data/test/fixtures/fulfillment_orders.json +2 -0
  151. data/test/fulfillment_event_test.rb +31 -26
  152. data/test/fulfillment_order_test.rb +217 -149
  153. data/test/fulfillment_order_test_helper.rb +1 -0
  154. data/test/fulfillment_request_test.rb +10 -8
  155. data/test/fulfillment_service_test.rb +13 -12
  156. data/test/fulfillment_test.rb +81 -66
  157. data/test/fulfillment_v2_test.rb +16 -12
  158. data/test/gift_card_test.rb +6 -4
  159. data/test/graphql_test.rb +55 -23
  160. data/test/hmac_params_test.rb +25 -0
  161. data/test/image_test.rb +19 -17
  162. data/test/inventory_level_test.rb +24 -15
  163. data/test/lib/webmock_extensions/last_request.rb +1 -1
  164. data/test/limits_test.rb +2 -1
  165. data/test/location_test.rb +2 -1
  166. data/test/marketing_event_test.rb +20 -20
  167. data/test/message_enricher_test.rb +6 -6
  168. data/test/meta_test.rb +9 -11
  169. data/test/metafield_test.rb +30 -20
  170. data/test/order_risk_test.rb +17 -16
  171. data/test/order_test.rb +43 -28
  172. data/test/pagination_test.rb +89 -56
  173. data/test/policy_test.rb +6 -5
  174. data/test/price_rule_test.rb +20 -15
  175. data/test/product_listing_test.rb +20 -20
  176. data/test/product_publication_test.rb +8 -8
  177. data/test/product_test.rb +71 -20
  178. data/test/publication_test.rb +3 -3
  179. data/test/recurring_application_charge_test.rb +104 -42
  180. data/test/redirect_test.rb +4 -3
  181. data/test/refund_test.rb +22 -17
  182. data/test/report_test.rb +12 -10
  183. data/test/resource_feedback_test.rb +14 -13
  184. data/test/script_tag_test.rb +10 -9
  185. data/test/session_test.rb +319 -45
  186. data/test/shipping_zone_test.rb +4 -3
  187. data/test/shop_test.rb +47 -33
  188. data/test/smart_collection_test.rb +5 -29
  189. data/test/storefront_access_token_test.rb +13 -15
  190. data/test/tax_service_test.rb +7 -4
  191. data/test/tender_transaction_test.rb +3 -3
  192. data/test/test_helper.rb +14 -12
  193. data/test/transaction_test.rb +4 -3
  194. data/test/usage_charge_test.rb +12 -8
  195. data/test/user_test.rb +4 -3
  196. data/test/variant_test.rb +50 -23
  197. data/test/webhook_test.rb +10 -7
  198. metadata +44 -17
  199. data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +0 -1027
  200. data/.travis.yml +0 -23
  201. data/bin/shopify +0 -3
@@ -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
data/test/limits_test.rb CHANGED
@@ -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
data/test/meta_test.rb CHANGED
@@ -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
- }
43
- ].to_json
44
-
45
-
46
- assert_equal versions, ShopifyAPI::Meta.admin_versions.to_json
41
+ "supported": false,
42
+ },
43
+ ].as_json
47
44
 
45
+ assert_equal versions, ShopifyAPI::Meta.admin_versions.as_json
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
data/test/order_test.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
  require 'fulfillment_order_test_helper'
3
4
 
@@ -5,65 +6,79 @@ class OrderTest < Test::Unit::TestCase
5
6
  include FulfillmentOrderTestHelper
6
7
 
7
8
  test "create should create order" do
8
- fake 'orders', :method => :post, :status => 201, :body => load_fixture('order')
9
- order = ShopifyAPI::Order.create(line_items: [{quantity:1, variant_id:39072856}], financial_status:"authorized")
10
- assert_equal 39072856, order.line_items.first.variant_id
9
+ fake('orders', method: :post, status: 201, body: load_fixture('order'))
10
+ order = ShopifyAPI::Order.create(
11
+ line_items: [{ quantity: 1, variant_id: 39072856 }],
12
+ financial_status: "authorized"
13
+ )
14
+ assert_equal(39072856, order.line_items.first.variant_id)
11
15
  end
12
16
 
13
17
  test "create should create an order with custom properties" do
14
- props = [{ :"By default may label with \"Roasted for " => { :"Your First Name" => { :"\". If you want something specific on the label, enter it here:" => "" }}}]
15
- fake 'orders', :method => :post, :status => 201, :body => load_fixture('order_with_properties')
16
- order = ShopifyAPI::Order.create(line_items: [{quantity:1, variant_id:39072856, properties:props}], financial_status:"authorized")
17
- assert_equal 39072856, order.line_items.first.variant_id
18
+ props = [
19
+ {
20
+ "By default may label with \"Roasted for ": {
21
+ "Your First Name": {
22
+ "\". If you want something specific on the label, enter it here:": "",
23
+ },
24
+ },
25
+ },
26
+ ]
27
+ fake('orders', method: :post, status: 201, body: load_fixture('order_with_properties'))
28
+ order = ShopifyAPI::Order.create(
29
+ line_items: [{ quantity: 1, variant_id: 39072856, properties: props }],
30
+ financial_status: "authorized"
31
+ )
32
+ assert_equal(39072856, order.line_items.first.variant_id)
18
33
  end
19
34
 
20
35
  test "get should get an order" do
21
- fake 'orders/450789469', :method => :get, :status => 200, :body => load_fixture('order')
36
+ fake('orders/450789469', method: :get, status: 200, body: load_fixture('order'))
22
37
  order = ShopifyAPI::Order.find(450789469)
23
- assert_equal 450789469, order.id
38
+ assert_equal(450789469, order.id)
24
39
  end
25
40
 
26
41
  test "get should get an order with custom properties" do
27
- fake 'orders/450789469', :method => :get, :status => 200, :body => load_fixture('order_with_properties')
42
+ fake('orders/450789469', method: :get, status: 200, body: load_fixture('order_with_properties'))
28
43
  order = ShopifyAPI::Order.find(450789469)
29
- assert_equal 450789469, order.id
44
+ assert_equal(450789469, order.id)
30
45
  end
31
46
 
32
47
  test "get all should get all orders" do
33
- fake 'orders', :method => :get, :status => 200, :body => load_fixture('orders')
48
+ fake('orders', method: :get, status: 200, body: load_fixture('orders'))
34
49
  order = ShopifyAPI::Order.all
35
- assert_equal 450789469, order.first.id
50
+ assert_equal(450789469, order.first.id)
36
51
  end
37
52
 
38
53
  test "add note should add a note to order" do
39
- fake 'orders/450789469', :method => :get, :status => 200, :body => load_fixture('order')
54
+ fake('orders/450789469', method: :get, status: 200, body: load_fixture('order'))
40
55
  order = ShopifyAPI::Order.find(450789469)
41
56
  order.note = "Test note"
42
- fake 'orders/450789469', :method => :put, :status => 200, :body => load_fixture('order')
57
+ fake('orders/450789469', method: :put, status: 200, body: load_fixture('order'))
43
58
  order.save
44
- assert_equal "Test note", order.note
59
+ assert_equal("Test note", order.note)
45
60
  end
46
61
 
47
62
  test "delete should delete an order" do
48
- fake 'orders/450789469', :method => :get, :status => 200, :body => load_fixture('order')
49
- fake 'orders/450789469', :method => :delete, :body => 'destroyed'
63
+ fake('orders/450789469', method: :get, status: 200, body: load_fixture('order'))
64
+ fake('orders/450789469', method: :delete, body: 'destroyed')
50
65
  order = ShopifyAPI::Order.find(450789469)
51
- assert order.destroy
66
+ assert(order.destroy)
52
67
  end
53
68
 
54
69
  test "cancel an order with params" do
55
- fake 'orders/450789469', :method => :get, :status => 200, :body => load_fixture('order')
56
- fake 'orders/450789469/cancel', :method => :post, :body => load_fixture('order')
70
+ fake('orders/450789469', method: :get, status: 200, body: load_fixture('order'))
71
+ fake('orders/450789469/cancel', method: :post, body: load_fixture('order'))
57
72
  order = ShopifyAPI::Order.find(450789469)
58
73
  order.cancel(email: false, restock: true)
59
- assert_request_body({'email' => false, 'restock' => true}.to_json)
74
+ assert_request_body({ 'email' => false, 'restock' => true }.to_json)
60
75
  end
61
76
 
62
77
  test "capture an order with currency param" do
63
- fake 'orders/450789469', body: load_fixture('order')
78
+ fake('orders/450789469', body: load_fixture('order'))
64
79
  order = ShopifyAPI::Order.find(450789469)
65
80
 
66
- fake 'orders/450789469/transactions', method: :post, status: 201, body: load_fixture('transaction')
81
+ fake('orders/450789469/transactions', method: :post, status: 201, body: load_fixture('transaction'))
67
82
  order.capture(100.00, currency: 'CAD')
68
83
 
69
84
  assert_request_body({
@@ -98,10 +113,10 @@ class OrderTest < Test::Unit::TestCase
98
113
  )
99
114
  fulfillment_orders = order.fulfillment_orders
100
115
 
101
- assert_equal [519788021, 519788022], fulfillment_orders.map(&:id).sort
116
+ assert_equal([519788021, 519788022], fulfillment_orders.map(&:id).sort)
102
117
  fulfillment_orders.each do |fulfillment_order|
103
- assert fulfillment_order.is_a?(ShopifyAPI::FulfillmentOrder)
104
- assert_equal 450789469, fulfillment_order.order_id
118
+ assert(fulfillment_order.is_a?(ShopifyAPI::FulfillmentOrder))
119
+ assert_equal(450789469, fulfillment_order.order_id)
105
120
  end
106
121
  end
107
122
 
@@ -118,7 +133,7 @@ class OrderTest < Test::Unit::TestCase
118
133
  )
119
134
  order = ShopifyAPI::Order.find(450789469)
120
135
 
121
- assert_raises NotImplementedError do
136
+ assert_raises(NotImplementedError) do
122
137
  order.fulfillment_orders
123
138
  end
124
139
  end