shopify_api 9.2.0 → 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 (190) 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 +0 -1
  5. data/.rubocop.yml +23 -3
  6. data/.rubocop_todo.yml +75 -0
  7. data/CHANGELOG.md +15 -0
  8. data/Gemfile +1 -0
  9. data/Gemfile.lock +151 -0
  10. data/Gemfile_ar51 +1 -1
  11. data/README.md +40 -30
  12. data/RELEASING +10 -6
  13. data/Rakefile +10 -6
  14. data/docs/graphql.md +1 -1
  15. data/docs/index.md +1 -1
  16. data/lib/active_resource/connection_ext.rb +1 -0
  17. data/lib/active_resource/detailed_log_subscriber.rb +6 -7
  18. data/lib/active_resource/json_errors.rb +8 -2
  19. data/lib/shopify_api.rb +8 -1
  20. data/lib/shopify_api/api_access.rb +57 -0
  21. data/lib/shopify_api/api_version.rb +6 -5
  22. data/lib/shopify_api/connection.rb +1 -0
  23. data/lib/shopify_api/countable.rb +3 -2
  24. data/lib/shopify_api/disable_prefix_check.rb +2 -2
  25. data/lib/shopify_api/events.rb +2 -1
  26. data/lib/shopify_api/graphql.rb +8 -6
  27. data/lib/shopify_api/limits.rb +3 -2
  28. data/lib/shopify_api/message_enricher.rb +11 -9
  29. data/lib/shopify_api/meta.rb +0 -1
  30. data/lib/shopify_api/metafields.rb +5 -4
  31. data/lib/shopify_api/pagination_link_headers.rb +4 -3
  32. data/lib/shopify_api/resources.rb +1 -0
  33. data/lib/shopify_api/resources/access_scope.rb +1 -1
  34. data/lib/shopify_api/resources/access_token.rb +1 -0
  35. data/lib/shopify_api/resources/address.rb +1 -0
  36. data/lib/shopify_api/resources/announcement.rb +2 -1
  37. data/lib/shopify_api/resources/application_charge.rb +1 -0
  38. data/lib/shopify_api/resources/application_credit.rb +1 -0
  39. data/lib/shopify_api/resources/article.rb +3 -2
  40. data/lib/shopify_api/resources/asset.rb +6 -5
  41. data/lib/shopify_api/resources/assigned_fulfillment_order.rb +1 -1
  42. data/lib/shopify_api/resources/base.rb +11 -6
  43. data/lib/shopify_api/resources/billing_address.rb +1 -0
  44. data/lib/shopify_api/resources/blog.rb +2 -1
  45. data/lib/shopify_api/resources/carrier_service.rb +1 -0
  46. data/lib/shopify_api/resources/cart.rb +2 -1
  47. data/lib/shopify_api/resources/collect.rb +1 -0
  48. data/lib/shopify_api/resources/collection_listing.rb +1 -0
  49. data/lib/shopify_api/resources/comment.rb +20 -5
  50. data/lib/shopify_api/resources/country.rb +1 -0
  51. data/lib/shopify_api/resources/custom_collection.rb +4 -3
  52. data/lib/shopify_api/resources/customer.rb +2 -1
  53. data/lib/shopify_api/resources/customer_group.rb +1 -0
  54. data/lib/shopify_api/resources/customer_invite.rb +1 -0
  55. data/lib/shopify_api/resources/customer_saved_search.rb +2 -1
  56. data/lib/shopify_api/resources/discount_code.rb +1 -0
  57. data/lib/shopify_api/resources/discount_code_batch.rb +4 -2
  58. data/lib/shopify_api/resources/draft_order.rb +1 -0
  59. data/lib/shopify_api/resources/draft_order_invoice.rb +1 -0
  60. data/lib/shopify_api/resources/event.rb +1 -0
  61. data/lib/shopify_api/resources/fulfillment.rb +12 -3
  62. data/lib/shopify_api/resources/fulfillment_event.rb +1 -0
  63. data/lib/shopify_api/resources/fulfillment_order.rb +30 -16
  64. data/lib/shopify_api/resources/fulfillment_order_locations_for_move.rb +1 -0
  65. data/lib/shopify_api/resources/fulfillment_request.rb +1 -0
  66. data/lib/shopify_api/resources/fulfillment_service.rb +1 -0
  67. data/lib/shopify_api/resources/fulfillment_v2.rb +3 -2
  68. data/lib/shopify_api/resources/gift_card.rb +1 -0
  69. data/lib/shopify_api/resources/image.rb +2 -1
  70. data/lib/shopify_api/resources/inventory_level.rb +2 -3
  71. data/lib/shopify_api/resources/line_item.rb +4 -3
  72. data/lib/shopify_api/resources/location.rb +1 -1
  73. data/lib/shopify_api/resources/marketing_event.rb +1 -0
  74. data/lib/shopify_api/resources/metafield.rb +1 -0
  75. data/lib/shopify_api/resources/note_attribute.rb +1 -0
  76. data/lib/shopify_api/resources/option.rb +1 -0
  77. data/lib/shopify_api/resources/order.rb +2 -1
  78. data/lib/shopify_api/resources/order_risk.rb +1 -0
  79. data/lib/shopify_api/resources/page.rb +1 -0
  80. data/lib/shopify_api/resources/payment_details.rb +1 -0
  81. data/lib/shopify_api/resources/policy.rb +1 -0
  82. data/lib/shopify_api/resources/price_rule.rb +1 -1
  83. data/lib/shopify_api/resources/product.rb +14 -11
  84. data/lib/shopify_api/resources/product_listing.rb +1 -0
  85. data/lib/shopify_api/resources/province.rb +1 -0
  86. data/lib/shopify_api/resources/receipt.rb +1 -0
  87. data/lib/shopify_api/resources/recurring_application_charge.rb +4 -1
  88. data/lib/shopify_api/resources/redirect.rb +1 -0
  89. data/lib/shopify_api/resources/refund.rb +2 -1
  90. data/lib/shopify_api/resources/report.rb +1 -0
  91. data/lib/shopify_api/resources/resource_feedback.rb +1 -1
  92. data/lib/shopify_api/resources/rule.rb +1 -0
  93. data/lib/shopify_api/resources/script_tag.rb +1 -0
  94. data/lib/shopify_api/resources/shipping_address.rb +1 -0
  95. data/lib/shopify_api/resources/shipping_line.rb +1 -0
  96. data/lib/shopify_api/resources/shipping_zone.rb +1 -0
  97. data/lib/shopify_api/resources/shop.rb +2 -1
  98. data/lib/shopify_api/resources/smart_collection.rb +2 -2
  99. data/lib/shopify_api/resources/storefront_access_token.rb +1 -0
  100. data/lib/shopify_api/resources/tax_line.rb +1 -0
  101. data/lib/shopify_api/resources/tax_service.rb +1 -0
  102. data/lib/shopify_api/resources/theme.rb +1 -0
  103. data/lib/shopify_api/resources/transaction.rb +1 -0
  104. data/lib/shopify_api/resources/usage_charge.rb +1 -0
  105. data/lib/shopify_api/resources/user.rb +1 -0
  106. data/lib/shopify_api/resources/variant.rb +16 -18
  107. data/lib/shopify_api/resources/webhook.rb +1 -0
  108. data/lib/shopify_api/session.rb +20 -12
  109. data/lib/shopify_api/version.rb +2 -1
  110. data/lib/verify_docs.rb +1 -0
  111. data/service.yml +1 -1
  112. data/shopify_api.gemspec +10 -4
  113. data/test/access_token_test.rb +6 -5
  114. data/test/active_resource/json_errors_test.rb +6 -6
  115. data/test/api_access_test.rb +153 -0
  116. data/test/api_version_test.rb +3 -3
  117. data/test/application_charge_test.rb +30 -27
  118. data/test/application_credit_test.rb +10 -9
  119. data/test/article_test.rb +34 -35
  120. data/test/asset_test.rb +14 -6
  121. data/test/assigned_fulfillment_order_test.rb +5 -4
  122. data/test/base_test.rb +55 -56
  123. data/test/blog_test.rb +4 -3
  124. data/test/carrier_service_test.rb +7 -6
  125. data/test/cart_test.rb +2 -1
  126. data/test/collect_test.rb +4 -3
  127. data/test/collection_listing_test.rb +21 -16
  128. data/test/collection_publication_test.rb +8 -8
  129. data/test/collection_test.rb +20 -19
  130. data/test/countable_test.rb +3 -2
  131. data/test/currency_test.rb +5 -5
  132. data/test/custom_collection_test.rb +4 -3
  133. data/test/customer_saved_search_test.rb +18 -8
  134. data/test/customer_test.rb +22 -14
  135. data/test/detailed_log_subscriber_test.rb +15 -11
  136. data/test/discount_code_batch_test.rb +11 -10
  137. data/test/discount_code_test.rb +21 -15
  138. data/test/draft_order_test.rb +68 -52
  139. data/test/fixtures/assigned_fulfillment_orders.json +2 -0
  140. data/test/fixtures/fulfillment_order.json +1 -0
  141. data/test/fixtures/fulfillment_orders.json +2 -0
  142. data/test/fulfillment_event_test.rb +31 -26
  143. data/test/fulfillment_order_test.rb +215 -147
  144. data/test/fulfillment_order_test_helper.rb +1 -0
  145. data/test/fulfillment_request_test.rb +10 -8
  146. data/test/fulfillment_service_test.rb +13 -12
  147. data/test/fulfillment_test.rb +81 -66
  148. data/test/fulfillment_v2_test.rb +16 -12
  149. data/test/gift_card_test.rb +6 -4
  150. data/test/graphql_test.rb +27 -27
  151. data/test/image_test.rb +19 -17
  152. data/test/inventory_level_test.rb +24 -15
  153. data/test/lib/webmock_extensions/last_request.rb +1 -1
  154. data/test/limits_test.rb +2 -1
  155. data/test/location_test.rb +2 -1
  156. data/test/marketing_event_test.rb +20 -20
  157. data/test/message_enricher_test.rb +6 -6
  158. data/test/meta_test.rb +7 -9
  159. data/test/metafield_test.rb +30 -20
  160. data/test/order_risk_test.rb +17 -16
  161. data/test/order_test.rb +43 -28
  162. data/test/pagination_test.rb +89 -56
  163. data/test/policy_test.rb +6 -5
  164. data/test/price_rule_test.rb +20 -15
  165. data/test/product_listing_test.rb +20 -20
  166. data/test/product_publication_test.rb +8 -8
  167. data/test/product_test.rb +44 -32
  168. data/test/publication_test.rb +3 -3
  169. data/test/recurring_application_charge_test.rb +104 -42
  170. data/test/redirect_test.rb +4 -3
  171. data/test/refund_test.rb +22 -17
  172. data/test/report_test.rb +12 -10
  173. data/test/resource_feedback_test.rb +14 -13
  174. data/test/script_tag_test.rb +10 -9
  175. data/test/session_test.rb +74 -46
  176. data/test/shipping_zone_test.rb +4 -3
  177. data/test/shop_test.rb +47 -33
  178. data/test/smart_collection_test.rb +5 -4
  179. data/test/storefront_access_token_test.rb +13 -15
  180. data/test/tax_service_test.rb +7 -4
  181. data/test/tender_transaction_test.rb +3 -3
  182. data/test/test_helper.rb +13 -11
  183. data/test/transaction_test.rb +4 -3
  184. data/test/usage_charge_test.rb +12 -8
  185. data/test/user_test.rb +4 -3
  186. data/test/variant_test.rb +23 -54
  187. data/test/webhook_test.rb +10 -7
  188. metadata +14 -9
  189. data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +0 -1027
  190. data/.travis.yml +0 -28
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module FulfillmentOrderTestHelper
2
3
  def url_prefix_for_activated_session_for(version)
3
4
  available_version = ShopifyAPI::Session.new(domain: 'shop2.myshopify.com', token: 'token2', api_version: version)
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class FulFillmentRequestTest < Test::Unit::TestCase
4
5
  def setup
5
6
  super
6
- fake "orders/450789469/fulfillment_requests/695890229", method: :get, body: load_fixture('fulfillment_request')
7
+ fake("orders/450789469/fulfillment_requests/695890229", method: :get, body: load_fixture('fulfillment_request'))
7
8
  end
8
9
 
9
10
  context "#mark_as_failed" do
@@ -13,21 +14,22 @@ class FulFillmentRequestTest < Test::Unit::TestCase
13
14
  cancelled = ActiveSupport::JSON.decode(load_fixture('fulfillment_request'))
14
15
  cancelled['failure_message'] = 'failure reason'
15
16
  cancelled['message'] = nil
16
- fake "orders/450789469/fulfillment_requests/695890229/mark_as_failed",
17
+ fake(
18
+ "orders/450789469/fulfillment_requests/695890229/mark_as_failed",
17
19
  method: :put,
18
20
  body: ActiveSupport::JSON.encode(cancelled)
19
-
20
- assert fulfillment_request.failure_message.blank?
21
- assert fulfillment_request.mark_as_failed
22
- assert_equal 'failure reason', fulfillment_request.failure_message
21
+ )
22
+ assert(fulfillment_request.failure_message.blank?)
23
+ assert(fulfillment_request.mark_as_failed)
24
+ assert_equal('failure reason', fulfillment_request.failure_message)
23
25
  end
24
26
  end
25
27
 
26
28
  context "#find" do
27
29
  should "be able to find fulfillment request" do
28
30
  fulfillment_request = ShopifyAPI::FulfillmentRequest.find(695890229, params: { order_id: 450789469 })
29
- assert_equal 695890229, fulfillment_request.id
30
- assert_equal 450789469, fulfillment_request.order_id
31
+ assert_equal(695890229, fulfillment_request.id)
32
+ assert_equal(450789469, fulfillment_request.order_id)
31
33
  end
32
34
  end
33
35
  end
@@ -1,17 +1,18 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class FulFillmentServiceTest < Test::Unit::TestCase
4
- test 'new should create fulfillment service' do
5
- fake "fulfillment_services", :method => :post, :body => load_fixture('fulfillment_service')
6
- fulfillment_service = ShopifyAPI::FulfillmentService.new(:name => "SomeService")
7
- fulfillment_service.save
8
- assert_equal "SomeService" , fulfillment_service.name
9
- end
5
+ test 'new should create fulfillment service' do
6
+ fake("fulfillment_services", method: :post, body: load_fixture('fulfillment_service'))
7
+ fulfillment_service = ShopifyAPI::FulfillmentService.new(name: "SomeService")
8
+ fulfillment_service.save
9
+ assert_equal("SomeService", fulfillment_service.name)
10
+ end
10
11
 
11
- test 'find should return the fulfillment service' do
12
- fake "fulfillment_services/123456", :method => :get, :body => load_fixture('fulfillment_service')
13
- fulfillment_service = ShopifyAPI::FulfillmentService.find(123456)
14
- assert_equal 123456 , fulfillment_service.id
15
- assert_equal "SomeService", fulfillment_service.name
16
- end
12
+ test 'find should return the fulfillment service' do
13
+ fake("fulfillment_services/123456", method: :get, body: load_fixture('fulfillment_service'))
14
+ fulfillment_service = ShopifyAPI::FulfillmentService.find(123456)
15
+ assert_equal(123456, fulfillment_service.id)
16
+ assert_equal("SomeService", fulfillment_service.name)
17
+ end
17
18
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
  require 'fulfillment_order_test_helper'
3
4
 
@@ -6,57 +7,65 @@ class FulFillmentTest < Test::Unit::TestCase
6
7
 
7
8
  def setup
8
9
  super
9
- fake "orders/450789469/fulfillments/255858046", :method => :get, :body => load_fixture('fulfillment')
10
+ fake("orders/450789469/fulfillments/255858046", method: :get, body: load_fixture('fulfillment'))
10
11
  end
11
12
 
12
13
  context "Fulfillment" do
13
14
  context "#complete" do
14
15
  should "be able to complete fulfillment" do
15
- fulfillment = ShopifyAPI::Fulfillment.find(255858046, :params => {:order_id => 450789469})
16
+ fulfillment = ShopifyAPI::Fulfillment.find(255858046, params: { order_id: 450789469 })
16
17
 
17
18
  success = ActiveSupport::JSON.decode(load_fixture('fulfillment'))
18
19
  success['fulfillment']['status'] = 'success'
19
- fake "orders/450789469/fulfillments/255858046/complete", :method => :post, :body => ActiveSupport::JSON.encode(success)
20
+ fake(
21
+ "orders/450789469/fulfillments/255858046/complete", method: :post, body: ActiveSupport::JSON.encode(success)
22
+ )
20
23
 
21
- assert_equal 'pending', fulfillment.status
22
- assert fulfillment.complete
23
- assert_equal 'success', fulfillment.status
24
+ assert_equal('pending', fulfillment.status)
25
+ assert(fulfillment.complete)
26
+ assert_equal('success', fulfillment.status)
24
27
  end
25
28
  end
26
29
 
27
30
  context "#cancel" do
28
31
  should "be able to cancel fulfillment" do
29
- fulfillment = ShopifyAPI::Fulfillment.find(255858046, :params => {:order_id => 450789469})
32
+ fulfillment = ShopifyAPI::Fulfillment.find(255858046, params: { order_id: 450789469 })
30
33
 
31
34
  cancelled = ActiveSupport::JSON.decode(load_fixture('fulfillment'))
32
35
  cancelled['fulfillment']['status'] = 'cancelled'
33
- fake "orders/450789469/fulfillments/255858046/cancel", :method => :post, :body => ActiveSupport::JSON.encode(cancelled)
36
+ fake(
37
+ "orders/450789469/fulfillments/255858046/cancel", method: :post, body: ActiveSupport::JSON.encode(cancelled)
38
+ )
34
39
 
35
- assert_equal 'pending', fulfillment.status
36
- assert fulfillment.cancel
37
- assert_equal 'cancelled', fulfillment.status
40
+ assert_equal('pending', fulfillment.status)
41
+ assert(fulfillment.cancel)
42
+ assert_equal('cancelled', fulfillment.status)
38
43
  end
39
44
  end
40
45
 
41
46
  context "#open" do
42
47
  should "be able to open a fulfillment" do
43
- fulfillment = ShopifyAPI::Fulfillment.find(255858046, :params => {:order_id => 450789469})
48
+ fulfillment = ShopifyAPI::Fulfillment.find(255858046, params: { order_id: 450789469 })
44
49
 
45
50
  open_fulfillment = ActiveSupport::JSON.decode(load_fixture('fulfillment'))
46
51
  open_fulfillment['fulfillment']['status'] = 'open'
47
- fake "orders/450789469/fulfillments/255858046/open", :method => :post, :body => ActiveSupport::JSON.encode(open_fulfillment)
52
+ fake(
53
+ "orders/450789469/fulfillments/255858046/open",
54
+ method: :post,
55
+ body: ActiveSupport::JSON.encode(open_fulfillment)
56
+ )
48
57
 
49
- assert_equal 'pending', fulfillment.status
50
- assert fulfillment.open
51
- assert_equal 'open', fulfillment.status
58
+ assert_equal('pending', fulfillment.status)
59
+ assert(fulfillment.open)
60
+ assert_equal('open', fulfillment.status)
52
61
  end
53
62
  end
54
63
 
55
64
  context "#find" do
56
65
  should "be able to find fulfillment" do
57
- fulfillment = ShopifyAPI::Fulfillment.find(255858046, :params => {:order_id => 450789469})
58
- assert_equal 255858046, fulfillment.id
59
- assert_equal 450789469, fulfillment.order_id
66
+ fulfillment = ShopifyAPI::Fulfillment.find(255858046, params: { order_id: 450789469 })
67
+ assert_equal(255858046, fulfillment.id)
68
+ assert_equal(450789469, fulfillment.order_id)
60
69
  end
61
70
  end
62
71
 
@@ -68,28 +77,29 @@ class FulFillmentTest < Test::Unit::TestCase
68
77
  tracking_info: {
69
78
  number: "XSDFHYR23475",
70
79
  url: "https://tracking.example.com/XSDFHYR23475",
71
- company: "TFTC - the fulfillment/tracking company"
80
+ company: "TFTC - the fulfillment/tracking company",
72
81
  },
73
82
  line_items_by_fulfillment_order: [
74
83
  {
75
84
  fulfillment_order_id: 3,
76
- fulfillment_order_line_items: [{ id: 2, quantity: 1 }]
77
- }
78
- ]
85
+ fulfillment_order_line_items: [{ id: 2, quantity: 1 }],
86
+ },
87
+ ],
79
88
  }
80
89
  request_body = { fulfillment: create_fulfillment_attributes }
81
90
  response_body = { fulfillment: create_fulfillment_attributes.merge(id: 346743624) }
82
91
  url_prefix = url_prefix_for_activated_session_for('2020-01')
83
- fake 'fulfillments',
92
+ fake(
93
+ 'fulfillments',
84
94
  url: "#{url_prefix}/fulfillments.json",
85
- :method => :post,
95
+ method: :post,
86
96
  request_body: ActiveSupport::JSON.encode(request_body),
87
97
  body: ActiveSupport::JSON.encode(response_body)
88
-
98
+ )
89
99
  fulfillment = ShopifyAPI::Fulfillment.create(create_fulfillment_attributes)
90
- assert fulfillment.is_a?(ShopifyAPI::Fulfillment)
91
- assert fulfillment.persisted?
92
- assert_equal 346743624, fulfillment.id
100
+ assert(fulfillment.is_a?(ShopifyAPI::Fulfillment))
101
+ assert(fulfillment.persisted?)
102
+ assert_equal(346743624, fulfillment.id)
93
103
  end
94
104
 
95
105
  should "raise NotImplementedError when api_version is older than 2020-01" do
@@ -99,25 +109,26 @@ class FulFillmentTest < Test::Unit::TestCase
99
109
  tracking_info: {
100
110
  number: "XSDFHYR23475",
101
111
  url: "https://tracking.example.com/XSDFHYR23475",
102
- company: "TFTC - the fulfillment/tracking company"
112
+ company: "TFTC - the fulfillment/tracking company",
103
113
  },
104
114
  line_items_by_fulfillment_order: [
105
115
  {
106
116
  fulfillment_order_id: 3,
107
- fulfillment_order_line_items: [{ id: 2, quantity: 1 }]
108
- }
109
- ]
117
+ fulfillment_order_line_items: [{ id: 2, quantity: 1 }],
118
+ },
119
+ ],
110
120
  }
111
121
  request_body = { fulfillment: create_fulfillment_attributes }
112
122
  response_body = { fulfillment: create_fulfillment_attributes.merge(id: 346743624) }
113
123
  url_prefix = url_prefix_for_activated_session_for('2019-10')
114
- fake 'fulfillments',
124
+ fake(
125
+ 'fulfillments',
115
126
  url: "#{url_prefix}/fulfillments.json",
116
- :method => :post,
127
+ method: :post,
117
128
  request_body: ActiveSupport::JSON.encode(request_body),
118
129
  body: ActiveSupport::JSON.encode(response_body)
119
-
120
- assert_raises NotImplementedError do
130
+ )
131
+ assert_raises(NotImplementedError) do
121
132
  ShopifyAPI::Fulfillment.create(create_fulfillment_attributes)
122
133
  end
123
134
  end
@@ -131,29 +142,30 @@ class FulFillmentTest < Test::Unit::TestCase
131
142
  tracking_info: {
132
143
  number: "XSDFHYR23475",
133
144
  url: "https://tracking.example.com/XSDFHYR23475",
134
- company: "TFTC - the fulfillment/tracking company"
145
+ company: "TFTC - the fulfillment/tracking company",
135
146
  },
136
147
  line_items_by_fulfillment_order: [
137
148
  {
138
149
  fulfillment_order_id: 3,
139
- fulfillment_order_line_items: [{ id: 2, quantity: 1 }]
140
- }
141
- ]
150
+ fulfillment_order_line_items: [{ id: 2, quantity: 1 }],
151
+ },
152
+ ],
142
153
  }
143
154
  request_body = { fulfillment: create_fulfillment_attributes }
144
155
  response_body = { fulfillment: create_fulfillment_attributes.merge(id: 346743624) }
145
156
  url_prefix = url_prefix_for_activated_session_for('2020-01')
146
- fake 'fulfillments',
157
+ fake(
158
+ 'fulfillments',
147
159
  url: "#{url_prefix}/fulfillments.json",
148
- :method => :post,
160
+ method: :post,
149
161
  request_body: ActiveSupport::JSON.encode(request_body),
150
162
  body: ActiveSupport::JSON.encode(response_body)
151
-
163
+ )
152
164
  fulfillment = ShopifyAPI::Fulfillment.new(create_fulfillment_attributes)
153
- assert fulfillment.save
154
- assert fulfillment.is_a?(ShopifyAPI::Fulfillment)
155
- assert fulfillment.persisted?
156
- assert_equal 346743624, fulfillment.id
165
+ assert(fulfillment.save)
166
+ assert(fulfillment.is_a?(ShopifyAPI::Fulfillment))
167
+ assert(fulfillment.persisted?)
168
+ assert_equal(346743624, fulfillment.id)
157
169
  end
158
170
 
159
171
  should "save a fulfillment without line_items_by_fulfillment_order" do
@@ -164,22 +176,24 @@ class FulFillmentTest < Test::Unit::TestCase
164
176
  tracking_info: {
165
177
  number: "XSDFHYR23475",
166
178
  url: "https://tracking.example.com/XSDFHYR23475",
167
- company: "TFTC - the fulfillment/tracking company"
168
- }
179
+ company: "TFTC - the fulfillment/tracking company",
180
+ },
169
181
  }
170
182
  request_body = { fulfillment: create_fulfillment_attributes }
171
183
  response_body = { fulfillment: create_fulfillment_attributes.merge(id: 346743624) }
172
- fake "orders/#{order_id}/fulfillments", :method => :post,
184
+ fake(
185
+ "orders/#{order_id}/fulfillments",
186
+ method: :post,
173
187
  request_body: ActiveSupport::JSON.encode(request_body),
174
188
  body: ActiveSupport::JSON.encode(response_body)
175
-
189
+ )
176
190
  fulfillment = ShopifyAPI::Fulfillment.new(create_fulfillment_attributes)
177
191
  fulfillment.prefix_options[:order_id] = order_id
178
192
 
179
- assert fulfillment.save
180
- assert fulfillment.is_a?(ShopifyAPI::Fulfillment)
181
- assert fulfillment.persisted?
182
- assert_equal 346743624, fulfillment.id
193
+ assert(fulfillment.save)
194
+ assert(fulfillment.is_a?(ShopifyAPI::Fulfillment))
195
+ assert(fulfillment.persisted?)
196
+ assert_equal(346743624, fulfillment.id)
183
197
  end
184
198
  end
185
199
 
@@ -200,24 +214,25 @@ class FulFillmentTest < Test::Unit::TestCase
200
214
  request_body = {
201
215
  fulfillment: {
202
216
  tracking_info: tracking_info,
203
- notify_customer: true
204
- }
217
+ notify_customer: true,
218
+ },
205
219
  }
206
220
  url_prefix = url_prefix_for_activated_session_for('2020-01')
207
- fake 'fulfillments',
221
+ fake(
222
+ 'fulfillments',
208
223
  url: "#{url_prefix}/fulfillments/#{fake_fulfillment['id']}/update_tracking.json",
209
224
  method: :post,
210
225
  request_body: ActiveSupport::JSON.encode(request_body),
211
226
  body: ActiveSupport::JSON.encode(fulfillment: fake_fulfillment)
212
-
227
+ )
213
228
  fulfillment = ShopifyAPI::Fulfillment.new(id: fake_fulfillment['id'])
214
- assert fulfillment.update_tracking(tracking_info: tracking_info, notify_customer: true)
229
+ assert(fulfillment.update_tracking(tracking_info: tracking_info, notify_customer: true))
215
230
 
216
- assert_equal tracking_info[:number], fulfillment.tracking_number
217
- assert_equal [tracking_info[:number]], fulfillment.tracking_numbers
218
- assert_equal tracking_info[:url], fulfillment.tracking_url
219
- assert_equal [tracking_info[:url]], fulfillment.tracking_urls
220
- assert_equal tracking_info[:company], fulfillment.tracking_company
231
+ assert_equal(tracking_info[:number], fulfillment.tracking_number)
232
+ assert_equal([tracking_info[:number]], fulfillment.tracking_numbers)
233
+ assert_equal(tracking_info[:url], fulfillment.tracking_url)
234
+ assert_equal([tracking_info[:url]], fulfillment.tracking_urls)
235
+ assert_equal(tracking_info[:company], fulfillment.tracking_company)
221
236
  end
222
237
  end
223
238
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
  require 'fulfillment_order_test_helper'
3
4
 
@@ -21,39 +22,42 @@ class FulfillmentV2Test < Test::Unit::TestCase
21
22
  @request_body = {
22
23
  fulfillment: {
23
24
  tracking_info: @tracking_info,
24
- notify_customer: true
25
- }
25
+ notify_customer: true,
26
+ },
26
27
  }
27
28
  @url_prefix = url_prefix_for_activated_session_for('2020-01')
28
- fake 'fulfillments',
29
+ fake(
30
+ 'fulfillments',
29
31
  url: "#{@url_prefix}/fulfillments/#{@fake_fulfillment['id']}/update_tracking.json",
30
32
  method: :post,
31
33
  request_body: ActiveSupport::JSON.encode(@request_body),
32
34
  body: ActiveSupport::JSON.encode(fulfillment: @fake_fulfillment)
35
+ )
33
36
  end
34
37
 
35
38
  context "FulfillmentV2" do
36
39
  context "#update_tracking" do
37
40
  should "be able to update tracking info for a fulfillment" do
38
41
  fulfillment = ShopifyAPI::FulfillmentV2.new(id: @fake_fulfillment['id'])
39
- assert fulfillment.update_tracking(tracking_info: @tracking_info, notify_customer: true)
42
+ assert(fulfillment.update_tracking(tracking_info: @tracking_info, notify_customer: true))
40
43
 
41
- assert_equal @tracking_info[:number], fulfillment.tracking_number
42
- assert_equal [@tracking_info[:number]], fulfillment.tracking_numbers
43
- assert_equal @tracking_info[:url], fulfillment.tracking_url
44
- assert_equal [@tracking_info[:url]], fulfillment.tracking_urls
45
- assert_equal @tracking_info[:company], fulfillment.tracking_company
44
+ assert_equal(@tracking_info[:number], fulfillment.tracking_number)
45
+ assert_equal([@tracking_info[:number]], fulfillment.tracking_numbers)
46
+ assert_equal(@tracking_info[:url], fulfillment.tracking_url)
47
+ assert_equal([@tracking_info[:url]], fulfillment.tracking_urls)
48
+ assert_equal(@tracking_info[:company], fulfillment.tracking_company)
46
49
  end
47
50
 
48
51
  should "raise NotImplementedError when api_version is older than 2020-01" do
49
52
  @url_prefix = url_prefix_for_activated_session_for('2019-10')
50
- fake 'fulfillments',
53
+ fake(
54
+ 'fulfillments',
51
55
  url: "#{@url_prefix}/fulfillments/#{@fake_fulfillment['id']}/update_tracking.json",
52
56
  method: :post,
53
57
  request_body: ActiveSupport::JSON.encode(@request_body),
54
58
  body: ActiveSupport::JSON.encode(fulfillment: @fake_fulfillment)
55
-
56
- assert_raises NotImplementedError do
59
+ )
60
+ assert_raises(NotImplementedError) do
57
61
  ShopifyAPI::FulfillmentV2.new(id: @fake_fulfillment['id'])
58
62
  end
59
63
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class GiftCardTest < Test::Unit::TestCase
@@ -7,16 +8,17 @@ class GiftCardTest < Test::Unit::TestCase
7
8
  end
8
9
 
9
10
  def test_disable
10
- fake 'gift_cards/1023670/disable.json', :body => load_fixture('gift_card_disabled'), :method => :post, :extension => false
11
+ fake('gift_cards/1023670/disable.json', body: load_fixture('gift_card_disabled'), method: :post, extension: false)
11
12
 
12
- refute @gift_card.disabled_at
13
+ refute(@gift_card.disabled_at)
13
14
  @gift_card.disable
14
- assert @gift_card.disabled_at
15
+ assert(@gift_card.disabled_at)
15
16
  end
16
17
 
17
18
  private
19
+
18
20
  def load_gift_card
19
- fake 'gift_cards/1023670', :body => load_fixture('gift_card')
21
+ fake('gift_cards/1023670', body: load_fixture('gift_card'))
20
22
  @gift_card = ShopifyAPI::GiftCard.find(1023670)
21
23
  end
22
24
  end
@@ -15,30 +15,30 @@ class GraphQLTest < Test::Unit::TestCase
15
15
  end
16
16
 
17
17
  test '#initialize_clients creates a GraphQL::Client from local schema file' do
18
- version_fixtures('unstable') do |dir|
18
+ version_fixtures('unstable') do |_dir|
19
19
  ShopifyAPI::GraphQL.initialize_clients
20
20
 
21
- assert ShopifyAPI::GraphQL.client('unstable')
21
+ assert(ShopifyAPI::GraphQL.client('unstable'))
22
22
  end
23
23
  end
24
24
 
25
25
  test '#initialize_clients handles multiple schema files' do
26
- version_fixtures('unstable', '2019-10') do |dir|
26
+ version_fixtures('unstable', '2019-10') do |_dir|
27
27
  ShopifyAPI::GraphQL.initialize_clients
28
28
 
29
- assert ShopifyAPI::GraphQL.client('unstable')
30
- assert ShopifyAPI::GraphQL.client('2019-10')
29
+ assert(ShopifyAPI::GraphQL.client('unstable'))
30
+ assert(ShopifyAPI::GraphQL.client('2019-10'))
31
31
  end
32
32
  end
33
33
 
34
34
  test '#initialize_clients ignores non JSON schema files' do
35
- version_fixtures('unstable', '2019-10') do |dir|
35
+ version_fixtures('unstable', '2019-10') do |_dir|
36
36
  FileUtils.touch(ShopifyAPI::GraphQL.schema_location.join('nope.txt'))
37
37
 
38
38
  ShopifyAPI::GraphQL.initialize_clients
39
39
 
40
- assert ShopifyAPI::GraphQL.client('unstable')
41
- assert ShopifyAPI::GraphQL.client('2019-10')
40
+ assert(ShopifyAPI::GraphQL.client('unstable'))
41
+ assert(ShopifyAPI::GraphQL.client('2019-10'))
42
42
  end
43
43
  end
44
44
 
@@ -47,7 +47,7 @@ class GraphQLTest < Test::Unit::TestCase
47
47
  ShopifyAPI::GraphQL.schema_location = dir
48
48
  FileUtils.touch(ShopifyAPI::GraphQL.schema_location.join('nope.json'))
49
49
 
50
- assert_raises ShopifyAPI::GraphQL::InvalidSchema do
50
+ assert_raises(ShopifyAPI::GraphQL::InvalidSchema) do
51
51
  ShopifyAPI::GraphQL.initialize_clients
52
52
  end
53
53
  end
@@ -60,32 +60,32 @@ class GraphQLTest < Test::Unit::TestCase
60
60
 
61
61
  ShopifyAPI::GraphQL.initialize_clients(raise_on_invalid_schema: false)
62
62
 
63
- assert ShopifyAPI::GraphQL.client('unstable')
63
+ assert(ShopifyAPI::GraphQL.client('unstable'))
64
64
  end
65
65
  end
66
66
 
67
67
  test '#client returns default schema if only one exists' do
68
- version_fixtures('unstable') do |dir|
68
+ version_fixtures('unstable') do |_dir|
69
69
  ShopifyAPI::Base.api_version = 'unstable'
70
70
 
71
71
  ShopifyAPI::GraphQL.initialize_clients
72
72
 
73
- assert_instance_of ::GraphQL::Client, ShopifyAPI::GraphQL.client
73
+ assert_instance_of(::GraphQL::Client, ShopifyAPI::GraphQL.client)
74
74
  end
75
75
  end
76
76
 
77
77
  test '#client accepts optional api_version parameter' do
78
- version_fixtures('unstable') do |dir|
78
+ version_fixtures('unstable') do |_dir|
79
79
  ShopifyAPI::Base.api_version = 'unstable'
80
80
 
81
81
  ShopifyAPI::GraphQL.initialize_clients
82
82
 
83
- assert_instance_of ::GraphQL::Client, ShopifyAPI::GraphQL.client('unstable')
83
+ assert_instance_of(::GraphQL::Client, ShopifyAPI::GraphQL.client('unstable'))
84
84
  end
85
85
  end
86
86
 
87
87
  test '#client executes queries on specified API version' do
88
- version_fixtures('unstable', '2019-10') do |dir|
88
+ version_fixtures('unstable', '2019-10') do |_dir|
89
89
  ShopifyAPI::Base.api_version = 'unstable'
90
90
 
91
91
  ShopifyAPI::GraphQL.initialize_clients
@@ -93,9 +93,9 @@ class GraphQLTest < Test::Unit::TestCase
93
93
 
94
94
  client = ShopifyAPI::GraphQL.client('2019-10')
95
95
 
96
- assert_instance_of ::GraphQL::Client, client
96
+ assert_instance_of(::GraphQL::Client, client)
97
97
 
98
- query = client.parse <<~GRAPHQL
98
+ query = client.parse(<<~GRAPHQL)
99
99
  {
100
100
  product {
101
101
  name
@@ -111,35 +111,35 @@ class GraphQLTest < Test::Unit::TestCase
111
111
  end
112
112
 
113
113
  test '#client raises exception for version that does not exist' do
114
- version_fixtures('unstable') do |dir|
114
+ version_fixtures('unstable') do |_dir|
115
115
  ShopifyAPI::Base.api_version = '2019-10'
116
116
 
117
117
  ShopifyAPI::GraphQL.initialize_clients
118
118
 
119
- assert_raises ShopifyAPI::GraphQL::InvalidClient do
119
+ assert_raises(ShopifyAPI::GraphQL::InvalidClient) do
120
120
  ShopifyAPI::GraphQL.client('2019-10')
121
121
  end
122
122
  end
123
123
  end
124
124
 
125
125
  test '#client lazily initializes clients' do
126
- version_fixtures('unstable') do |dir|
126
+ version_fixtures('unstable') do |_dir|
127
127
  ShopifyAPI::Base.api_version = 'unstable'
128
128
 
129
- assert_raises ShopifyAPI::GraphQL::InvalidClient do
129
+ assert_raises(ShopifyAPI::GraphQL::InvalidClient) do
130
130
  ShopifyAPI::GraphQL.client('2019-10')
131
131
  end
132
132
  end
133
133
  end
134
134
 
135
135
  test '#client caches lookups' do
136
- version_fixtures('unstable') do |dir|
136
+ version_fixtures('unstable') do |_dir|
137
137
  ShopifyAPI::Base.api_version = 'unstable'
138
138
 
139
139
  client1 = ShopifyAPI::GraphQL.client
140
140
  client2 = ShopifyAPI::GraphQL.client('unstable')
141
141
 
142
- assert_equal client1, client2
142
+ assert_equal(client1, client2)
143
143
  end
144
144
  end
145
145
 
@@ -148,11 +148,11 @@ class GraphQLTest < Test::Unit::TestCase
148
148
  end
149
149
 
150
150
  ShopifyAPI::GraphQL.execution_adapter = SuperDuperExecutionAdapter
151
- version_fixtures('unstable') do |dir|
151
+ version_fixtures('unstable') do |_dir|
152
152
  ShopifyAPI::Base.api_version = 'unstable'
153
153
 
154
154
  ShopifyAPI::GraphQL.initialize_clients
155
- assert_instance_of SuperDuperExecutionAdapter, ShopifyAPI::GraphQL.client('unstable').execute
155
+ assert_instance_of(SuperDuperExecutionAdapter, ShopifyAPI::GraphQL.client('unstable').execute)
156
156
  end
157
157
 
158
158
  ShopifyAPI::GraphQL.execution_adapter = nil
@@ -163,12 +163,12 @@ class GraphQLTest < Test::Unit::TestCase
163
163
  end
164
164
 
165
165
  ShopifyAPI::GraphQL.graphql_client = SuperDuperClient
166
- version_fixtures('unstable') do |dir|
166
+ version_fixtures('unstable') do |_dir|
167
167
  ShopifyAPI::Base.api_version = 'unstable'
168
168
 
169
169
  ShopifyAPI::GraphQL.initialize_clients
170
170
 
171
- assert_instance_of SuperDuperClient, ShopifyAPI::GraphQL.client('unstable')
171
+ assert_instance_of(SuperDuperClient, ShopifyAPI::GraphQL.client('unstable'))
172
172
  end
173
173
 
174
174
  ShopifyAPI::GraphQL.clear_clients