mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-05-31 00:00:37 -04:00
Add support for ephemeral keys (#549)
This commit is contained in:
parent
3f01024974
commit
d69ccfc1dd
@ -47,6 +47,7 @@ require 'stripe/country_spec'
|
||||
require 'stripe/coupon'
|
||||
require 'stripe/customer'
|
||||
require 'stripe/dispute'
|
||||
require 'stripe/ephemeral_key'
|
||||
require 'stripe/event'
|
||||
require 'stripe/file_upload'
|
||||
require 'stripe/invoice'
|
||||
|
18
lib/stripe/ephemeral_key.rb
Normal file
18
lib/stripe/ephemeral_key.rb
Normal file
@ -0,0 +1,18 @@
|
||||
module Stripe
|
||||
class EphemeralKey < APIResource
|
||||
extend Stripe::APIOperations::Create
|
||||
include Stripe::APIOperations::Delete
|
||||
|
||||
OBJECT_NAME = 'ephemeral_key'
|
||||
|
||||
def self.resource_url
|
||||
'/v1/ephemeral_keys'
|
||||
end
|
||||
|
||||
def self.create(params={}, opts={})
|
||||
opts = Util.normalize_opts(opts)
|
||||
raise ArgumentError.new('stripe_version must be specified to create an ephemeral key') if !opts[:stripe_version]
|
||||
super
|
||||
end
|
||||
end
|
||||
end
|
@ -39,6 +39,7 @@ module Stripe
|
||||
Coupon::OBJECT_NAME => Coupon,
|
||||
Customer::OBJECT_NAME => Customer,
|
||||
Dispute::OBJECT_NAME => Dispute,
|
||||
EphemeralKey::OBJECT_NAME => EphemeralKey,
|
||||
Event::OBJECT_NAME => Event,
|
||||
FileUpload::OBJECT_NAME => FileUpload,
|
||||
Invoice::OBJECT_NAME => Invoice,
|
||||
|
88
test/stripe/ephemeral_key_test.rb
Normal file
88
test/stripe/ephemeral_key_test.rb
Normal file
@ -0,0 +1,88 @@
|
||||
require File.expand_path('../../test_helper', __FILE__)
|
||||
|
||||
module Stripe
|
||||
class EphemeralKeyTest < Test::Unit::TestCase
|
||||
context "#create" do
|
||||
FIXTURE = API_FIXTURES.fetch(:ephemeral_key_with_secret)
|
||||
|
||||
should "succeed" do
|
||||
key = Stripe::EphemeralKey.create(
|
||||
{customer:"cus_123"},
|
||||
{stripe_version:"2017-05-25"}
|
||||
)
|
||||
|
||||
assert_requested(
|
||||
:post,
|
||||
"#{Stripe.api_base}/v1/ephemeral_keys",
|
||||
headers: {'Stripe-Version' => '2017-05-25'}
|
||||
)
|
||||
|
||||
assert key.kind_of?(Stripe::EphemeralKey)
|
||||
end
|
||||
|
||||
context "#no global version" do
|
||||
should "use the correct api version" do
|
||||
key = Stripe::EphemeralKey.create(
|
||||
{customer: "cus_123"},
|
||||
{stripe_version: "2017-06-05"}
|
||||
)
|
||||
|
||||
assert_requested(
|
||||
:post,
|
||||
"#{Stripe.api_base}/v1/ephemeral_keys",
|
||||
headers: {'Stripe-Version' => '2017-06-05'}
|
||||
)
|
||||
|
||||
assert key.kind_of?(Stripe::EphemeralKey)
|
||||
end
|
||||
|
||||
should "error without an explicit api version" do
|
||||
e = assert_raises(ArgumentError) do
|
||||
Stripe::EphemeralKey.create(customer: "cus_123")
|
||||
end
|
||||
assert_match("stripe_version must be specified", e.message)
|
||||
end
|
||||
end
|
||||
|
||||
context "#with global version" do
|
||||
setup do
|
||||
Stripe.api_version = "2017-05-25"
|
||||
end
|
||||
|
||||
teardown do
|
||||
Stripe.api_version = nil
|
||||
end
|
||||
|
||||
should "use the correct api version" do
|
||||
key = Stripe::EphemeralKey.create(
|
||||
{customer: "cus_123"},
|
||||
{stripe_version: "2017-05-25"}
|
||||
)
|
||||
|
||||
assert key.kind_of?(Stripe::EphemeralKey)
|
||||
end
|
||||
|
||||
should "error without an explicit api version" do
|
||||
e = assert_raises(ArgumentError) do
|
||||
Stripe::EphemeralKey.create(customer: "cus_123")
|
||||
end
|
||||
assert_match("stripe_version must be specified", e.message)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "#delete" do
|
||||
FIXTURE = API_FIXTURES.fetch(:ephemeral_key)
|
||||
|
||||
should "succeed" do
|
||||
key = Stripe::EphemeralKey.create(
|
||||
{customer: 'cus_123'},
|
||||
{stripe_version: '2017-05-25'}
|
||||
)
|
||||
|
||||
key.delete
|
||||
assert_requested :delete, "#{Stripe.api_base}/v1/ephemeral_keys/#{key.id}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user