shopify_api 9.2.0 → 9.5
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.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +1 -1
- data/.github/ISSUE_TEMPLATE.md +36 -0
- data/.github/workflows/build.yml +44 -0
- data/.gitignore +0 -1
- data/.rubocop.yml +23 -3
- data/.rubocop_todo.yml +75 -0
- data/CHANGELOG.md +29 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +153 -0
- data/Gemfile_ar51 +1 -1
- data/README.md +41 -31
- data/RELEASING +10 -6
- data/Rakefile +10 -6
- data/dev.yml +11 -0
- data/docs/graphql.md +1 -1
- data/docs/index.md +1 -1
- data/lib/active_resource/connection_ext.rb +1 -0
- data/lib/active_resource/detailed_log_subscriber.rb +10 -7
- data/lib/active_resource/json_errors.rb +8 -2
- data/lib/shopify_api/api_access.rb +57 -0
- data/lib/shopify_api/api_version.rb +6 -5
- data/lib/shopify_api/connection.rb +1 -0
- data/lib/shopify_api/countable.rb +3 -2
- data/lib/shopify_api/disable_prefix_check.rb +2 -2
- data/lib/shopify_api/events.rb +2 -1
- data/lib/shopify_api/graphql.rb +8 -6
- data/lib/shopify_api/hmac_params.rb +23 -0
- data/lib/shopify_api/limits.rb +3 -2
- data/lib/shopify_api/message_enricher.rb +11 -9
- data/lib/shopify_api/meta.rb +0 -1
- data/lib/shopify_api/metafields.rb +5 -4
- data/lib/shopify_api/pagination_link_headers.rb +4 -3
- data/lib/shopify_api/resources/access_scope.rb +1 -1
- data/lib/shopify_api/resources/access_token.rb +1 -0
- data/lib/shopify_api/resources/address.rb +1 -0
- data/lib/shopify_api/resources/announcement.rb +2 -1
- data/lib/shopify_api/resources/application_charge.rb +1 -0
- data/lib/shopify_api/resources/application_credit.rb +1 -0
- data/lib/shopify_api/resources/article.rb +3 -2
- data/lib/shopify_api/resources/asset.rb +6 -5
- data/lib/shopify_api/resources/assigned_fulfillment_order.rb +1 -1
- data/lib/shopify_api/resources/base.rb +11 -6
- data/lib/shopify_api/resources/billing_address.rb +1 -0
- data/lib/shopify_api/resources/blog.rb +2 -1
- data/lib/shopify_api/resources/carrier_service.rb +1 -0
- data/lib/shopify_api/resources/cart.rb +2 -1
- data/lib/shopify_api/resources/collect.rb +1 -0
- data/lib/shopify_api/resources/collection_listing.rb +1 -0
- data/lib/shopify_api/resources/comment.rb +20 -5
- data/lib/shopify_api/resources/country.rb +1 -0
- data/lib/shopify_api/resources/custom_collection.rb +4 -3
- data/lib/shopify_api/resources/customer.rb +2 -1
- data/lib/shopify_api/resources/customer_group.rb +1 -0
- data/lib/shopify_api/resources/customer_invite.rb +1 -0
- data/lib/shopify_api/resources/customer_saved_search.rb +2 -1
- data/lib/shopify_api/resources/discount_code.rb +1 -0
- data/lib/shopify_api/resources/discount_code_batch.rb +4 -2
- data/lib/shopify_api/resources/draft_order.rb +1 -0
- data/lib/shopify_api/resources/draft_order_invoice.rb +1 -0
- data/lib/shopify_api/resources/event.rb +1 -0
- data/lib/shopify_api/resources/fulfillment.rb +12 -3
- data/lib/shopify_api/resources/fulfillment_event.rb +1 -0
- data/lib/shopify_api/resources/fulfillment_order.rb +30 -16
- data/lib/shopify_api/resources/fulfillment_order_locations_for_move.rb +1 -0
- data/lib/shopify_api/resources/fulfillment_request.rb +1 -0
- data/lib/shopify_api/resources/fulfillment_service.rb +1 -0
- data/lib/shopify_api/resources/fulfillment_v2.rb +3 -2
- data/lib/shopify_api/resources/gift_card.rb +1 -0
- data/lib/shopify_api/resources/image.rb +2 -1
- data/lib/shopify_api/resources/inventory_level.rb +2 -3
- data/lib/shopify_api/resources/line_item.rb +4 -3
- data/lib/shopify_api/resources/location.rb +1 -1
- data/lib/shopify_api/resources/marketing_event.rb +1 -0
- data/lib/shopify_api/resources/metafield.rb +1 -0
- data/lib/shopify_api/resources/note_attribute.rb +1 -0
- data/lib/shopify_api/resources/option.rb +1 -0
- data/lib/shopify_api/resources/order.rb +2 -1
- data/lib/shopify_api/resources/order_risk.rb +1 -0
- data/lib/shopify_api/resources/page.rb +1 -0
- data/lib/shopify_api/resources/payment_details.rb +1 -0
- data/lib/shopify_api/resources/policy.rb +1 -0
- data/lib/shopify_api/resources/price_rule.rb +1 -1
- data/lib/shopify_api/resources/product.rb +14 -11
- data/lib/shopify_api/resources/product_listing.rb +1 -0
- data/lib/shopify_api/resources/province.rb +1 -0
- data/lib/shopify_api/resources/receipt.rb +1 -0
- data/lib/shopify_api/resources/recurring_application_charge.rb +4 -1
- data/lib/shopify_api/resources/redirect.rb +1 -0
- data/lib/shopify_api/resources/refund.rb +2 -1
- data/lib/shopify_api/resources/report.rb +1 -0
- data/lib/shopify_api/resources/resource_feedback.rb +1 -1
- data/lib/shopify_api/resources/rule.rb +1 -0
- data/lib/shopify_api/resources/script_tag.rb +1 -0
- data/lib/shopify_api/resources/shipping_address.rb +1 -0
- data/lib/shopify_api/resources/shipping_line.rb +1 -0
- data/lib/shopify_api/resources/shipping_zone.rb +1 -0
- data/lib/shopify_api/resources/shop.rb +2 -1
- data/lib/shopify_api/resources/smart_collection.rb +2 -2
- data/lib/shopify_api/resources/storefront_access_token.rb +1 -0
- data/lib/shopify_api/resources/tax_line.rb +1 -0
- data/lib/shopify_api/resources/tax_service.rb +1 -0
- data/lib/shopify_api/resources/theme.rb +1 -0
- data/lib/shopify_api/resources/transaction.rb +1 -0
- data/lib/shopify_api/resources/usage_charge.rb +1 -0
- data/lib/shopify_api/resources/user.rb +1 -0
- data/lib/shopify_api/resources/variant.rb +16 -18
- data/lib/shopify_api/resources/webhook.rb +1 -0
- data/lib/shopify_api/resources.rb +1 -0
- data/lib/shopify_api/session.rb +29 -19
- data/lib/shopify_api/version.rb +2 -1
- data/lib/shopify_api.rb +9 -1
- data/lib/verify_docs.rb +1 -0
- data/service.yml +2 -5
- data/shopify_api.gemspec +12 -5
- data/test/access_token_test.rb +6 -5
- data/test/active_resource/json_errors_test.rb +6 -6
- data/test/api_access_test.rb +153 -0
- data/test/api_version_test.rb +3 -3
- data/test/application_charge_test.rb +30 -27
- data/test/application_credit_test.rb +10 -9
- data/test/article_test.rb +34 -35
- data/test/asset_test.rb +14 -6
- data/test/assigned_fulfillment_order_test.rb +5 -4
- data/test/base_test.rb +55 -56
- data/test/blog_test.rb +4 -3
- data/test/carrier_service_test.rb +7 -6
- data/test/cart_test.rb +2 -1
- data/test/collect_test.rb +4 -3
- data/test/collection_listing_test.rb +21 -16
- data/test/collection_publication_test.rb +8 -8
- data/test/collection_test.rb +20 -19
- data/test/countable_test.rb +3 -2
- data/test/currency_test.rb +5 -5
- data/test/custom_collection_test.rb +4 -3
- data/test/customer_saved_search_test.rb +18 -8
- data/test/customer_test.rb +22 -14
- data/test/detailed_log_subscriber_test.rb +16 -12
- data/test/discount_code_batch_test.rb +11 -10
- data/test/discount_code_test.rb +21 -15
- data/test/draft_order_test.rb +68 -52
- data/test/fixtures/assigned_fulfillment_orders.json +2 -0
- data/test/fixtures/fulfillment_order.json +1 -0
- data/test/fixtures/fulfillment_orders.json +2 -0
- data/test/fulfillment_event_test.rb +31 -26
- data/test/fulfillment_order_test.rb +217 -149
- data/test/fulfillment_order_test_helper.rb +1 -0
- data/test/fulfillment_request_test.rb +10 -8
- data/test/fulfillment_service_test.rb +13 -12
- data/test/fulfillment_test.rb +81 -66
- data/test/fulfillment_v2_test.rb +16 -12
- data/test/gift_card_test.rb +6 -4
- data/test/graphql_test.rb +27 -27
- data/test/hmac_params_test.rb +25 -0
- data/test/image_test.rb +19 -17
- data/test/inventory_level_test.rb +24 -15
- data/test/lib/webmock_extensions/last_request.rb +1 -1
- data/test/limits_test.rb +2 -1
- data/test/location_test.rb +2 -1
- data/test/marketing_event_test.rb +20 -20
- data/test/message_enricher_test.rb +6 -6
- data/test/meta_test.rb +9 -11
- data/test/metafield_test.rb +30 -20
- data/test/order_risk_test.rb +17 -16
- data/test/order_test.rb +43 -28
- data/test/pagination_test.rb +89 -56
- data/test/policy_test.rb +6 -5
- data/test/price_rule_test.rb +20 -15
- data/test/product_listing_test.rb +20 -20
- data/test/product_publication_test.rb +8 -8
- data/test/product_test.rb +44 -32
- data/test/publication_test.rb +3 -3
- data/test/recurring_application_charge_test.rb +104 -42
- data/test/redirect_test.rb +4 -3
- data/test/refund_test.rb +22 -17
- data/test/report_test.rb +12 -10
- data/test/resource_feedback_test.rb +14 -13
- data/test/script_tag_test.rb +10 -9
- data/test/session_test.rb +159 -48
- data/test/shipping_zone_test.rb +4 -3
- data/test/shop_test.rb +47 -33
- data/test/smart_collection_test.rb +5 -4
- data/test/storefront_access_token_test.rb +13 -15
- data/test/tax_service_test.rb +7 -4
- data/test/tender_transaction_test.rb +3 -3
- data/test/test_helper.rb +13 -11
- data/test/transaction_test.rb +4 -3
- data/test/usage_charge_test.rb +12 -8
- data/test/user_test.rb +4 -3
- data/test/variant_test.rb +23 -54
- data/test/webhook_test.rb +10 -7
- metadata +34 -12
- data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +0 -1027
- data/.travis.yml +0 -28
data/test/test_helper.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'rubygems'
|
|
2
3
|
require 'minitest/autorun'
|
|
3
4
|
require 'webmock/minitest'
|
|
@@ -23,7 +24,7 @@ module Test
|
|
|
23
24
|
self.test("should_#{string}", &block)
|
|
24
25
|
end
|
|
25
26
|
|
|
26
|
-
def self.context(
|
|
27
|
+
def self.context(_string)
|
|
27
28
|
yield
|
|
28
29
|
end
|
|
29
30
|
|
|
@@ -34,6 +35,7 @@ module Test
|
|
|
34
35
|
const = mod.const_get(const)
|
|
35
36
|
const.format = :json if const.respond_to?(:format=)
|
|
36
37
|
rescue NameError
|
|
38
|
+
# Do nothing
|
|
37
39
|
end
|
|
38
40
|
end
|
|
39
41
|
|
|
@@ -68,7 +70,7 @@ module Test
|
|
|
68
70
|
|
|
69
71
|
# Custom Assertions
|
|
70
72
|
def assert_not(expression)
|
|
71
|
-
refute
|
|
73
|
+
refute(expression, "Expected <#{expression}> to be false!")
|
|
72
74
|
end
|
|
73
75
|
|
|
74
76
|
def assert_nothing_raised
|
|
@@ -76,30 +78,30 @@ module Test
|
|
|
76
78
|
end
|
|
77
79
|
|
|
78
80
|
def assert_not_includes(array, value)
|
|
79
|
-
refute
|
|
81
|
+
refute(array.include?(value))
|
|
80
82
|
end
|
|
81
83
|
|
|
82
84
|
def assert_includes(array, value)
|
|
83
|
-
assert
|
|
85
|
+
assert(array.include?(value))
|
|
84
86
|
end
|
|
85
87
|
|
|
86
|
-
def load_fixture(name, format
|
|
88
|
+
def load_fixture(name, format = :json)
|
|
87
89
|
File.read(File.dirname(__FILE__) + "/fixtures/#{name}.#{format}")
|
|
88
90
|
end
|
|
89
91
|
|
|
90
92
|
def assert_request_body(expected)
|
|
91
|
-
assert_equal
|
|
93
|
+
assert_equal(expected, WebMock.last_request.body)
|
|
92
94
|
end
|
|
93
95
|
|
|
94
|
-
def fake(endpoint, options={})
|
|
95
|
-
request_body = options.
|
|
96
|
-
body
|
|
96
|
+
def fake(endpoint, options = {})
|
|
97
|
+
request_body = options.key?(:request_body) ? options.delete(:request_body) : nil
|
|
98
|
+
body = options.key?(:body) ? options.delete(:body) : load_fixture(endpoint)
|
|
97
99
|
format = options.delete(:format) || :json
|
|
98
100
|
method = options.delete(:method) || :get
|
|
99
101
|
api_version = options.delete(:api_version) || ShopifyAPI::ApiVersion.find_version('2019-01')
|
|
100
|
-
extension = ".#{options.delete(:extension)||'json'}" unless options[:extension]==false
|
|
102
|
+
extension = ".#{options.delete(:extension) || 'json'}" unless options[:extension] == false
|
|
101
103
|
status = options.delete(:status) || 200
|
|
102
|
-
url = if options.
|
|
104
|
+
url = if options.key?(:url)
|
|
103
105
|
options[:url]
|
|
104
106
|
else
|
|
105
107
|
"https://this-is-my-test-shop.myshopify.com#{api_version.construct_api_path("#{endpoint}#{extension}")}"
|
data/test/transaction_test.rb
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'test_helper'
|
|
2
3
|
|
|
3
4
|
class TransactionTest < Test::Unit::TestCase
|
|
4
5
|
def setup
|
|
5
6
|
super
|
|
6
|
-
fake
|
|
7
|
+
fake("orders/450789469/transactions/389404469", method: :get, body: load_fixture('transaction'))
|
|
7
8
|
end
|
|
8
9
|
|
|
9
10
|
context "Transaction" do
|
|
10
11
|
context "#find" do
|
|
11
12
|
should "find a specific transaction" do
|
|
12
|
-
transaction = ShopifyAPI::Transaction.find(389404469, :
|
|
13
|
-
assert_equal
|
|
13
|
+
transaction = ShopifyAPI::Transaction.find(389404469, params: { order_id: 450789469 })
|
|
14
|
+
assert_equal("409.94", transaction.amount)
|
|
14
15
|
end
|
|
15
16
|
end
|
|
16
17
|
end
|
data/test/usage_charge_test.rb
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'test_helper'
|
|
2
3
|
|
|
3
4
|
class UsageChargeTest < Test::Unit::TestCase
|
|
4
|
-
|
|
5
5
|
def test_create_usage_charges
|
|
6
|
-
fake
|
|
6
|
+
fake("recurring_application_charges/654381177/usage_charges", method: :post, body: load_fixture('usage_charge'))
|
|
7
7
|
|
|
8
8
|
usage_charge = ShopifyAPI::UsageCharge.new(description: '1000 emails', price: 1.0)
|
|
9
|
-
usage_charge.prefix_options = {recurring_application_charge_id: 654381177}
|
|
10
|
-
assert
|
|
9
|
+
usage_charge.prefix_options = { recurring_application_charge_id: 654381177 }
|
|
10
|
+
assert(usage_charge.save)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def test_get_usage_charges
|
|
14
|
-
fake
|
|
14
|
+
fake(
|
|
15
|
+
"recurring_application_charges/654381177/usage_charges/359376002",
|
|
16
|
+
method: :get,
|
|
17
|
+
status: 201,
|
|
18
|
+
body: load_fixture('usage_charge')
|
|
19
|
+
)
|
|
15
20
|
|
|
16
|
-
usage_charge = ShopifyAPI::UsageCharge.find(359376002, params: {recurring_application_charge_id: 654381177})
|
|
21
|
+
usage_charge = ShopifyAPI::UsageCharge.find(359376002, params: { recurring_application_charge_id: 654381177 })
|
|
17
22
|
|
|
18
|
-
assert_equal
|
|
23
|
+
assert_equal("1000 emails", usage_charge.description)
|
|
19
24
|
end
|
|
20
|
-
|
|
21
25
|
end
|
data/test/user_test.rb
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'test_helper'
|
|
2
3
|
|
|
3
4
|
class UserTest < Test::Unit::TestCase
|
|
4
5
|
test 'get should get a user' do
|
|
5
6
|
fake 'users/799407056', method: :get, status: 200, body: load_fixture('user')
|
|
6
|
-
|
|
7
|
+
|
|
7
8
|
user = ShopifyAPI::User.find(799407056)
|
|
8
9
|
assert_equal 799407056, user.id
|
|
9
10
|
end
|
|
10
|
-
|
|
11
|
+
|
|
11
12
|
test 'get should get all users' do
|
|
12
13
|
fake 'users', method: :get, status: 200, body: load_fixture('users')
|
|
13
|
-
|
|
14
|
+
|
|
14
15
|
users = ShopifyAPI::User.all
|
|
15
16
|
assert_equal 799407056, users.first.id
|
|
16
17
|
end
|
data/test/variant_test.rb
CHANGED
|
@@ -1,60 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'test_helper'
|
|
2
3
|
|
|
3
4
|
class VariantTest < Test::Unit::TestCase
|
|
4
5
|
def setup
|
|
5
6
|
super
|
|
6
|
-
|
|
7
|
-
@variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
|
|
7
|
+
refresh_variant
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def test_get_variants
|
|
11
|
-
fake
|
|
11
|
+
fake("products/632910392/variants", method: :get, body: load_fixture('variants'))
|
|
12
12
|
|
|
13
|
-
variants = ShopifyAPI::Variant.find(:all, :
|
|
14
|
-
assert_equal
|
|
13
|
+
variants = ShopifyAPI::Variant.find(:all, params: { product_id: 632910392 })
|
|
14
|
+
assert_equal(variants.map(&:id).sort, [39072856, 49148385, 457924702, 808950810])
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def test_get_variant_namespaced
|
|
18
|
-
assert_equal
|
|
18
|
+
assert_equal(632910392, @variant.product_id)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def test_get_variant
|
|
22
|
-
assert_equal
|
|
22
|
+
assert_equal(632910392, @variant.product_id)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def test_product_id_should_be_accessible_if_via_product_endpoint
|
|
26
|
-
assert_equal
|
|
26
|
+
assert_equal(632910392, @variant.product_id)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def test_product_id_should_be_accessible_if_via_variant_endpoint
|
|
30
|
-
assert_equal
|
|
30
|
+
assert_equal(632910392, @variant.product_id)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def test_delete_variant
|
|
34
|
-
fake
|
|
35
|
-
assert
|
|
34
|
+
fake("products/632910392/variants/808950810", method: :delete, body: 'destroyed')
|
|
35
|
+
assert(@variant.destroy)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
def
|
|
39
|
-
ShopifyAPI::Base.api_version = '2019-07'
|
|
40
|
-
assert @variant.as_json.include?('inventory_quantity')
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def test_deprecated_inventory_fields_are_removed_in_2020_01
|
|
38
|
+
def test_read_only_inventory_quantity
|
|
44
39
|
ShopifyAPI::Base.api_version = '2020-01'
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def test_setting_variant_inventory_quantity_adjustment_passes_in_api_before_2019_10
|
|
49
|
-
ShopifyAPI::Base.api_version = '2019-07'
|
|
50
|
-
@variant.inventory_quantity_adjustment = 8
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def test_setting_variant_inventory_quantity_adjustment_fails_in_2019_10_api
|
|
54
|
-
ShopifyAPI::Base.api_version = '2019-10'
|
|
55
|
-
assert_raises(ShopifyAPI::ValidationException) do
|
|
56
|
-
@variant.inventory_quantity_adjustment = 8
|
|
57
|
-
end
|
|
40
|
+
refresh_variant(api_version: ShopifyAPI::Base.api_version)
|
|
41
|
+
assert_equal(10, @variant.inventory_quantity)
|
|
58
42
|
end
|
|
59
43
|
|
|
60
44
|
def test_setting_variant_inventory_quantity_adjustment_fails_in_the_unstable_api
|
|
@@ -64,18 +48,6 @@ class VariantTest < Test::Unit::TestCase
|
|
|
64
48
|
end
|
|
65
49
|
end
|
|
66
50
|
|
|
67
|
-
def test_setting_variant_inventory_quantity_passes_in_api_before_2019_10
|
|
68
|
-
ShopifyAPI::Base.api_version = '2019-07'
|
|
69
|
-
@variant.inventory_quantity = 8
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def test_setting_variant_inventory_quantity_fails_in_2019_10_api
|
|
73
|
-
ShopifyAPI::Base.api_version = '2019-10'
|
|
74
|
-
assert_raises(ShopifyAPI::ValidationException) do
|
|
75
|
-
@variant.inventory_quantity = 8
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
51
|
def test_setting_variant_inventory_quantity_fails_in_the_unstable_api
|
|
80
52
|
ShopifyAPI::Base.api_version = :unstable
|
|
81
53
|
assert_raises(ShopifyAPI::ValidationException) do
|
|
@@ -83,22 +55,19 @@ class VariantTest < Test::Unit::TestCase
|
|
|
83
55
|
end
|
|
84
56
|
end
|
|
85
57
|
|
|
86
|
-
def test_setting_variant_old_inventory_quantity_passes_in_api_before_2019_10
|
|
87
|
-
ShopifyAPI::Base.api_version = '2019-07'
|
|
88
|
-
@variant.old_inventory_quantity = 8
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def test_setting_variant_old_inventory_quantity_fails_in_2019_10_api
|
|
92
|
-
ShopifyAPI::Base.api_version = '2019-10'
|
|
93
|
-
assert_raises(ShopifyAPI::ValidationException) do
|
|
94
|
-
@variant.old_inventory_quantity = 8
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
58
|
def test_setting_variant_old_inventory_quantity_fails_in_the_unstable_api
|
|
99
59
|
ShopifyAPI::Base.api_version = :unstable
|
|
100
60
|
assert_raises(ShopifyAPI::ValidationException) do
|
|
101
61
|
@variant.old_inventory_quantity = 8
|
|
102
62
|
end
|
|
103
63
|
end
|
|
64
|
+
|
|
65
|
+
private
|
|
66
|
+
|
|
67
|
+
def refresh_variant(api_version: nil)
|
|
68
|
+
fake(
|
|
69
|
+
"products/632910392/variants/808950810", method: :get, body: load_fixture('variant'), api_version: api_version
|
|
70
|
+
)
|
|
71
|
+
@variant = ShopifyAPI::Variant.find(808950810, params: { product_id: 632910392 })
|
|
72
|
+
end
|
|
104
73
|
end
|
data/test/webhook_test.rb
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'test_helper'
|
|
2
3
|
|
|
3
4
|
class WebhookTest < Test::Unit::TestCase
|
|
4
5
|
test 'create should create a webhook' do
|
|
5
|
-
fake
|
|
6
|
-
webhook = ShopifyAPI::Webhook.create(
|
|
7
|
-
|
|
6
|
+
fake('webhooks', method: :post, status: 201, body: load_fixture('webhook'))
|
|
7
|
+
webhook = ShopifyAPI::Webhook.create(
|
|
8
|
+
address: "http://www.yoloship.it/webhook", topic: "orders/create", format: "json"
|
|
9
|
+
)
|
|
10
|
+
assert_equal("http://www.yoloship.it/webhook", webhook.address)
|
|
8
11
|
end
|
|
9
12
|
|
|
10
13
|
test 'get should retrieve a webhook' do
|
|
11
|
-
fake
|
|
14
|
+
fake('webhooks/123456', method: :get, status: 200, body: load_fixture('webhook'))
|
|
12
15
|
webhook = ShopifyAPI::Webhook.find(123456)
|
|
13
|
-
assert_equal
|
|
16
|
+
assert_equal("http://www.yoloship.it/webhook", webhook.address)
|
|
14
17
|
end
|
|
15
18
|
|
|
16
19
|
test 'find all should return all webhooks' do
|
|
17
|
-
fake
|
|
20
|
+
fake('webhooks', method: :get, status: 200, body: load_fixture('webhooks'))
|
|
18
21
|
webhook = ShopifyAPI::Webhook.all
|
|
19
|
-
assert_equal
|
|
22
|
+
assert_equal(123456, webhook.first.id)
|
|
20
23
|
end
|
|
21
24
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shopify_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 9.
|
|
4
|
+
version: '9.5'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shopify
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-10-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activeresource
|
|
@@ -58,6 +58,20 @@ dependencies:
|
|
|
58
58
|
- - ">="
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
60
|
version: '0'
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: webrick
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
68
|
+
type: :runtime
|
|
69
|
+
prerelease: false
|
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0'
|
|
61
75
|
- !ruby/object:Gem::Dependency
|
|
62
76
|
name: mocha
|
|
63
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,14 +106,14 @@ dependencies:
|
|
|
92
106
|
requirements:
|
|
93
107
|
- - ">="
|
|
94
108
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '
|
|
109
|
+
version: '5.14'
|
|
96
110
|
type: :development
|
|
97
111
|
prerelease: false
|
|
98
112
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
113
|
requirements:
|
|
100
114
|
- - ">="
|
|
101
115
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '
|
|
116
|
+
version: '5.14'
|
|
103
117
|
- !ruby/object:Gem::Dependency
|
|
104
118
|
name: rake
|
|
105
119
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -129,7 +143,7 @@ dependencies:
|
|
|
129
143
|
- !ruby/object:Gem::Version
|
|
130
144
|
version: '0'
|
|
131
145
|
- !ruby/object:Gem::Dependency
|
|
132
|
-
name: rubocop
|
|
146
|
+
name: rubocop-shopify
|
|
133
147
|
requirement: !ruby/object:Gem::Requirement
|
|
134
148
|
requirements:
|
|
135
149
|
- - ">="
|
|
@@ -170,10 +184,11 @@ dependencies:
|
|
|
170
184
|
- - ">="
|
|
171
185
|
- !ruby/object:Gem::Version
|
|
172
186
|
version: '0'
|
|
173
|
-
description:
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
187
|
+
description: |
|
|
188
|
+
The Shopify API gem allows Ruby developers to programmatically access the admin
|
|
189
|
+
section of Shopify stores. The API is implemented as JSON or XML over HTTP using
|
|
190
|
+
all four verbs (GET/POST/PUT/DELETE). Each resource, like Order, Product, or
|
|
191
|
+
Collection, has its own URL and is manipulated in isolation.
|
|
177
192
|
email: developers@jadedpixel.com
|
|
178
193
|
executables: []
|
|
179
194
|
extensions: []
|
|
@@ -183,15 +198,17 @@ extra_rdoc_files:
|
|
|
183
198
|
files:
|
|
184
199
|
- ".document"
|
|
185
200
|
- ".github/CODEOWNERS"
|
|
201
|
+
- ".github/ISSUE_TEMPLATE.md"
|
|
186
202
|
- ".github/probots.yml"
|
|
203
|
+
- ".github/workflows/build.yml"
|
|
187
204
|
- ".gitignore"
|
|
188
|
-
- ".rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml"
|
|
189
205
|
- ".rubocop.yml"
|
|
190
|
-
- ".
|
|
206
|
+
- ".rubocop_todo.yml"
|
|
191
207
|
- CHANGELOG.md
|
|
192
208
|
- CONTRIBUTING.md
|
|
193
209
|
- CONTRIBUTORS
|
|
194
210
|
- Gemfile
|
|
211
|
+
- Gemfile.lock
|
|
195
212
|
- Gemfile_ar41
|
|
196
213
|
- Gemfile_ar50
|
|
197
214
|
- Gemfile_ar51
|
|
@@ -201,6 +218,7 @@ files:
|
|
|
201
218
|
- RELEASING
|
|
202
219
|
- Rakefile
|
|
203
220
|
- SECURITY.md
|
|
221
|
+
- dev.yml
|
|
204
222
|
- docker-compose.yml
|
|
205
223
|
- docs/_config.yml
|
|
206
224
|
- docs/_includes/footer.html
|
|
@@ -212,6 +230,7 @@ files:
|
|
|
212
230
|
- lib/active_resource/detailed_log_subscriber.rb
|
|
213
231
|
- lib/active_resource/json_errors.rb
|
|
214
232
|
- lib/shopify_api.rb
|
|
233
|
+
- lib/shopify_api/api_access.rb
|
|
215
234
|
- lib/shopify_api/api_version.rb
|
|
216
235
|
- lib/shopify_api/connection.rb
|
|
217
236
|
- lib/shopify_api/countable.rb
|
|
@@ -221,6 +240,7 @@ files:
|
|
|
221
240
|
- lib/shopify_api/graphql/http_client.rb
|
|
222
241
|
- lib/shopify_api/graphql/railtie.rb
|
|
223
242
|
- lib/shopify_api/graphql/task.rake
|
|
243
|
+
- lib/shopify_api/hmac_params.rb
|
|
224
244
|
- lib/shopify_api/limits.rb
|
|
225
245
|
- lib/shopify_api/message_enricher.rb
|
|
226
246
|
- lib/shopify_api/meta.rb
|
|
@@ -327,6 +347,7 @@ files:
|
|
|
327
347
|
- test/access_scope_test.rb
|
|
328
348
|
- test/access_token_test.rb
|
|
329
349
|
- test/active_resource/json_errors_test.rb
|
|
350
|
+
- test/api_access_test.rb
|
|
330
351
|
- test/api_permission_test.rb
|
|
331
352
|
- test/api_version_test.rb
|
|
332
353
|
- test/application_charge_test.rb
|
|
@@ -482,6 +503,7 @@ files:
|
|
|
482
503
|
- test/gift_card_test.rb
|
|
483
504
|
- test/graphql/http_client_test.rb
|
|
484
505
|
- test/graphql_test.rb
|
|
506
|
+
- test/hmac_params_test.rb
|
|
485
507
|
- test/image_test.rb
|
|
486
508
|
- test/inventory_level_test.rb
|
|
487
509
|
- test/lib/webmock_extensions/last_request.rb
|
|
@@ -542,7 +564,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
542
564
|
- !ruby/object:Gem::Version
|
|
543
565
|
version: '0'
|
|
544
566
|
requirements: []
|
|
545
|
-
rubygems_version: 3.
|
|
567
|
+
rubygems_version: 3.2.20
|
|
546
568
|
signing_key:
|
|
547
569
|
specification_version: 4
|
|
548
570
|
summary: ShopifyAPI is a lightweight gem for accessing the Shopify admin REST web
|