mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-07-16 00:00:46 -04:00
Compare commits
2 Commits
7c9627d5e0
...
f9318226b2
Author | SHA1 | Date | |
---|---|---|---|
|
f9318226b2 | ||
|
9818492706 |
@ -323,7 +323,7 @@ module Stripe
|
||||
c.save
|
||||
end
|
||||
|
||||
should "updating an object should issue a POST request with only the changed properties" do
|
||||
should "updating an object should issue a POST request with the specified properties" do
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/customers/cus_123")
|
||||
.with(body: { "description" => "another_mn" })
|
||||
.to_return(body: JSON.generate(customer_fixture))
|
||||
@ -348,7 +348,7 @@ module Stripe
|
||||
end
|
||||
end
|
||||
|
||||
should "updating should fail if api_key is overwritten with nil" do
|
||||
should "updating should fail if api_key is nil" do
|
||||
Stripe::Customer.new("cus_123")
|
||||
assert_raises TypeError do
|
||||
Stripe::Customer.update("cus_123", {}, { api_key: nil })
|
||||
@ -408,18 +408,6 @@ module Stripe
|
||||
c.save
|
||||
end
|
||||
|
||||
should "passing in a stripe_account header should pass it through on update" do
|
||||
stub_request(:get, "#{Stripe.api_base}/v1/customers/cus_123")
|
||||
.with(headers: { "Stripe-Account" => "acct_123" })
|
||||
.to_return(body: JSON.generate(customer_fixture))
|
||||
Stripe::Customer.retrieve("cus_123", stripe_account: "acct_123")
|
||||
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/customers/cus_123")
|
||||
.with(headers: { "Stripe-Account" => "acct_123" })
|
||||
.to_return(body: JSON.generate(customer_fixture))
|
||||
Stripe::Customer.update("cus_123", { description: "FOO" })
|
||||
end
|
||||
|
||||
should "add key to nested objects on save" do
|
||||
acct = Stripe::Account.construct_from(id: "myid",
|
||||
legal_entity: {
|
||||
@ -436,13 +424,7 @@ module Stripe
|
||||
acct.save
|
||||
end
|
||||
|
||||
should "add key to nested objects on update" do
|
||||
Stripe::Account.construct_from(id: "myid",
|
||||
business_profile: {
|
||||
url: "example.com",
|
||||
support_email: "test@example.com",
|
||||
})
|
||||
|
||||
should "update with a nested object" do
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/accounts/myid")
|
||||
.with(body: { business_profile: { name: "Bob" } })
|
||||
.to_return(body: JSON.generate("id" => "myid"))
|
||||
@ -463,19 +445,6 @@ module Stripe
|
||||
acct.save
|
||||
end
|
||||
|
||||
should "update nothing if nothing changes" do
|
||||
Stripe::Account.construct_from(id: "acct_id",
|
||||
metadata: {
|
||||
key: "value",
|
||||
})
|
||||
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/accounts/acct_id")
|
||||
.with(body: {})
|
||||
.to_return(body: JSON.generate("id" => "acct_id"))
|
||||
|
||||
Stripe::Account.update("acct_id")
|
||||
end
|
||||
|
||||
should "not save nested API resources" do
|
||||
ch = Stripe::Charge.construct_from(id: "ch_id",
|
||||
customer: {
|
||||
@ -491,20 +460,6 @@ module Stripe
|
||||
ch.save
|
||||
end
|
||||
|
||||
should "not update nested API resources" do
|
||||
Stripe::Charge.construct_from(id: "ch_id",
|
||||
customer: {
|
||||
object: "customer",
|
||||
id: "customer_id",
|
||||
})
|
||||
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/charges/ch_id")
|
||||
.with(body: {})
|
||||
.to_return(body: JSON.generate("id" => "ch_id"))
|
||||
|
||||
Stripe::Charge.update("ch_id", { customer: { description: "Bob" } })
|
||||
end
|
||||
|
||||
should "correctly handle replaced nested objects on save" do
|
||||
acct = Stripe::Account.construct_from(
|
||||
id: "acct_123",
|
||||
@ -525,25 +480,6 @@ module Stripe
|
||||
acct.save
|
||||
end
|
||||
|
||||
should "correctly handle replaced nested objects on update" do
|
||||
Stripe::Account.construct_from(
|
||||
id: "acct_123",
|
||||
company: {
|
||||
name: "company_name",
|
||||
address: {
|
||||
line1: "test",
|
||||
city: "San Francisco",
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/accounts/acct_123")
|
||||
.with(body: { company: { address: { line1: "Test2", city: "" } } })
|
||||
.to_return(body: JSON.generate("id" => "my_id"))
|
||||
|
||||
Stripe::Account.update("acct_123", { company: { address: { line1: "Test2" } } })
|
||||
end
|
||||
|
||||
should "correctly handle array setting on save" do
|
||||
acct = Stripe::Account.construct_from(id: "myid",
|
||||
legal_entity: {})
|
||||
@ -556,16 +492,6 @@ module Stripe
|
||||
acct.save
|
||||
end
|
||||
|
||||
should "correctly handle array setting on update" do
|
||||
Stripe::Subscription.construct_from(id: "myid")
|
||||
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/subscriptions/myid")
|
||||
.with(body: { items: [{ plan: "foo", quantity: 2 }] })
|
||||
.to_return(body: JSON.generate("id" => "myid"))
|
||||
|
||||
Stripe::Subscription.update("myid", { items: [{ plan: "foo", quantity: 2 }] })
|
||||
end
|
||||
|
||||
should "correctly handle array insertion on save" do
|
||||
acct = Stripe::Account.construct_from(id: "myid",
|
||||
legal_entity: {
|
||||
@ -583,19 +509,6 @@ module Stripe
|
||||
acct.save
|
||||
end
|
||||
|
||||
should "correctly handle array insertion on update" do
|
||||
Stripe::Subscription.construct_from(id: "myid", items: [])
|
||||
|
||||
# Note that this isn't a perfect check because we're using webmock's
|
||||
# data decoding, which isn't aware of the Stripe array encoding that we
|
||||
# use here.
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/subscriptions/myid")
|
||||
.with(body: { items: [{ plan: "foo", quantity: 2 }] })
|
||||
.to_return(body: JSON.generate("id" => "myid"))
|
||||
|
||||
Stripe::Subscription.update("myid", { items: [{ plan: "foo", quantity: 2 }] })
|
||||
end
|
||||
|
||||
should "correctly handle array updates on save" do
|
||||
acct = Stripe::Account.construct_from(id: "myid",
|
||||
legal_entity: {
|
||||
@ -613,23 +526,6 @@ module Stripe
|
||||
acct.save
|
||||
end
|
||||
|
||||
should "correctly handle array updates on update" do
|
||||
Stripe::Subscription.construct_from(id: "myid",
|
||||
items: [
|
||||
{ plan: "foo", quantity: 2 },
|
||||
{ plan: "bar", quantity: 2 },
|
||||
])
|
||||
|
||||
# Note that this isn't a perfect check because we're using webmock's
|
||||
# data decoding, which isn't aware of the Stripe array encoding that we
|
||||
# use here.
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/subscriptions/myid")
|
||||
.with(body: { items: [{ plan: "foos", quantity: 3 }, { plan: "bar", quantity: 3 }] })
|
||||
.to_return(body: JSON.generate("id" => "myid"))
|
||||
|
||||
Stripe::Subscription.update("myid", { items: [{ plan: "foos", quantity: 3 }, { plan: "bar", quantity: 3 }] })
|
||||
end
|
||||
|
||||
should "correctly handle array noops on save" do
|
||||
acct = Stripe::Account.construct_from(id: "myid",
|
||||
legal_entity: {
|
||||
@ -644,16 +540,6 @@ module Stripe
|
||||
acct.save
|
||||
end
|
||||
|
||||
should "correctly handle array noops on update" do
|
||||
Stripe::Subscription.construct_from(id: "myid", items: [{ plan: "foo", quantity: 2 }])
|
||||
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/subscriptions/myid")
|
||||
.with(body: {})
|
||||
.to_return(body: JSON.generate("id" => "myid"))
|
||||
|
||||
Stripe::Subscription.update("myid", {})
|
||||
end
|
||||
|
||||
should "correctly handle hash noops on save" do
|
||||
acct = Stripe::Account.construct_from(id: "myid",
|
||||
legal_entity: {
|
||||
@ -667,19 +553,6 @@ module Stripe
|
||||
acct.save
|
||||
end
|
||||
|
||||
should "correctly handle hash noops on update" do
|
||||
Stripe::Account.construct_from(id: "myid",
|
||||
legal_entity: {
|
||||
address: { line1: "1 Two Three" },
|
||||
})
|
||||
|
||||
stub_request(:post, "#{Stripe.api_base}/v1/accounts/myid")
|
||||
.with(body: {})
|
||||
.to_return(body: JSON.generate("id" => "myid"))
|
||||
|
||||
Stripe::Account.update("myid", {})
|
||||
end
|
||||
|
||||
should "should create a new resource when an object without an id is saved" do
|
||||
account = Stripe::Account.construct_from(id: nil,
|
||||
display_name: nil)
|
||||
|
Loading…
x
Reference in New Issue
Block a user