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
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ require 'test_helper'
3
+
4
+ class DiscountCodeBatchTest < Test::Unit::TestCase
5
+ def setup
6
+ super
7
+ fake('price_rules/102586120/batch/989355119', body: load_fixture('discount_code_batch'))
8
+ end
9
+
10
+ def test_get_batch
11
+ batch = ShopifyAPI::DiscountCodeBatch.find(989355119, params: { price_rule_id: 102586120 })
12
+
13
+ assert_equal(989355119, batch.id)
14
+ end
15
+
16
+ def test_get_batch_discount_codes
17
+ fake(
18
+ 'price_rules/102586120/batch/989355119/discount_codes',
19
+ method: :get,
20
+ status: 200,
21
+ body: load_fixture('discount_code_batch_discount_codes')
22
+ )
23
+ batch = ShopifyAPI::DiscountCodeBatch.find(989355119, params: { price_rule_id: 102586120 })
24
+ discount_code_job = batch.discount_code_job
25
+
26
+ assert_equal(3, discount_code_job.count)
27
+ assert(discount_code_job[2].errors.present?)
28
+ end
29
+
30
+ def test_create_batch
31
+ fake('price_rules/102586120/batch', method: :post, status: 201, body: load_fixture('discount_code_batch'))
32
+ batch = ShopifyAPI::DiscountCodeBatch.new
33
+ batch.prefix_options[:price_rule_id] = 102586120
34
+ discount_codes = [{ "code": "SUMMER1" }, { "code": "SUMMER2" }, { "code": "SUMMER3" }]
35
+ batch.discount_codes = discount_codes
36
+ batch.save
37
+
38
+ expected_body = { discount_codes: discount_codes }.to_json
39
+ assert_equal(expected_body, WebMock.last_request.body)
40
+ end
41
+ end
@@ -1,36 +1,37 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class DiscountCodeTest < Test::Unit::TestCase
4
5
  def setup
5
6
  super
6
- fake 'price_rules/102586120/discount_codes/1002091923', body: load_fixture('discount_code')
7
+ fake('price_rules/102586120/discount_codes/1002091923', body: load_fixture('discount_code'))
7
8
 
8
- @discount_code = ShopifyAPI::DiscountCode.find(1002091923, params: {price_rule_id: 102586120})
9
+ @discount_code = ShopifyAPI::DiscountCode.find(1002091923, params: { price_rule_id: 102586120 })
9
10
  end
10
11
 
11
12
  def test_get_discount_code
12
- fake 'price_rules/102586120/discount_codes', method: :get, status: 200, body: load_fixture('discount_code')
13
- discount_code = ShopifyAPI::DiscountCode.find 1002091923, params: { price_rule_id: 102586120 }
13
+ fake('price_rules/102586120/discount_codes', method: :get, status: 200, body: load_fixture('discount_code'))
14
+ discount_code = ShopifyAPI::DiscountCode.find(1002091923, params: { price_rule_id: 102586120 })
14
15
 
15
- assert_equal 1002091923, discount_code.id
16
+ assert_equal(1002091923, discount_code.id)
16
17
  end
17
18
 
18
19
  def test_get_all_discount_codes
19
- fake 'price_rules/102586120/discount_codes', method: :get, status: 200, body: load_fixture('discount_codes')
20
- discount_codes = ShopifyAPI::DiscountCode.all params: { price_rule_id: 102586120 }
20
+ fake('price_rules/102586120/discount_codes', method: :get, status: 200, body: load_fixture('discount_codes'))
21
+ discount_codes = ShopifyAPI::DiscountCode.all(params: { price_rule_id: 102586120 })
21
22
 
22
- assert_equal 1, discount_codes.length
23
- assert_equal 1002091923, discount_codes.first.id
23
+ assert_equal(1, discount_codes.length)
24
+ assert_equal(1002091923, discount_codes.first.id)
24
25
  end
25
26
 
26
27
  def test_create_discount_code
27
- fake 'price_rules/102586120/discount_codes', method: :post, status: 201, body: load_fixture('discount_code')
28
+ fake('price_rules/102586120/discount_codes', method: :post, status: 201, body: load_fixture('discount_code'))
28
29
  discount_code = ShopifyAPI::DiscountCode.new
29
30
  discount_code.prefix_options[:price_rule_id] = 102586120
30
31
  discount_code.code = "SUMMERSALE10"
31
32
  discount_code.save
32
33
 
33
- assert_equal '{"discount_code":{"code":"SUMMERSALE10"}}', WebMock.last_request.body
34
+ assert_equal('{"discount_code":{"code":"SUMMERSALE10"}}', WebMock.last_request.body)
34
35
  end
35
36
 
36
37
  def test_update_discount_code
@@ -38,16 +39,21 @@ class DiscountCodeTest < Test::Unit::TestCase
38
39
  discount_code_response['discount_code']['code'] = "WINTERSALE50"
39
40
  @discount_code.code = "WINTERSALE50"
40
41
 
41
- fake 'price_rules/102586120/discount_codes/1002091923', method: :put, status: 200, body: ActiveSupport::JSON.encode(discount_code_response)
42
+ fake(
43
+ 'price_rules/102586120/discount_codes/1002091923',
44
+ method: :put,
45
+ status: 200,
46
+ body: ActiveSupport::JSON.encode(discount_code_response)
47
+ )
42
48
 
43
49
  @discount_code.save
44
50
 
45
- assert_equal discount_code_response['discount_code']['code'], @discount_code.code
51
+ assert_equal(discount_code_response['discount_code']['code'], @discount_code.code)
46
52
  end
47
53
 
48
54
  def test_delete_discount_code
49
- fake 'price_rules/102586120/discount_codes/1002091923', method: :delete, body: 'destroyed'
55
+ fake('price_rules/102586120/discount_codes/1002091923', method: :delete, body: 'destroyed')
50
56
 
51
- assert @discount_code.destroy
57
+ assert(@discount_code.destroy)
52
58
  end
53
59
  end
@@ -1,151 +1,167 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class DraftOrderTest < Test::Unit::TestCase
4
5
  def setup
5
6
  super
6
7
 
7
- fake 'draft_orders/517119332', body: load_fixture('draft_order')
8
+ fake('draft_orders/517119332', body: load_fixture('draft_order'))
8
9
 
9
10
  @draft_order = ShopifyAPI::DraftOrder.find(517119332)
10
11
  end
11
12
 
12
13
  def test_get_draft_order
13
- fake 'draft_orders/517119332', method: :get, status: 200, body: load_fixture('draft_order')
14
+ fake('draft_orders/517119332', method: :get, status: 200, body: load_fixture('draft_order'))
14
15
 
15
16
  draft_order = ShopifyAPI::DraftOrder.find(517119332)
16
17
 
17
- assert_equal 517119332, draft_order.id
18
+ assert_equal(517119332, draft_order.id)
18
19
  end
19
20
 
20
21
  def test_get_all_draft_orders
21
- fake 'draft_orders', method: :get, status: 200, body: load_fixture('draft_orders')
22
+ fake('draft_orders', method: :get, status: 200, body: load_fixture('draft_orders'))
22
23
 
23
24
  draft_orders = ShopifyAPI::DraftOrder.all
24
25
 
25
- assert_equal 1, draft_orders.length
26
- assert_equal 517119332, draft_orders.first.id
26
+ assert_equal(1, draft_orders.length)
27
+ assert_equal(517119332, draft_orders.first.id)
27
28
  end
28
29
 
29
30
  def test_get_count_draft_orders
30
- fake 'draft_orders/count', method: :get, status: 200, body: '{"count": 16}'
31
+ fake('draft_orders/count', method: :get, status: 200, body: '{"count": 16}')
31
32
 
32
33
  draft_orders_count = ShopifyAPI::DraftOrder.count
33
34
 
34
- assert_equal 16, draft_orders_count
35
+ assert_equal(16, draft_orders_count)
35
36
  end
36
37
 
37
38
  def test_create_draft_order
38
- fake 'draft_orders', method: :post, status: 201, body: load_fixture('draft_order')
39
+ fake('draft_orders', method: :post, status: 201, body: load_fixture('draft_order'))
39
40
 
40
41
  draft_order = ShopifyAPI::DraftOrder.create(line_items: [{ quantity: 1, variant_id: 39072856 }])
41
42
 
42
- assert_equal '{"draft_order":{"line_items":[{"quantity":1,"variant_id":39072856}]}}', WebMock.last_request.body
43
- assert_equal 39072856, draft_order.line_items.first.variant_id
43
+ assert_equal('{"draft_order":{"line_items":[{"quantity":1,"variant_id":39072856}]}}', WebMock.last_request.body)
44
+ assert_equal(39072856, draft_order.line_items.first.variant_id)
44
45
  end
45
46
 
46
47
  def test_create_draft_order_202
47
- fake 'draft_orders', method: :post, status: 202, body: load_fixture('draft_order')
48
+ fake('draft_orders', method: :post, status: 202, body: load_fixture('draft_order'))
48
49
 
49
50
  draft_order = ShopifyAPI::DraftOrder.create(line_items: [{ quantity: 1, variant_id: 39072856 }])
50
51
 
51
- assert_equal 39072856, draft_order.line_items.first.variant_id
52
+ assert_equal(39072856, draft_order.line_items.first.variant_id)
52
53
  end
53
54
 
54
55
  def test_update_draft_order
55
56
  draft_order_response = ActiveSupport::JSON.decode(load_fixture('draft_order'))
56
57
  draft_order_response['draft_order']['note'] = 'Test new note'
57
58
  @draft_order.note = 'Test new note'
58
- fake 'draft_orders/517119332', method: :put, status: 200, body: ActiveSupport::JSON.encode(draft_order_response)
59
+ fake('draft_orders/517119332', method: :put, status: 200, body: ActiveSupport::JSON.encode(draft_order_response))
59
60
 
60
61
  @draft_order.save
61
62
 
62
- assert_equal draft_order_response['draft_order']['note'], @draft_order.note
63
+ assert_equal(draft_order_response['draft_order']['note'], @draft_order.note)
63
64
  end
64
65
 
65
66
  def test_send_invoice_with_no_params
66
67
  draft_order_invoice_fixture = load_fixture('draft_order_invoice')
67
68
  draft_order_invoice = ActiveSupport::JSON.decode(draft_order_invoice_fixture)
68
- fake 'draft_orders/517119332/send_invoice', method: :post, body: draft_order_invoice_fixture
69
+ fake('draft_orders/517119332/send_invoice', method: :post, body: draft_order_invoice_fixture)
69
70
 
70
71
  draft_order_invoice_response = @draft_order.send_invoice
71
72
 
72
- assert_equal '{"draft_order_invoice":{}}', WebMock.last_request.body
73
- assert_kind_of ShopifyAPI::DraftOrderInvoice, draft_order_invoice_response
74
- assert_equal draft_order_invoice['draft_order_invoice']['to'], draft_order_invoice_response.to
73
+ assert_equal('{"draft_order_invoice":{}}', WebMock.last_request.body)
74
+ assert_kind_of(ShopifyAPI::DraftOrderInvoice, draft_order_invoice_response)
75
+ assert_equal(draft_order_invoice['draft_order_invoice']['to'], draft_order_invoice_response.to)
75
76
  end
76
77
 
77
78
  def test_send_invoice_with_params
78
79
  draft_order_invoice_fixture = load_fixture('draft_order_invoice')
79
80
  draft_order_invoice = ActiveSupport::JSON.decode(draft_order_invoice_fixture)
80
- fake 'draft_orders/517119332/send_invoice', method: :post, body: draft_order_invoice_fixture
81
+ fake('draft_orders/517119332/send_invoice', method: :post, body: draft_order_invoice_fixture)
81
82
 
82
- draft_order_invoice_response = @draft_order.send_invoice(ShopifyAPI::DraftOrderInvoice.new(draft_order_invoice['draft_order_invoice']))
83
+ draft_order_invoice_response = @draft_order.send_invoice(
84
+ ShopifyAPI::DraftOrderInvoice.new(draft_order_invoice['draft_order_invoice'])
85
+ )
83
86
 
84
- assert_equal draft_order_invoice, ActiveSupport::JSON.decode(WebMock.last_request.body)
85
- assert_kind_of ShopifyAPI::DraftOrderInvoice, draft_order_invoice_response
86
- assert_equal draft_order_invoice['draft_order_invoice']['to'], draft_order_invoice_response.to
87
+ assert_equal(draft_order_invoice, ActiveSupport::JSON.decode(WebMock.last_request.body))
88
+ assert_kind_of(ShopifyAPI::DraftOrderInvoice, draft_order_invoice_response)
89
+ assert_equal(draft_order_invoice['draft_order_invoice']['to'], draft_order_invoice_response.to)
87
90
  end
88
91
 
89
92
  def test_delete_draft_order
90
- fake 'draft_orders/517119332', method: :delete, body: 'destroyed'
91
- assert @draft_order.destroy
93
+ fake('draft_orders/517119332', method: :delete, body: 'destroyed')
94
+ assert(@draft_order.destroy)
92
95
  end
93
96
 
94
97
  def test_add_metafields_to_draft_order
95
- fake 'draft_orders/517119332/metafields', method: :post, status: 201, body: load_fixture('metafield')
96
-
97
- field = @draft_order.add_metafield(ShopifyAPI::Metafield.new(namespace: 'contact', key: 'email', value: '123@example.com', value_type: 'string'))
98
-
99
- assert_equal ActiveSupport::JSON.decode('{"metafield":{"namespace":"contact","key":"email","value":"123@example.com","value_type":"string"}}'), ActiveSupport::JSON.decode(WebMock.last_request.body)
100
- assert !field.new_record?
101
- assert_equal 'contact', field.namespace
102
- assert_equal 'email', field.key
103
- assert_equal '123@example.com', field.value
98
+ fake('draft_orders/517119332/metafields', method: :post, status: 201, body: load_fixture('metafield'))
99
+
100
+ field = @draft_order.add_metafield(
101
+ ShopifyAPI::Metafield.new(namespace: 'contact', key: 'email', value: '123@example.com', value_type: 'string')
102
+ )
103
+
104
+ assert_equal(
105
+ ActiveSupport::JSON.decode(
106
+ '{"metafield":{"namespace":"contact","key":"email","value":"123@example.com","value_type":"string"}}'
107
+ ),
108
+ ActiveSupport::JSON.decode(WebMock.last_request.body)
109
+ )
110
+ assert(!field.new_record?)
111
+ assert_equal('contact', field.namespace)
112
+ assert_equal('email', field.key)
113
+ assert_equal('123@example.com', field.value)
104
114
  end
105
115
 
106
116
  def test_get_all_metafields_for_draft_order
107
- fake 'draft_orders/517119332/metafields', body: load_fixture('metafields')
117
+ fake('draft_orders/517119332/metafields', body: load_fixture('metafields'))
108
118
 
109
119
  metafields = @draft_order.metafields
110
120
 
111
- assert_equal 3, metafields.length
112
- assert metafields.all? { |m| m.is_a?(ShopifyAPI::Metafield) }
121
+ assert_equal(3, metafields.length)
122
+ assert(metafields.all? { |m| m.is_a?(ShopifyAPI::Metafield) })
113
123
  end
114
124
 
115
125
  def test_get_2_metafields_for_draft_order
116
- body = ActiveSupport::JSON.decode load_fixture 'metafields'
117
- body['metafields'].slice! 2, 1
126
+ body = ActiveSupport::JSON.decode(load_fixture('metafields'))
127
+ body['metafields'].slice!(2, 1)
118
128
 
119
- fake 'draft_orders/517119332/metafields.json?limit=2', body: body.to_json, extension: false
129
+ fake('draft_orders/517119332/metafields.json?limit=2', body: body.to_json, extension: false)
120
130
 
121
- metafields = @draft_order.metafields limit: 2
131
+ metafields = @draft_order.metafields(limit: 2)
122
132
 
123
- assert_equal 2, metafields.length
124
- assert metafields.all?{ |m| m.is_a? ShopifyAPI::Metafield }
133
+ assert_equal(2, metafields.length)
134
+ assert(metafields.all? { |m| m.is_a?(ShopifyAPI::Metafield) })
125
135
  end
126
136
 
127
137
  def test_complete_draft_order_with_no_params
128
138
  completed_fixture = load_fixture('draft_order_completed')
129
139
  completed_draft = ActiveSupport::JSON.decode(completed_fixture)['draft_order']
130
- fake 'draft_orders/517119332/complete', method: :put, status: 200, body: completed_fixture
140
+ fake('draft_orders/517119332/complete', method: :put, status: 200, body: completed_fixture)
131
141
 
132
142
  @draft_order.complete
133
143
 
134
- assert_equal completed_draft['status'], @draft_order.status
135
- assert_equal completed_draft['order_id'], @draft_order.order_id
136
- refute_nil @draft_order.completed_at
144
+ assert_equal(completed_draft['status'], @draft_order.status)
145
+ assert_equal(completed_draft['order_id'], @draft_order.order_id)
146
+ refute_nil(@draft_order.completed_at)
137
147
  end
138
148
 
139
149
  def test_complete_draft_order_with_params
140
150
  completed_fixture = load_fixture('draft_order_completed')
141
151
  completed_draft = ActiveSupport::JSON.decode(completed_fixture)['draft_order']
142
152
  complete_params = { payment_pending: true }
143
- fake 'draft_orders/517119332/complete.json?payment_pending=true', extension: false, method: :put, status: 200, body: completed_fixture
153
+ fake(
154
+ 'draft_orders/517119332/complete.json?payment_pending=true',
155
+ extension: false,
156
+ method: :put,
157
+ status: 200,
158
+ body: completed_fixture
159
+ )
144
160
 
145
161
  @draft_order.complete(complete_params)
146
162
 
147
- assert_equal completed_draft['status'], @draft_order.status
148
- assert_equal completed_draft['order_id'], @draft_order.order_id
149
- refute_nil @draft_order.completed_at
163
+ assert_equal(completed_draft['status'], @draft_order.status)
164
+ assert_equal(completed_draft['order_id'], @draft_order.order_id)
165
+ refute_nil(@draft_order.completed_at)
150
166
  end
151
167
  end
@@ -13,6 +13,7 @@
13
13
  "assigned_location_id": 905684977,
14
14
  "request_status": "cancellation_accepted",
15
15
  "delivery_category": null,
16
+ "fulfill_at": null,
16
17
  "fulfillment_order_line_items": [
17
18
  {
18
19
  "id": 519788021,
@@ -51,6 +52,7 @@
51
52
  "assigned_location_id": 905684977,
52
53
  "request_status": "cancellation_accepted",
53
54
  "delivery_category": null,
55
+ "fulfill_at": null,
54
56
  "fulfillment_order_line_items": [
55
57
  {
56
58
  "id": 519788021,
@@ -0,0 +1,14 @@
1
+ {
2
+ "discount_code_creation": {
3
+ "id": 989355119,
4
+ "price_rule_id": 102586120,
5
+ "started_at": null,
6
+ "completed_at": null,
7
+ "created_at": "2018-07-05T13:04:29-04:00",
8
+ "updated_at": "2018-07-05T13:04:29-04:00",
9
+ "status": "queued",
10
+ "codes_count": 3,
11
+ "imported_count": 0,
12
+ "failed_count": 0
13
+ }
14
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "discount_codes": [
3
+ {
4
+ "id": null,
5
+ "code": "SUMMER1",
6
+ "errors": {}
7
+ },
8
+ {
9
+ "id": null,
10
+ "code": "SUMMER2",
11
+ "errors": {}
12
+ },
13
+ {
14
+ "id": null,
15
+ "code": "SUMMER2",
16
+ "errors": {
17
+ "code": ["must be unique"]
18
+ }
19
+ }
20
+ ]
21
+ }
@@ -12,6 +12,7 @@
12
12
  "assigned_location_id": 905684977,
13
13
  "request_status": "unsubmitted",
14
14
  "delivery_category": null,
15
+ "fulfill_at": null,
15
16
  "fulfillment_order_line_items": [
16
17
  {
17
18
  "id": 519788021,
@@ -13,6 +13,7 @@
13
13
  "assigned_location_id": 905684977,
14
14
  "request_status": "unsubmitted",
15
15
  "delivery_category": null,
16
+ "fulfill_at": null,
16
17
  "fulfillment_order_line_items": [
17
18
  {
18
19
  "id": 519788021,
@@ -51,6 +52,7 @@
51
52
  "assigned_location_id": 905684977,
52
53
  "request_status": "unsubmitted",
53
54
  "delivery_category": null,
55
+ "fulfill_at": null,
54
56
  "fulfillment_order_line_items": [
55
57
  {
56
58
  "id": 519788021,
@@ -1,34 +1,37 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  class FulFillmentEventTest < Test::Unit::TestCase
4
5
  def test_find_all_resources
5
- fake 'orders/450789469/fulfillments/255858046/events',
6
- method: :get,
7
- body: "[#{load_fixture('fulfillment_event')}]"
8
-
6
+ fake(
7
+ 'orders/450789469/fulfillments/255858046/events',
8
+ method: :get,
9
+ body: "[#{load_fixture('fulfillment_event')}]"
10
+ )
9
11
  events = ShopifyAPI::FulfillmentEvent.all(
10
12
  params: { fulfillment_id: 255858046, order_id: 450789469 }
11
13
  )
12
14
 
13
- assert_equal 1, events.count
15
+ assert_equal(1, events.count)
14
16
  end
15
17
 
16
18
  def test_find_a_resource
17
- fake 'orders/450789469/fulfillments/255858046/events/334455',
18
- method: :get,
19
- body: load_fixture('fulfillment_event')
20
-
19
+ fake(
20
+ 'orders/450789469/fulfillments/255858046/events/334455',
21
+ method: :get,
22
+ body: load_fixture('fulfillment_event')
23
+ )
21
24
  event = ShopifyAPI::FulfillmentEvent.find(
22
25
  334455, params: { fulfillment_id: 255858046, order_id: 450789469 }
23
26
  )
24
27
 
25
- assert_equal 'in_transit', event.status
26
- assert_equal 255858046, event.fulfillment_id
27
- assert_equal 450789469, event.order_id
28
+ assert_equal('in_transit', event.status)
29
+ assert_equal(255858046, event.fulfillment_id)
30
+ assert_equal(450789469, event.order_id)
28
31
  end
29
32
 
30
33
  def test_create_a_resource
31
- fake 'orders/450789469/fulfillments/255858046/events', method: :post, body: ''
34
+ fake('orders/450789469/fulfillments/255858046/events', method: :post, body: '')
32
35
 
33
36
  event = ShopifyAPI::FulfillmentEvent.new(
34
37
  fulfillment_id: 255858046,
@@ -36,34 +39,36 @@ class FulFillmentEventTest < Test::Unit::TestCase
36
39
  status: 'in_transit'
37
40
  )
38
41
 
39
- assert event.save
42
+ assert(event.save)
40
43
  end
41
44
 
42
45
  def test_update_a_resource
43
- fake 'orders/450789469/fulfillments/255858046/events/334455',
44
- method: :get,
45
- body: load_fixture('fulfillment_event')
46
-
46
+ fake(
47
+ 'orders/450789469/fulfillments/255858046/events/334455',
48
+ method: :get,
49
+ body: load_fixture('fulfillment_event')
50
+ )
47
51
  event = ShopifyAPI::FulfillmentEvent.find(
48
52
  334455, params: { fulfillment_id: 255858046, order_id: 450789469 }
49
53
  )
50
54
 
51
- fake 'orders/450789469/fulfillments/255858046/events/334455', method: :put, body: ''
55
+ fake('orders/450789469/fulfillments/255858046/events/334455', method: :put, body: '')
52
56
 
53
- assert event.save
57
+ assert(event.save)
54
58
  end
55
59
 
56
60
  def test_destroy_a_resource
57
- fake 'orders/450789469/fulfillments/255858046/events/334455',
58
- method: :get,
59
- body: load_fixture('fulfillment_event')
60
-
61
+ fake(
62
+ 'orders/450789469/fulfillments/255858046/events/334455',
63
+ method: :get,
64
+ body: load_fixture('fulfillment_event')
65
+ )
61
66
  event = ShopifyAPI::FulfillmentEvent.find(
62
67
  334455, params: { fulfillment_id: 255858046, order_id: 450789469 }
63
68
  )
64
69
 
65
- fake 'orders/450789469/fulfillments/255858046/events/334455', method: :delete, body: ''
70
+ fake('orders/450789469/fulfillments/255858046/events/334455', method: :delete, body: '')
66
71
 
67
- assert event.destroy
72
+ assert(event.destroy)
68
73
  end
69
74
  end