shopify_api 9.0.2 → 9.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +36 -0
  3. data/.github/workflows/build.yml +41 -0
  4. data/.gitignore +2 -1
  5. data/.rubocop.yml +23 -3
  6. data/.rubocop_todo.yml +75 -0
  7. data/CHANGELOG.md +43 -0
  8. data/CONTRIBUTING.md +1 -1
  9. data/Gemfile +5 -0
  10. data/Gemfile.lock +151 -0
  11. data/Gemfile_ar51 +1 -1
  12. data/README.md +47 -31
  13. data/RELEASING +10 -6
  14. data/Rakefile +16 -5
  15. data/SECURITY.md +59 -0
  16. data/docs/_config.yml +1 -0
  17. data/docs/_includes/footer.html +28 -0
  18. data/docs/_includes/head.html +28 -0
  19. data/docs/_layouts/index.html +57 -0
  20. data/docs/graphql.md +47 -2
  21. data/docs/index.md +639 -0
  22. data/lib/active_resource/connection_ext.rb +1 -0
  23. data/lib/active_resource/detailed_log_subscriber.rb +6 -7
  24. data/lib/active_resource/json_errors.rb +8 -2
  25. data/lib/shopify_api.rb +8 -1
  26. data/lib/shopify_api/api_access.rb +57 -0
  27. data/lib/shopify_api/api_version.rb +6 -5
  28. data/lib/shopify_api/connection.rb +1 -0
  29. data/lib/shopify_api/countable.rb +3 -2
  30. data/lib/shopify_api/disable_prefix_check.rb +2 -2
  31. data/lib/shopify_api/events.rb +2 -1
  32. data/lib/shopify_api/graphql.rb +28 -8
  33. data/lib/shopify_api/limits.rb +3 -2
  34. data/lib/shopify_api/message_enricher.rb +11 -9
  35. data/lib/shopify_api/meta.rb +0 -1
  36. data/lib/shopify_api/metafields.rb +5 -4
  37. data/lib/shopify_api/pagination_link_headers.rb +5 -4
  38. data/lib/shopify_api/resources.rb +1 -0
  39. data/lib/shopify_api/resources/access_scope.rb +1 -1
  40. data/lib/shopify_api/resources/access_token.rb +1 -0
  41. data/lib/shopify_api/resources/address.rb +1 -0
  42. data/lib/shopify_api/resources/announcement.rb +2 -1
  43. data/lib/shopify_api/resources/application_charge.rb +1 -0
  44. data/lib/shopify_api/resources/application_credit.rb +1 -0
  45. data/lib/shopify_api/resources/article.rb +3 -2
  46. data/lib/shopify_api/resources/asset.rb +6 -5
  47. data/lib/shopify_api/resources/assigned_fulfillment_order.rb +1 -1
  48. data/lib/shopify_api/resources/base.rb +12 -8
  49. data/lib/shopify_api/resources/billing_address.rb +1 -0
  50. data/lib/shopify_api/resources/blog.rb +2 -1
  51. data/lib/shopify_api/resources/carrier_service.rb +1 -0
  52. data/lib/shopify_api/resources/cart.rb +2 -1
  53. data/lib/shopify_api/resources/collect.rb +1 -0
  54. data/lib/shopify_api/resources/collection_listing.rb +1 -0
  55. data/lib/shopify_api/resources/comment.rb +20 -5
  56. data/lib/shopify_api/resources/country.rb +1 -0
  57. data/lib/shopify_api/resources/custom_collection.rb +4 -3
  58. data/lib/shopify_api/resources/customer.rb +2 -1
  59. data/lib/shopify_api/resources/customer_group.rb +1 -0
  60. data/lib/shopify_api/resources/customer_invite.rb +1 -0
  61. data/lib/shopify_api/resources/customer_saved_search.rb +2 -1
  62. data/lib/shopify_api/resources/discount_code.rb +1 -0
  63. data/lib/shopify_api/resources/discount_code_batch.rb +34 -0
  64. data/lib/shopify_api/resources/draft_order.rb +1 -0
  65. data/lib/shopify_api/resources/draft_order_invoice.rb +1 -0
  66. data/lib/shopify_api/resources/event.rb +1 -0
  67. data/lib/shopify_api/resources/fulfillment.rb +12 -3
  68. data/lib/shopify_api/resources/fulfillment_event.rb +1 -0
  69. data/lib/shopify_api/resources/fulfillment_order.rb +30 -16
  70. data/lib/shopify_api/resources/fulfillment_order_locations_for_move.rb +1 -0
  71. data/lib/shopify_api/resources/fulfillment_request.rb +1 -0
  72. data/lib/shopify_api/resources/fulfillment_service.rb +1 -0
  73. data/lib/shopify_api/resources/fulfillment_v2.rb +3 -2
  74. data/lib/shopify_api/resources/gift_card.rb +1 -0
  75. data/lib/shopify_api/resources/image.rb +2 -1
  76. data/lib/shopify_api/resources/inventory_level.rb +3 -4
  77. data/lib/shopify_api/resources/line_item.rb +4 -3
  78. data/lib/shopify_api/resources/location.rb +1 -1
  79. data/lib/shopify_api/resources/marketing_event.rb +1 -0
  80. data/lib/shopify_api/resources/metafield.rb +1 -0
  81. data/lib/shopify_api/resources/note_attribute.rb +1 -0
  82. data/lib/shopify_api/resources/option.rb +1 -0
  83. data/lib/shopify_api/resources/order.rb +2 -1
  84. data/lib/shopify_api/resources/order_risk.rb +1 -0
  85. data/lib/shopify_api/resources/page.rb +1 -0
  86. data/lib/shopify_api/resources/payment_details.rb +1 -0
  87. data/lib/shopify_api/resources/policy.rb +1 -0
  88. data/lib/shopify_api/resources/price_rule.rb +1 -1
  89. data/lib/shopify_api/resources/product.rb +27 -3
  90. data/lib/shopify_api/resources/product_listing.rb +1 -0
  91. data/lib/shopify_api/resources/province.rb +1 -0
  92. data/lib/shopify_api/resources/receipt.rb +1 -0
  93. data/lib/shopify_api/resources/recurring_application_charge.rb +4 -1
  94. data/lib/shopify_api/resources/redirect.rb +1 -0
  95. data/lib/shopify_api/resources/refund.rb +2 -1
  96. data/lib/shopify_api/resources/report.rb +1 -0
  97. data/lib/shopify_api/resources/resource_feedback.rb +1 -1
  98. data/lib/shopify_api/resources/rule.rb +1 -0
  99. data/lib/shopify_api/resources/script_tag.rb +1 -0
  100. data/lib/shopify_api/resources/shipping_address.rb +1 -0
  101. data/lib/shopify_api/resources/shipping_line.rb +1 -0
  102. data/lib/shopify_api/resources/shipping_zone.rb +1 -0
  103. data/lib/shopify_api/resources/shop.rb +2 -1
  104. data/lib/shopify_api/resources/smart_collection.rb +4 -8
  105. data/lib/shopify_api/resources/storefront_access_token.rb +1 -0
  106. data/lib/shopify_api/resources/tax_line.rb +1 -0
  107. data/lib/shopify_api/resources/tax_service.rb +1 -0
  108. data/lib/shopify_api/resources/theme.rb +1 -0
  109. data/lib/shopify_api/resources/transaction.rb +1 -0
  110. data/lib/shopify_api/resources/usage_charge.rb +1 -0
  111. data/lib/shopify_api/resources/user.rb +1 -0
  112. data/lib/shopify_api/resources/variant.rb +35 -0
  113. data/lib/shopify_api/resources/webhook.rb +1 -0
  114. data/lib/shopify_api/session.rb +43 -14
  115. data/lib/shopify_api/version.rb +2 -1
  116. data/lib/verify_docs.rb +8 -0
  117. data/service.yml +1 -1
  118. data/shopify_api.gemspec +13 -6
  119. data/test/access_token_test.rb +6 -5
  120. data/test/active_resource/json_errors_test.rb +6 -6
  121. data/test/api_access_test.rb +153 -0
  122. data/test/api_version_test.rb +3 -3
  123. data/test/application_charge_test.rb +30 -27
  124. data/test/application_credit_test.rb +10 -9
  125. data/test/article_test.rb +34 -35
  126. data/test/asset_test.rb +14 -6
  127. data/test/assigned_fulfillment_order_test.rb +5 -4
  128. data/test/base_test.rb +64 -49
  129. data/test/blog_test.rb +4 -3
  130. data/test/carrier_service_test.rb +7 -6
  131. data/test/cart_test.rb +2 -1
  132. data/test/collect_test.rb +4 -3
  133. data/test/collection_listing_test.rb +21 -16
  134. data/test/collection_publication_test.rb +8 -8
  135. data/test/collection_test.rb +20 -19
  136. data/test/countable_test.rb +3 -2
  137. data/test/currency_test.rb +5 -5
  138. data/test/custom_collection_test.rb +4 -3
  139. data/test/customer_saved_search_test.rb +18 -8
  140. data/test/customer_test.rb +22 -14
  141. data/test/detailed_log_subscriber_test.rb +15 -11
  142. data/test/discount_code_batch_test.rb +41 -0
  143. data/test/discount_code_test.rb +21 -15
  144. data/test/draft_order_test.rb +68 -52
  145. data/test/fixtures/assigned_fulfillment_orders.json +2 -0
  146. data/test/fixtures/discount_code_batch.json +14 -0
  147. data/test/fixtures/discount_code_batch_discount_codes.json +21 -0
  148. data/test/fixtures/fulfillment_order.json +1 -0
  149. data/test/fixtures/fulfillment_orders.json +2 -0
  150. data/test/fulfillment_event_test.rb +31 -26
  151. data/test/fulfillment_order_test.rb +215 -147
  152. data/test/fulfillment_order_test_helper.rb +1 -0
  153. data/test/fulfillment_request_test.rb +10 -8
  154. data/test/fulfillment_service_test.rb +13 -12
  155. data/test/fulfillment_test.rb +81 -66
  156. data/test/fulfillment_v2_test.rb +16 -12
  157. data/test/gift_card_test.rb +6 -4
  158. data/test/graphql_test.rb +55 -23
  159. data/test/image_test.rb +19 -17
  160. data/test/inventory_level_test.rb +24 -15
  161. data/test/lib/webmock_extensions/last_request.rb +1 -1
  162. data/test/limits_test.rb +2 -1
  163. data/test/location_test.rb +2 -1
  164. data/test/marketing_event_test.rb +20 -20
  165. data/test/message_enricher_test.rb +6 -6
  166. data/test/meta_test.rb +7 -9
  167. data/test/metafield_test.rb +30 -20
  168. data/test/order_risk_test.rb +17 -16
  169. data/test/order_test.rb +43 -28
  170. data/test/pagination_test.rb +89 -56
  171. data/test/policy_test.rb +6 -5
  172. data/test/price_rule_test.rb +20 -15
  173. data/test/product_listing_test.rb +20 -20
  174. data/test/product_publication_test.rb +8 -8
  175. data/test/product_test.rb +71 -20
  176. data/test/publication_test.rb +3 -3
  177. data/test/recurring_application_charge_test.rb +104 -42
  178. data/test/redirect_test.rb +4 -3
  179. data/test/refund_test.rb +22 -17
  180. data/test/report_test.rb +12 -10
  181. data/test/resource_feedback_test.rb +14 -13
  182. data/test/script_tag_test.rb +10 -9
  183. data/test/session_test.rb +234 -43
  184. data/test/shipping_zone_test.rb +4 -3
  185. data/test/shop_test.rb +47 -33
  186. data/test/smart_collection_test.rb +5 -29
  187. data/test/storefront_access_token_test.rb +13 -15
  188. data/test/tax_service_test.rb +7 -4
  189. data/test/tender_transaction_test.rb +3 -3
  190. data/test/test_helper.rb +14 -12
  191. data/test/transaction_test.rb +4 -3
  192. data/test/usage_charge_test.rb +12 -8
  193. data/test/user_test.rb +4 -3
  194. data/test/variant_test.rb +50 -23
  195. data/test/webhook_test.rb +10 -7
  196. metadata +30 -15
  197. data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +0 -1027
  198. data/.travis.yml +0 -23
  199. data/bin/shopify +0 -3
@@ -1,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