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,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
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class PaginationTest < Test::Unit::TestCase
@@ -9,14 +10,16 @@ class PaginationTest < Test::Unit::TestCase
9
10
  @next_page_info = "eyJkaXJlY3Rpb24iOiJuZXh0IiwibGFzdF9pZCI6NDQwMDg5NDIzLCJsYXN0X3ZhbHVlIjoiNDQwMDg5NDIzIn0%3D"
10
11
  @previous_page_info = "eyJsYXN0X2lkIjoxMDg4MjgzMDksImxhc3RfdmFsdWUiOiIxMDg4MjgzMDkiLCJkaXJlY3Rpb24iOiJuZXh0In0%3D"
11
12
 
12
- @next_link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?page_info=#{@next_page_info}>; rel=\"next\""
13
- @previous_link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?page_info=#{@previous_page_info}>; rel=\"previous\""
13
+ @next_link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/" \
14
+ "orders.json?page_info=#{@next_page_info}>; rel=\"next\""
15
+ @previous_link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/" \
16
+ "orders.json?page_info=#{@previous_page_info}>; rel=\"previous\""
14
17
  end
15
18
 
16
19
  test "navigates using next and previous link headers with no original params" do
17
- link_header ="#{@previous_link_header}, #{@next_link_header}"
20
+ link_header = "#{@previous_link_header}, #{@next_link_header}"
18
21
 
19
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => link_header
22
+ fake('orders', method: :get, status: 200, api_version: @version, body: load_fixture('orders'), link: link_header)
20
23
  orders = ShopifyAPI::Order.all
21
24
 
22
25
  fake(
@@ -27,7 +30,7 @@ class PaginationTest < Test::Unit::TestCase
27
30
  body: load_fixture('orders')
28
31
  )
29
32
  next_page = orders.fetch_next_page
30
- assert_equal 450789469, next_page.first.id
33
+ assert_equal(450789469, next_page.first.id)
31
34
 
32
35
  fake(
33
36
  'orders',
@@ -38,12 +41,13 @@ class PaginationTest < Test::Unit::TestCase
38
41
  )
39
42
 
40
43
  previous_page = orders.fetch_previous_page
41
- assert_equal 1122334455, previous_page.first.id
44
+ assert_equal(1122334455, previous_page.first.id)
42
45
  end
43
46
 
44
47
  test "uses all passed in querystring parameters" do
45
48
  params = "page_info=#{@next_page_info}&limit=50&fields=#{CGI.escape('id,created_at')}"
46
- @next_link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?#{params}>; rel=\"next\""
49
+ @next_link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/" \
50
+ "orders.json?#{params}>; rel=\"next\""
47
51
  fake(
48
52
  'orders',
49
53
  method: :get,
@@ -60,100 +64,127 @@ class PaginationTest < Test::Unit::TestCase
60
64
  method: :get,
61
65
  status: 200,
62
66
  api_version: @version,
63
- url: "https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?fields=id%2Ccreated_at&limit=50&page_info=#{@next_page_info}",
67
+ url: "https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/" \
68
+ "orders.json?fields=id%2Ccreated_at&limit=50&page_info=#{@next_page_info}",
64
69
  body: load_fixture('orders')
65
70
  )
66
71
  next_page = orders.fetch_next_page
67
- assert_equal 450789469, next_page.first.id
72
+ assert_equal(450789469, next_page.first.id)
68
73
  end
69
74
 
70
75
  test "returns empty next page if just the previous page is present" do
71
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @previous_link_header
76
+ fake(
77
+ 'orders', method: :get, status: 200, api_version: @version,
78
+ body: load_fixture('orders'), link: @previous_link_header
79
+ )
72
80
  orders = ShopifyAPI::Order.all
73
81
 
74
82
  next_page = orders.fetch_next_page
75
- assert_empty next_page
83
+ assert_empty(next_page)
76
84
  end
77
85
 
78
86
  test "returns an empty previous page if just the next page is present" do
79
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @next_link_header
87
+ fake(
88
+ 'orders', method: :get, status: 200, api_version: @version, body: load_fixture('orders'), link: @next_link_header
89
+ )
80
90
  orders = ShopifyAPI::Order.all
81
91
 
82
92
  next_page = orders.fetch_previous_page
83
- assert_empty next_page
93
+ assert_empty(next_page)
84
94
  end
85
95
 
86
96
  test "#next_page? returns true if next page is present" do
87
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @next_link_header
97
+ fake(
98
+ 'orders', method: :get, status: 200, api_version: @version, body: load_fixture('orders'), link: @next_link_header
99
+ )
88
100
  orders = ShopifyAPI::Order.all
89
101
 
90
- assert orders.next_page?
102
+ assert(orders.next_page?)
91
103
  end
92
104
 
93
105
  test "#next_page? returns false if next page is not present" do
94
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @previous_link_header
106
+ fake(
107
+ 'orders', method: :get, status: 200, api_version: @version,
108
+ body: load_fixture('orders'), link: @previous_link_header
109
+ )
95
110
  orders = ShopifyAPI::Order.all
96
111
 
97
- refute orders.next_page?
112
+ refute(orders.next_page?)
98
113
  end
99
114
 
100
115
  test "#next_page_info returns next_page_info if next page is present" do
101
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @next_link_header
116
+ fake(
117
+ 'orders', method: :get, status: 200, api_version: @version, body: load_fixture('orders'), link: @next_link_header
118
+ )
102
119
  orders = ShopifyAPI::Order.all
103
120
 
104
- assert_equal @next_page_info, orders.next_page_info
121
+ assert_equal(@next_page_info, orders.next_page_info)
105
122
  end
106
123
 
107
124
  test "#next_page_info returns nil if next page is not present" do
108
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @previous_link_header
125
+ fake(
126
+ 'orders', method: :get, status: 200, api_version: @version,
127
+ body: load_fixture('orders'), link: @previous_link_header
128
+ )
109
129
  orders = ShopifyAPI::Order.all
110
130
 
111
- assert_nil orders.next_page_info
131
+ assert_nil(orders.next_page_info)
112
132
  end
113
133
 
114
134
  test "#previous_page? returns true if previous page is present" do
115
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @previous_link_header
135
+ fake(
136
+ 'orders', method: :get, status: 200, api_version: @version,
137
+ body: load_fixture('orders'), link: @previous_link_header
138
+ )
116
139
  orders = ShopifyAPI::Order.all
117
140
 
118
- assert orders.previous_page?
141
+ assert(orders.previous_page?)
119
142
  end
120
143
 
121
144
  test "#previous_page? returns false if next page is not present" do
122
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @next_link_header
145
+ fake(
146
+ 'orders', method: :get, status: 200, api_version: @version, body: load_fixture('orders'), link: @next_link_header
147
+ )
123
148
  orders = ShopifyAPI::Order.all
124
149
 
125
- refute orders.previous_page?
150
+ refute(orders.previous_page?)
126
151
  end
127
152
 
128
153
  test "#previous_page_info returns previous_page_info if next page is present" do
129
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @previous_link_header
154
+ fake(
155
+ 'orders', method: :get, status: 200, api_version: @version,
156
+ body: load_fixture('orders'), link: @previous_link_header
157
+ )
130
158
  orders = ShopifyAPI::Order.all
131
159
 
132
- assert_equal @previous_page_info, orders.previous_page_info
160
+ assert_equal(@previous_page_info, orders.previous_page_info)
133
161
  end
134
162
 
135
163
  test "#previous_page_info returns nil if next page is not present" do
136
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => @next_link_header
164
+ fake(
165
+ 'orders', method: :get, status: 200, api_version: @version, body: load_fixture('orders'), link: @next_link_header
166
+ )
137
167
  orders = ShopifyAPI::Order.all
138
168
 
139
- assert_nil orders.previous_page_info
169
+ assert_nil(orders.previous_page_info)
140
170
  end
141
171
 
142
172
  test "pagination handles no link headers" do
143
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders')
173
+ fake('orders', method: :get, status: 200, api_version: @version, body: load_fixture('orders'))
144
174
  orders = ShopifyAPI::Order.all
145
175
 
146
- refute orders.next_page?
147
- refute orders.previous_page?
148
- assert_empty orders.fetch_next_page
149
- assert_empty orders.fetch_previous_page
176
+ refute(orders.next_page?)
177
+ refute(orders.previous_page?)
178
+ assert_empty(orders.fetch_next_page)
179
+ assert_empty(orders.fetch_previous_page)
150
180
  end
151
181
 
152
182
  test "raises on invalid pagination links" do
153
- link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?page_info=#{@next_page_info}>;"
154
- fake 'orders', :method => :get, :status => 200, api_version: @version, :body => load_fixture('orders'), :link => link_header
183
+ link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/" \
184
+ "orders.json?page_info=#{@next_page_info}>;"
185
+ fake('orders', method: :get, status: 200, api_version: @version, body: load_fixture('orders'), link: link_header)
155
186
 
156
- assert_raises ShopifyAPI::InvalidPaginationLinksError do
187
+ assert_raises(ShopifyAPI::InvalidPaginationLinksError) do
157
188
  ShopifyAPI::Order.all
158
189
  end
159
190
  end
@@ -162,10 +193,10 @@ class PaginationTest < Test::Unit::TestCase
162
193
  version = ShopifyAPI::ApiVersion.find_version('2019-04')
163
194
  ShopifyAPI::Base.api_version = version.to_s
164
195
 
165
- fake 'orders', :method => :get, :status => 200, api_version: version, :body => load_fixture('orders')
196
+ fake('orders', method: :get, status: 200, api_version: version, body: load_fixture('orders'))
166
197
  orders = ShopifyAPI::Order.all
167
198
 
168
- assert_raises NotImplementedError do
199
+ assert_raises(NotImplementedError) do
169
200
  orders.fetch_next_page
170
201
  end
171
202
  end
@@ -174,10 +205,10 @@ class PaginationTest < Test::Unit::TestCase
174
205
  version = ShopifyAPI::ApiVersion.find_version('2019-07')
175
206
  ShopifyAPI::Base.api_version = version.to_s
176
207
 
177
- fake 'orders', :method => :get, :status => 200, api_version: version, :body => load_fixture('orders')
208
+ fake('orders', method: :get, status: 200, api_version: version, body: load_fixture('orders'))
178
209
  orders = ShopifyAPI::Order.all
179
210
 
180
- assert_raises NotImplementedError do
211
+ assert_raises(NotImplementedError) do
181
212
  orders.fetch_next_page
182
213
  end
183
214
  end
@@ -186,21 +217,22 @@ class PaginationTest < Test::Unit::TestCase
186
217
  version = ShopifyAPI::ApiVersion.find_version('2019-07')
187
218
  ShopifyAPI::Base.api_version = version.to_s
188
219
 
189
- fake 'events', :method => :get, :status => 200, api_version: version, :body => load_fixture('events')
220
+ fake('events', method: :get, status: 200, api_version: version, body: load_fixture('events'))
190
221
  events = ShopifyAPI::Event.all
191
222
 
192
- assert_empty events.fetch_next_page
193
- assert_empty events.fetch_previous_page
223
+ assert_empty(events.fetch_next_page)
224
+ assert_empty(events.fetch_previous_page)
194
225
  end
195
226
 
196
227
  test "does not raise on the unstable version" do
197
228
  version = ShopifyAPI::ApiVersion.find_version('unstable')
198
229
  ShopifyAPI::Base.api_version = version.to_s
199
- @next_link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/unstable/orders.json?page_info=#{@next_page_info}>; rel=\"next\""
230
+ @next_link_header = "<https://this-is-my-test-shop.myshopify.com/admin/api/unstable/" \
231
+ "orders.json?page_info=#{@next_page_info}>; rel=\"next\""
200
232
 
201
- link_header ="#{@previous_link_header}, #{@next_link_header}"
233
+ link_header = "#{@previous_link_header}, #{@next_link_header}"
202
234
 
203
- fake 'orders', :method => :get, :status => 200, api_version: version, :body => load_fixture('orders'), :link => link_header
235
+ fake('orders', method: :get, status: 200, api_version: version, body: load_fixture('orders'), link: link_header)
204
236
  orders = ShopifyAPI::Order.all
205
237
 
206
238
  fake(
@@ -212,7 +244,7 @@ class PaginationTest < Test::Unit::TestCase
212
244
  )
213
245
  assert_nothing_raised do
214
246
  next_page = orders.fetch_next_page
215
- assert_equal 450789469, next_page.first.id
247
+ assert_equal(450789469, next_page.first.id)
216
248
  end
217
249
  end
218
250
 
@@ -225,9 +257,10 @@ class PaginationTest < Test::Unit::TestCase
225
257
  api_version: @version,
226
258
  url: "https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?limit=5",
227
259
  body: load_fixture('orders'),
228
- link: "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?#{first_request_params}>; rel=\"next\""
260
+ link: "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/" \
261
+ "orders.json?#{first_request_params}>; rel=\"next\""
229
262
  )
230
- orders = ShopifyAPI::Order.where(limit: 5)
263
+ ShopifyAPI::Order.where(limit: 5)
231
264
 
232
265
  second_request_params = "page_info=#{@next_page_info}&limit=5"
233
266
  fake(
@@ -237,21 +270,21 @@ class PaginationTest < Test::Unit::TestCase
237
270
  api_version: @version,
238
271
  url: "https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?limit=10",
239
272
  body: load_fixture('orders'),
240
- link: "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?#{second_request_params}>; rel=\"next\""
273
+ link: "<https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/" \
274
+ "orders.json?#{second_request_params}>; rel=\"next\""
241
275
  )
242
-
243
- orders2 = ShopifyAPI::Order.where(limit: 10)
276
+ orders = ShopifyAPI::Order.where(limit: 10)
244
277
 
245
278
  fake(
246
279
  'orders',
247
280
  method: :get,
248
281
  status: 200,
249
282
  api_version: @version,
250
- url: "https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/orders.json?limit=5&page_info=#{@next_page_info}",
283
+ url: "https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/" \
284
+ "orders.json?limit=5&page_info=#{@next_page_info}",
251
285
  body: load_fixture('orders')
252
286
  )
253
287
  next_page = orders.fetch_next_page
254
- assert_equal 450789469, next_page.first.id
288
+ assert_equal(450789469, next_page.first.id)
255
289
  end
256
-
257
290
  end
@@ -1,19 +1,20 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class PolicyTest < Test::Unit::TestCase
4
5
  def setup
5
6
  super
6
- fake 'shop'
7
+ fake('shop')
7
8
  end
8
9
 
9
10
  def test_getting_the_list_of_policies
10
- fake 'policies'
11
+ fake('policies')
11
12
 
12
13
  policies = ShopifyAPI::Policy.all
13
- assert_equal 1, policies.length
14
+ assert_equal(1, policies.length)
14
15
 
15
16
  policy = policies.first
16
- assert_equal 'Privacy Policy', policy.title
17
- assert_equal 'Your privacy is important to us', policy.body
17
+ assert_equal('Privacy Policy', policy.title)
18
+ assert_equal('Your privacy is important to us', policy.body)
18
19
  end
19
20
  end